《影响中国大数据产业进程100人》第42期 方磊:用开源技术,助企业造就自己的大数据平台

前言:

大数据是一个事关我国经济社会发展全局的战略性产业,大数据技术为社会经济活动提供决策依据,提高各个领域的运行效率,提升整个社会经济的集约化程度,对于我国经济发展转型具有重要的推动作用!2016年,由中国首席数据官联盟与网加时代网发起并承办,北京大学信息化与信息管理研究中心、中国新一代IT产业推进联盟、数邦客协办的“影响中国大数据产业进程100人”大型人物专访活动全面启动,被采访对象分别来自政府、产、学、研、企各个领域,他们将从不同角度,不同层面向大家阐述当前大数据产业热点、难点、疑点问题,为中国大数据产业健康、持续发展探索经验、保驾护航,敬请关注!

第四十二期专访人物

中国首席数据官联盟专家组成员,北京九章云极科技联合创始人 方磊

方磊

中国首席数据官联盟专家组成员,北京九章云极科技联合创始人。美国Virginia Polytechnic Institute and State (弗吉尼亚理工)电子工程博士,曾任美国微软总部的高级工程师,是微软云计算和服务器团队的核心骨干成员,于2011年加入美国必应(Bing)搜索团队,设计并开发基于下一代大数据技术的索引处理架构以及基于机器学习的搜索语义理解。在分布式系统,设计验证等领域发表论文15篇,引用超过400次。

本期特邀嘉宾中国首席数据官联盟发起人鲁四海,就大数据基础架构与方磊先生进行深入探讨。

鲁四海:曾几何时,谈大数据必谈Hadoop,Hadoop一度成了大数据的代名词,到今天其热度依然不减,Hadoop为基础的平台架构有着什么样的魔力?

方磊:我们首先来看大数据带来的三个重要技术改变:

1.数据大量化(Volume)

要选大数据平台,必须了解具体的需求,大数据的平台从大的方面说,分为OLTP平台和OLAP平台,这就可能导致用户的选择会有所不同。偏分析的平台是OLAP的平台,从量级来说,比如说数据量很小,那也是个数据平台,可以用一些比较成熟的商业方案或者是开源的postgress数据库,或者用Mysql搭建也可以。如果再大一点就用MPP。如果超过30个结点以上,Hadoop几乎就是必须的选择了。

2.数据多样化(Variety)

比如说,结构化的数据,最好是数据仓库的场景,如果非常实时的,可能是流数据的场景,如果是视频的话,那将是更加专门的场景。

3.数据快速化(Velocity)

你要的这个数据平台相对来说,是不是非常弹性的能够增加,是不是放在云上的,如果放在家里,那么弹性增加的性能,是不是就变差了。

总之,从这几个角度出发,从部署的方式,场景出发,最后来决定这个架构,到底哪种架构最适合你。从通常现在整体趋势来看,架构也在合并,一般来说,Hadoop为基础的这么一个平台可以帮助你去做弹性的扩容,部署在各种环境里,而且它上边零零总总有100 多个组件,只要你选好组合,都可以满足你的需求。所以说,从这个角度出发,做一个梳理,类似于一张表,看你每个点要的是什么,回头来看,你是要一个专门的架构,还是就在Hadoop上,通过开源的组件来做一个组合。这几个点,是大数据的特性,也是用来帮助用户如何选择平台架构的一个出发点。

鲁四海:除了Hadoop方案,MPP方案也得到很多支持,能给我们分析一下这两者的不同么?

方磊:好的,MPP方案相对来说没有Hadoop机器那么多,30个节点以上,它的性能就比较低了,Hadoop和MPP比的话,有个很大的好处是说,弹性扩容好,有一个自动,不会丢失的文件系统。MPP如果在单机上硬盘坏了的话,是个非常麻烦的事情,它是各自用各自的硬盘,Hadoop把文件串起来变成一个大的文件系统—HDFS,所以它在数据的完整一致性、容错性上,比MPP更好,Skill更强大,价格也更便宜一些。

MPP的优势相对于Hadoop来说,应该是容易更新。如果只是分析的话,只要读就行了。不需要改了,如果要是改的话,MPP方案可能会更好。

鲁四海:提到大数据,很多企业都想构建企业级实时分析平台,在技术架构上您有哪些好的建议?

方磊:所有的事情都是,你要什么样的场景,就用什么样的分析,实时分析平台在Hadoop, Spark , Storm ,生态上有这么几种大的技术,Spark streaming叫V批量处理,它跟批量处理代码是一致的,Storm是来一条处理一条,实时性更好。Lamda也是流处理的一个框架,他主要在Kafka的基础上link in 的,它对于SSD的优化比较好,总的来说,你需要了解它们的特点,有几个维度,是特别实时呢,还是开发容易呢,还是稳定性呢,还是对闪存的消耗呢,对闪存的支持,实时分析之后,必然要落地,得存到某个地方去,跟后边数据库的对接是不是很方便,是不是很容易,包括业界有多流行。这几个维度都有。

举个列子,比如说,车的传感器。很常见的就是Storm+kafka+hbase这种很常见的组合;如果实时的是个视频流,是个1080P高清的视频流,像这样一个简单的组合承载不了这么大的流量,它在动态去分配的时候也很困难。那么你这个实时平台,可能选择SMACK 这样的平台。从业务出发,有几个维度,所以说实时分析平台不是一个点就搞定的,是个组合拳。

鲁四海:大数据平台技术路线选择方面,有很多人说开源好,也有持反对意见的,您怎么看?

方磊:在今天,几乎所有的大数据平台都是开源的技术是最活跃的,如果一开始选商业路线,今天是有一定用户,但是社区不行,到后来招不到那么多的开发者。今天整个大数据平台一定是建立在开源大数据生态之上的,这是毋庸置疑的。比如,我们看到的IBM,基于Hadoop的SQL的方案,也是基于开源的。今天看到的这些hadoop提供商,例如Cloudera,MARP,Hortonworks,它们所有的技术都是开源的。今天我觉得开源的演变很快,技术路线的分分合合也很迅猛,如果采取商业的路线是不合适的,但是我觉得商业的性能增强组件,还是可以的。

鲁四海:如您前面所说,现在开源已经很强大,但还有人担心其性能和稳定性,如何保障大数据平台的性能和稳定性?

方磊:大数据平台的稳定性取决于开源组件的稳定性,开源组件有非常多的配置项,它本身当然有bug,另一个就是配置,像调优,这个点对稳定性的影响也很大,要是调优不正确,内存用完了,就崩溃了,数据平台的建设,专业厂商的价值是很大的,并不是你下载一个东西,就开始用了。对于你的场景的分析,怎么决定建一个数据平台,怎么决定建一个实时平台,它的架构是哪些技术做组合,在这个基础上,是不是有完整可用的API来帮助你迅速开发你的应用,让你不用关心底层,这些我觉得都是很大的价值,能够把它做稳定,而且提高性能。

比如大家都知道列存储可以提高性能,那你什么时候打开列存储,在哪些地方打开列存储的开关,如果你能关心这些,你就觉得它可以是很快的,对于开发人员或者是应用方来说,它的价值都很大,其实我们也是做这个价值的,我们并不是去从无到有的创造什么东西,在开源架构上有最佳实践,性能调优,有完整的自动部署,增强型的组件,实时处理的这些API,这些都可以让用户体验到5分钟拥有大数据能力。

鲁四海:大数据应用过程中,除了基础技术平台,数据安全、数据集成、算法模型都是需特别考虑的地方。根据您的经验,有哪些技术手段保障数据安全?

方磊:保障数据安全的手段有安全认证,统一的权限管理,数据加密,数据生命周期的管理,有基于时间的,有基于存储量的,那这些都是技术手段,说到底,这个数据安全还有人和流程的手段。存储医疗数据,有个HPIA认证,认证其实也是保证了你在流程上的手段能保证数据安全,当工作人员登录物理机或是虚拟机去工作的时候,它的登录的秘钥可能一次就过期了,防止以后他永远都有权限登录,这样的人和流程上的管理,它有时候比技术要更重要。

鲁四海:那如何进行数据迁移与集成,有哪些好的技术方案?

方磊:数据集成的方式分为几种,包括:已有离线文件的加载,离线数据库的导入,在线数据的实时写入,还有real-time ,就是边写入边处理的流数据,这个更实时,这是几个不同的档次。从写入方式来说,这四种都提供API支持,比如说文件导入,可能一两个文件导入可能很简单,那几十万,几千万甚至更多的文件,怎么能直接给它“搬”上去。然后数据库的导入,它能接哪些数据库,传统的数据库Oracle,IBM,微软的,或者像新的mongodb这样的数据库,还有ingestion的API,你要看数据有没有schema,是不是JSON,它的性能是怎么样的。到了实时处理,它实时处理的框架是怎么样的,处理的性能,以及实时处理的逻辑有多复杂,这些可能都是要考虑的,这些都是集成的方式。

数据迁移的话,更复杂的是说,比如说你从传统TERADATA的数据库迁到了Hadoop的数据仓库里,那么它的表的结构能不能直接映射过去,表的类型是不是能直接支持,兼容性需要比较好,才能迁移过去。那迁移的过程中,是一次性把数据都迁移过去,还是两边今后都有两份拷贝,就是说有一个check point ,就是今天更新了,导出一部分,明天再更新的又导出一部分,是双份拷贝,一直同步的过程,还是说一次性都迁移过去。所以说,迁移的问题从大的点上来说,像兼容性啊,迁移的模式是同步式的,还是彻底迁移过去的,到最后数据进去的方式有以上四种,所以数据迁移和集成有那几点来考虑,到底是哪种,选场景,选迁移的模式,最后定下来。

鲁四海:都说算法、模型是数据价值呈现最关键的一环,企业如何去构建属于自己的算法、模型库?

方磊:在今天,说到算法,首先你要知道,没有一个算法能统治全世界,Google的ranking也不是单一的一个算法,它是很多算法的组合,而且今天算法,是一个工程学问题,不仅仅是一个数学问题,从训练数据到标签,到算法训练到入库,到最终使用算法,再根据效果重新训练这个所有生命全周期的流程,它是个很大的工程问题,那才是企业更要关注的,怎么在业务上,把这个算法植入形成流程,然后一直维持这个算法库,能够评估算法的效果,能够监控算法的效果。

在这个方面,我们为用户提供容器这样的一个方式,帮你封装,共享算法,这样就可以把你积累的算法,行业客户积累的算法,和开源的算法可以组合在一起,最后通过一个流程串起来。算法库不是一个库,一个算法,一个点的问题,它是一条线,一个面的问题,所以,企业选一个算法库,算法支撑工作或者平台的时候,首先要考虑的,是基于核心算法之上的, 比如说feather的选择,feather的优化,训练的提速,非常多的细节是依附在上边的,然后,最终形成工程的整个流程。这才是大家可能想象的算法,但不是说一个算法点,所以开源不开源这个点,只是很小的一个点,更重要的是,选择算法的工程实现,这才是最核心的点。

本文由“首席数据官联盟”公众号及其运营主体整理、创作,如需转载或引用该文章的任何内容,请注明来源。未经书面同意,不得擅自修改、歪曲、篡改文章内容,不得转载或使用该文章中包含的任何图片或影像。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611G0W0C000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券