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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

一、主要讨论人员

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

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

二、引言

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

三、问题集锦

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
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
8月前
|
SQL 存储 分布式计算
MaxCompute元数据使用实践--项目信息统计
MaxCompute的租户级别Information Schema从租户角度提供项目元数据及使用历史数据等信息,您可以一次性拉取您同一个元数据中心下所有Project的某类元数据,从而进行各类元数据的统计分析。
530 0
|
15天前
|
分布式计算 大数据 BI
MaxCompute产品使用合集之MaxCompute项目的数据是否可以被接入到阿里云的Quick BI中
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
7天前
|
运维 网络协议 Linux
2023年河南省中等职业教育技能大赛网络建设与运维项目比赛试题(一)
2023年河南省中等职业教育技能大赛网络建设与运维项目比赛试题(一)
|
15天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之要查看MaxCompute Studio中的项目中的计算任务代码,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
15天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之该怎么创建MaxCompute的项目
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
28天前
|
分布式计算 容灾 大数据
MaxCompute( 原名ODPS)大数据容灾方案与实现(及项目落地实例)专有云
一,背景与概述    复杂系统的灾难恢复是个难题,具有海量数据及复杂业务场景的大数据容灾是个大难题。    MaxCompute是集团内重要数据平台,是自主研发的大数据解决方案,其规模和稳定性在业界都是领先的。
693 12
|
29天前
|
分布式计算 容灾 大数据
MaxCompute( 原名ODPS)大数据容灾方案与实现(及项目落地实例)专有云
一,背景与概述    复杂系统的灾难恢复是个难题,具有海量数据及复杂业务场景的大数据容灾是个大难题。    MaxCompute是集团内重要数据平台,是自主研发的大数据解决方案,其规模和稳定性在业界都是领先的。
304 0
|
1月前
|
传感器 数据采集 监控
基于Springcloud可视化项目:智慧工地可视化大数据云平台源码
终端层,充分利用物联网技术和移动应用提高现场管控能力。通过传感器、摄像头等终端设备,实现对项目建设过程的实时监控、智能感知、数据采集和高效协同,提高作业现场的管理能力。
32 5
|
5月前
|
存储 SQL Oracle
助力工业物联网,工业大数据之服务域:项目总结【三十九】
助力工业物联网,工业大数据之服务域:项目总结【三十九】
47 1
|
5月前
|
Prometheus 监控 Cloud Native
助力工业物联网,工业大数据之服务域:服务器性能监控Prometheus及项目总结【三十五】
助力工业物联网,工业大数据之服务域:服务器性能监控Prometheus及项目总结【三十五】
37 1