运维专家:我在大数据项目中踩过的那些坑

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介:

一、主要讨论人员

提问:陈超,七牛云技术总监

回答:朱冠胤,百度资深大数据专家,连续两次百度最高奖得主。

二、引言

“坐而论道”是一个轮流问答的玩法。本文是大数据主题周中,几位国内一线专家激情问答的一部分内容。期间,各位群友也积极参与。

三、问题集锦

1.MongoDB在百度的使用场景及规模?

2.假设现在让你完全主导一个类似Hadoop的项目,你会选择哪种语言?

3.分享你在百度各种大数据项目中踩过的坑?

4.你所在团队在自研和使用开源方案的主要考虑因素?

5.新一代分布式数据库(NewSQL,类似Spanner)是一个好的创业方向吗?

四、精彩回答

问:我们都知道你深度参与了百度多个成功的大数据项目,你是否可以分享下这个过程中踩过的典型的坑?

答:主要包括如下这些:

1.避免过度设计;有些问题考虑太早没用;快速迭代,小步快跑!

2.防御性编程,认为一切都是不靠谱的(同时避免走向1的极端,例如离线系统,就不要考虑跨IDC高可用了)。

3.很多工作尽可能量化(能量化最好先量化);if you can’t measure it,you can’t improve it!

4.对外接口一定要慎重,不要轻易变动,兼容性尤其重要。

5.做好各种预案、监控,出现异常能快速定位是系统上游还是本系统还是系统下游的问题。

6.提供好架构和机制,让业务方去调整配置各种策略。

7.将例行手工劳动自动化,人是不靠谱的;不要相信系统是万能的,要有例行check机制。

其他Tips:

1.严格遵守编码规范。

2.采用最严格的编译选项。

3.做好CodeReview。

问:假设现在让你完全主导一个类似Hadoop的项目,你会选择哪种语言?(不考虑团队,仅从语言层面出发)

答:类似Hadoop的项目:如果想开源,并且让业界更多人参与进来,首选Java;Hadoop能取得巨大成功,我个人认为这与它选择Java有很大关系。

相反,Storm选择了一个比较小众的语言Clojure,我听到的一些消息,twitter重写Storm其中一个原因就是,精通Clojure的程序员比较难招,开源社区很多人也参与不进来,项目本身的活跃度也会受影响。

一个完整系统,要考虑项目推广(业务方接受程度)、项目开发、调试和维护成本,最后是性能。

拿Hadoop来说,接口层面需要支持Python、Php;如果是百度内部业务,还需要支持C++;如果是开放云对外服务,必须支持Java(对内则不用考虑,很少业务使用Java开发)。

对性能要求较高的部分,会考虑用C++;例如向量计算,会考虑SSE向量化,或一些业界成熟的高性能库,甚至会考虑GPU或FPGA实现。

除了这两部分,就考虑公司通用基础服务,尽量减少重复造轮子,多利用程序的基础库,例如序列化、rpc实现支持情况等,结合百度情况,会优先考虑C++。

问:面对众多开源解决方案,你所在团队在自研和使用开源方案的主要考虑因素有哪些?

答:1.首先搞清楚究竟想解决什么业务场景的问题,包括已明确需求和潜在需求。

2.优先并充分调研业界已有实现(论文、代码、论文活跃度和主要committer交流等),要想清楚该系统试图解决的业务场景是否是我们准备解决的;该方案在业界有哪些公司在站台(争取拿到一些内部消息),构造一定规模测试,内部组织分享调研成果。

3.该方案是否能hold住(从设计理念到代码级深度理解),是否容易维护(选择了Clojure估计难度不是一点半点),是否容易推广(看业务方对它的接受程度)。

4.如果上述3个都回答了,且答案是yes,此时看看该系统的论文(或原理)。和论文(或原理)对比,假设论文没有缺陷且能很好覆盖典型业务场景,则看该系统对论文的实现情况,是否有重大缺陷,如果有,一票否决;如果没有,不犹豫,选它好了:)

5.能达到这点的不多,所以很多项目都自研了......

问:请说一下MongoDB在百度的使用场景及规模。

答:MongoDB在百度比较小众,应用规模应该在百台量级,基础架构部对内不提供统一服务,都是各业务线自行维护。

百度开放云对外提供MongoDB,主要是在BAE(BaiduAppEngine)产品中提供共享模式的Mongo服务。

问:你觉得现在新一代分布式数据库(NewSQL,类似Spanner)是一个好的创业方向吗?

答:选择类Spanner系统来创业,注定不走寻常路,挑战极大。

首先,看该产品的受众,有这类需求的客户似乎都是大企业(一般用mysql就搞定了,需要拆到128个实例太少见了),银行、能源行业等,都是不差钱的主。

如果自己创业,即便做出来了,客户一般也基本不考虑,他们不会相信一个创业公司能提供这样的质量和服务能力。

其次,实现难度,实现Spanner的技术难度不小。

从我不专业的角度来看,类似RedShift的系统是个不错的创业方向,很多公司都有这类需求,目前业界缺乏很好的开源实现,而已有商业化实现成本都比较高。





作者:朱冠胤
来源:51CTO
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
261 92
|
19天前
|
运维 自然语言处理 算法
云栖实录 | 大模型在大数据智能运维的应用实践
云栖实录 | 大模型在大数据智能运维的应用实践
|
3月前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI与大数据在IT运维中的应用探索####
本文旨在探讨人工智能(AI)与大数据分析技术如何革新传统IT运维模式,提升运维效率与服务质量。通过具体案例分析,揭示AI算法在故障预测、异常检测及自动化修复等方面的实际应用成效,同时阐述大数据如何助力实现精准运维管理,降低运营成本,提升用户体验。文章还将简要讨论实施智能化运维面临的挑战与未来发展趋势,为IT管理者提供决策参考。 ####
|
4月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
121 2
|
5月前
|
机器学习/深度学习 人工智能 运维
智能运维:大数据与AI的融合之道###
【10月更文挑战第20天】 运维领域正经历一场静悄悄的变革,大数据与人工智能的深度融合正重塑着传统的运维模式。本文探讨了智能运维如何借助大数据分析和机器学习算法,实现从被动响应到主动预防的转变,提升系统稳定性和效率的同时,降低了运维成本。通过实例解析,揭示智能运维在现代IT架构中的核心价值,为读者提供一份关于未来运维趋势的深刻洞察。 ###
232 10
|
4月前
|
运维 Kubernetes 网络协议
运维之道:从新手到专家的成长之路
【10月更文挑战第21天】 本文旨在探讨运维领域的成长路径,通过分享个人经历和行业见解,为读者提供一条从入门到精通的清晰路线图。我们将从基础技能的学习开始,逐步深入到高级技巧的应用,最终达到专业水平的提升。文章强调了持续学习和实践的重要性,并鼓励读者在面对挑战时保持积极态度,不断探索未知领域。
92 6
|
4月前
|
运维 Kubernetes 网络协议
运维之道:从新手到专家的成长路径
【10月更文挑战第22天】 本文将探讨运维领域内,个人如何从一名初学者成长为行业专家的过程。通过分析学习路线、必备技能、实践经验积累以及持续学习的重要性,旨在为那些渴望在IT运维领域取得成就的人提供指导和启发。
|
4月前
|
机器学习/深度学习 运维 Kubernetes
运维之道:从新手到专家的转变
【10月更文挑战第24天】 本文旨在探讨运维人员如何从初学者成长为领域专家,通过分析运维行业的现状、面临的挑战以及必备技能,提供一系列实用的建议和策略。文章强调了持续学习、实践经验积累和技术趋势把握的重要性,并结合具体案例,展示了运维专家的成长路径。
|
4月前
|
运维 Prometheus 监控
运维之道:从新手到专家的旅程
【10月更文挑战第24天】 在数字化时代,运维工作如同一座桥梁,连接着技术与业务,确保系统的稳定运行。本文将带你踏上一段从运维新手成长为专家的旅程,探索运维的核心价值、技能提升路径以及面对挑战时的应对策略。通过深入浅出的语言和生动的案例,让你领略运维世界的奥秘与魅力。
55 0
|
5月前
|
运维 监控 网络协议
运维的艺术:从新手到专家的旅程
在数字化时代,运维(Operation)是确保技术系统稳定运行的关键角色。本文将探讨运维的核心职责、面临的挑战以及如何通过持续学习和实践成长为一名出色的运维专家。我们将深入了解自动化工具的应用、故障排查技巧和性能优化策略,这些都是运维人员必须掌握的技能。此外,文章还将讨论软技能的重要性,如沟通协调能力和团队合作精神,这些对于处理紧急情况和提升工作效率至关重要。最后,我们将分享一些实用的资源和建议,帮助读者在运维领域取得成功。

热门文章

最新文章