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

一、主要讨论人员

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

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

二、引言

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

三、问题集锦

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

时间: 2024-11-03 21:56:20

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

监察者称:云安全风险潜伏在大数据项目中

业务咨询公司UHY Advisors技术保障部门负责人David Barton表示,很多企业使用亚马逊弹性云计算.微软Windows Azure或者其他云基础设施供应商的云计算服务来进行大数据分析,因为大数据分析项目 往往需要足够的计算能力来进行大规模数据分析.虽然这些云计算服务能够帮助企业捕捉.管理和分析TB级结构化和非结构化数据, 但是,如果系统没有收到保护或者受到监管,这些服务可能带来数据泄漏.账户或服务劫持.或者滥用的风险.在监测和信息安全培训机构MIS Training Institu

如何看待潜伏在大数据项目中的云安全风险

业务咨询公司UHY Advisors技术保障部门负责人David Barton表示,很多企业使用亚马逊弹性云计算.微软Windows Azure或者其他云基础设施供应商的云计算服务来进行大数据分析,因为大数据分析项目往往需要足够的计算能力来进行大规模数据分析.虽然这些云计算服务能够帮助企业捕捉.管理和分析TB级结构化和非结构化数据,但如果系统没有受到保护或者受到监管,这些服务可能带来数据泄漏.账户或服务劫持.或者滥用的风险. 在监测和信息安全培训机构MIS Training Institute的

掰一掰GitHub上优秀的大数据项目

VMware CEO Pat Gelsinger曾说:   数据科学是未来,大数据分析则是打开未来之门的钥匙 企业正在迅速用新技术武装自己以便从大数据项目中获益.各行业对大数据分析人才的需求也迫使我们升级自己的技能以便寻找更好的职业发展. 跳槽之前最好先搞清楚一个岗位会接触到的项目类型,这样你才能掌握所有需要的技能,工作的效率也会更高. 下面我们尽量列出了一些流行的开源大数据项目.根据它们各自的授权协议,你或许可以在个人或者商业项目中使用这些项目的源代码.写作本文的目的也就是为大家介绍一些解决大

你的大数据项目使用的工具正确吗?

工具/产品/解决方案是数据科学家洞察数据的利器. KDNuggets网站 对此观点进行了年度调查,来分析数据科学家在用哪些类型的工具,并提供了调查的 匿名原始数据 . 通过主成分析(PCA)法进行降维分析 对所有的工具同时进行关系分析,常规来说,PCA通过对大样本数据统计性质(eg, 协方差)的分析,试图用主要特征来解释关系. 分析结果: 当前分析的目标:通过一些主成分来分析95种工具之间的关系.最终决定以PCA的特征值来决定主成分的数目,这里选用了两种规则:一种是以特征值大于1的特征值数量来选

你的大数据项目离失败有多远?

导读大数据项目的成功或许不可复制,但从失败中汲取教训同样很有意义.作者从本人实践项目入手,从商业目标.商业案例.项目管控.沟通.技能等角度分析其失败的原因. 过去六个月里,我发现大数据项目的总量正在以惊人的速度增长着,大多数与我合作过的公司都计划在接下来一年内,进一步拓展大数据项目的领域.其中,许多项目都被报以很高的期望,但大数据项目,远没有想象中那么简单.我认为,其中半数的大数据项目最终都无法达到他们的预期. 失败的原因是多方面的,许多显而易见的问题或者影响因素都会对大数据项目造成致命的打击,

Hadoop生态系统在壮大:十大炫酷大数据项目

在开发人员开发Hadoop以克服大数据带来的挑战之后的10年间,这些技术的生态系统在不断发展壮大.Apache软件基金会下面有众多的开源大数据技术项目.本文介绍一些重要项目,并顺便了解几个新兴项目. 管理和分析大数据已经变成了重大挑战,数量急剧增加的信息从社交媒体.连接到物联网中"物件"的传感器.结构化数据.非结构化数据以及可以收集的其他一切数据收集而来.为了应对这项任务,开发人员已开发了一系列新的开源技术. 旗舰软件Apache Hadoop是Apache软件基金会的一个项目,它在上

实施大数据项目需要牢记避免的6个错误做法

大多数组织为其成功实施项目工作,都已经制定了一套大数据的最佳做法.当涉及到大数据和分析时,列出企业应该远离的陷阱清单也同样重要.以下是企业实施大数据项目中要牢记的六个注意事项,是大数据项目实施中不要犯的错误做法,以保持业务具有较低的风险和高成功率. 1.没有适当的大数据计划 最成功的大数据计划是建立一个强大的大数据和分析的基础,并使用它们.最好的方法是通过创建一个新的大数据交付的恒定路径,并逐步提高组织的能力,以提供更丰富和更好的数据的策略,并解决操作问题. 2.让事情变得复杂 仪表板和电子表格

实施大数据项目需要牢记的6个注意事项

  以下是大数据项目实施中不要犯的错误做法,以保持业务具有较低的风险和高成功率. 大多数组织为其成功实施项目工作,都已经制定了一套大数据的最佳做法.当涉及到大数据和分析时,列出企业应该远离的陷阱清单也同样重要.以下是企业实施大数据项目中要牢记的六个注意事项. 1.没有适当的大数据计划 最成功的大数据计划是建立一个强大的大数据和分析的基础,并使用它们.最好的方法是通过创建一个新的大数据交付的恒定路径,并逐步提高组织的能力,以提供更丰富和更好的数据的策略,并解决操作问题. 2.让事情变得复杂 仪表板

贵州85个大数据项目已经进入落地阶段

今年一季度,贵阳市在环渤海.珠三角区域招商中签约85个http://www.aliyun.com/zixun/aggregation/13844.html">大数据项目,占一季度签约项目总数的70%.其中,在贵州·北京大数据产业发展推介会.贵州·北京大数据产业发展推介会贵阳分场.贵阳·深圳大数据和文化旅游产业发展推介会等活动上,环渤海.珠三角区域大数据相关企业与贵阳签约的投资合同类项目达48个,合同资金达309.9亿元,占一季度总合同资金的72%. 目前,在已经签约的85个大数据项目中,I