专访人物
中国首席数据官联盟专家组成员,北京九章云极科技联合创始人方磊
方磊
中国首席数据官联盟专家组成员,北京九章云极科技联合创始人。美国VirginiaPolytechnicInstituteandState(弗吉尼亚理工)电子工程博士,曾任美国微软总部的高级工程师,是微软云计算和服务器团队的核心骨干成员,于年加入美国必应(Bing)搜索团队,设计并开发基于下一代大数据技术的索引处理架构以及基于机器学习的搜索语义理解。在分布式系统,设计验证等领域发表论文15篇,引用超过次。
本期特邀嘉宾中国首席数据官联盟发起人鲁四海,就大数据基础架构与方磊先生进行深入探讨。
鲁四海:曾几何时,谈大数据必谈Hadoop,Hadoop一度成了大数据的代名词,到今天其热度依然不减,Hadoop为基础的平台架构有着什么样的魔力?
方磊:我们首先来看因数据变化带来的三个重要技术改变:
要选大数据平台,必须了解具体需求,大数据平台从企业处理场景上分为OLTP和OLAP,这就导致用户的选择会有所不同。偏业务交易的使用OLTP,偏分析的使用OLAP平台。从量级来说,数据量较小的可以使用一些比较成熟的商业方案或开源数据库,像PostgreSQL,或者MySql搭建也可以。如果再大一点就要用到MPP。超过30个结点以上,Hadoop几乎是必须的选择了。
数据场景的有多样化需求。比如说,结构化的数据,适用于数据仓库的场景,如果非常实时,更适合流数据场景,如果是视频的话,那将是更加专业的细分场景。
你要的这个数据平台相对来说,是不是非常弹性的能够增加,是不是放在云上的,如果放在家里,那么弹性增加的性能,是不是就变差了。
总之,从这几个角度出发,从部署的方式,场景出发,最后来决定这个架构,到底哪种架构最适合你。从现在的整体趋势来看,架构也在合并,一般来说,Hadoop为基础的这么一个平台可以帮助你去做弹性的扩容,部署在各种环境里,而且生态里林林总总有多个组件,只要你选好组合,都可以满足你的需求。所以从这个角度出发,做一个梳理,类似于一张表,看你每个点要的是什么,回头来看,你是要一个专门的定制架构,还是就在Hadoop上通过开源组件来做一个组合。这几个点,是大数据的特性,也是用来帮助用户如何选择平台架构的一个出发点。
鲁四海:除了Hadoop方案,MPP方案也得到很多支持,能给我们分析一下这两者的不同么?
方磊:好的。MPP方案相对来说没有Hadoop支撑的节点那么多,30个节点以上,它的性能就比较低了。Hadoop和MPP比的话,有个很大的好处在弹性扩容好,有一个自动的,不会丢失的文件系统。MPP如果在单机上硬盘坏了的话,是个非常麻烦的事情,它是各自用各自的硬盘,Hadoop把文件串起来变成一个大的文件系统—HDFS,所以它在数据的完整一致性、容错性上,比MPP更强大易用,价格也更便宜一些。
MPP的优势相对于Hadoop来说,支撑数据更新更容易些。数据如果只是用来分析的话,只读就足够了。如果要对数据进行更改的话,MPP方案会更好。
鲁四海:提到大数据,很多企业都想构建企业级实时分析平台,在技术架构上您有哪些好的建议?
方磊:这是由业务来驱动的,你需要什么样的场景,就用什么样的分析,实时分析平台生态上有几种主流技术,Sparkstreaming和Storm。Sparkstreaming是微批量处理,它跟hadoopMR的批量处理原理是一致的,Storm是来一条处理一条,实时性要更好些。总的来说,你需要了解它们的特点,有几个维度,是特别实时呢,还是开发容易呢,还是稳定性呢,还是对闪存的消耗呢,对闪存的支持,实时分析之后,必然要落地,得存到某个地方去,跟后边数据库的对接是不是很方便,是不是很容易,包括业界有多流行。这几个维度都有。
举个例子,比如说汽车的传感器数据。很常见的架构是Storm+Kafka+HBase组合;如果实时的是个P高清的视频流,像这样一个简单的组合承载不了这么大的流量,它在动态去分配计算资源的时候也很困难。那么这个实时平台就需要选择SMACK(注:Spark+Mesos+Aka+Cassandra+Kafka)这样的组合。所以说实时分析平台是个组合拳,不是一个点就搞定的。
鲁四海:大数据平台技术路线选择方面,有很多人说开源好,也有持反对意见的,您怎么看?
方磊:在今天,几乎所有的大数据平台都是开源的技术是最活跃的,如果一开始选商业路线,今天是有一定用户,但是长远看会有些实际的困难,最迫切的就是招不到那么多的开发者。今天整个大数据平台一定是建立在开源大数据生态之上的,这是毋庸置疑的。比如,我们看到的IBM,基于Hadoop的SQL方案,也是基于开源的。今天看到的这些Hadoop提供商,例如Cloudera,MAP-R,Hortonworks,它们所有的技术都是开源的。今天我觉得开源的演变很快,技术路线的分分合合也很迅猛,完全采取商业的路线是不合适的,但是我觉得商业的性能增强组件,还是可以的。
鲁四海:如您前面所说,现在开源已经很强大,但还有人担心其性能和稳定性,如何保障大数据平台的性能和稳定性?
方磊:大数据平台的稳定性取决于开源组件的稳定性,开源组件有非常多的配置项,它本身当然有bug。另一个就是配置,像调优,这个点对稳定性的影响也很大,如果调优不正确,内存用完了,系统就可能崩溃。数据平台的建设,专业厂商的价值是很大的,并不是你下载一个东西,就开始用了。对于你用户场景的分析,怎么决定建一个数据平台,一个实时平台,它的架构是哪些技术做组合,在这个基础上,是不是有完整可用的API来帮助你迅速开发你的应用,让你不用关心底层,这些我觉得都是很大的价值,能够把它做稳定,而且提高性能。
比如大家都知道列存储可以提高性能,那你什么时候打开列存储,在哪些地方打开列存储的开关,如果你能关心这些,你就觉得它可以是很快的,对于开发人员或者是应用方来说,它的价值都很大,其实我们也是做这个价值的,我们并不是从无到有的创造新事物,更多的是在开源架构上提供更完善的企业特性,最佳实践,性能调优,有完整的自动部署,增强型的组件,实时处理的API,这些都可以让用户体验到5分钟拥有大数据能力。
鲁四海:大数据应用过程中,除了基础技术平台,数据安全、数据集成、算法模型都是需特别考虑的地方。根据您的经验,有哪些技术手段保障数据安全?
方磊:保障数据安全的手段有安全认证,统一的权限管理,数据加密,数据生命周期的管理,有基于时间的,有基于存储量的,这些都是技术手段。还有非技术的,例如人和流程的手段。存储医疗数据,有个HIPAA(全称为:HealthInsurancePortabilityandAccountabilityAct)认证,认证其实也是保证了你在流程上的手段能保证数据安全,当工作人员登录物理机或是虚拟机去工作的时候,它的登录的秘钥可能一次就过期了,防止以后他永远都有权限登录,这样的人和流程上的管理,它有时候比技术要更重要。
鲁四海:那如何进行数据迁移与集成,有哪些好的技术方案?
方磊:数据集成的方式分为几种,包括:已有离线文件的加载,离线数据库的导入,在线数据的实时写入,还有real-time,就是边写入边处理的流数据,这个更实时,这是几个不同的层次。从写入方式来说,这四种都提供API支持,比如说文件导入,一两个文件导入可能很简单,那几十万,几千万甚至更多的文件,怎么能直接给它“搬”上去。还有数据库的导入,它能接哪些数据库,有传统的数据库Oracle,IBM,微软的SQLServer,或者像NoSql的代表mongoDB,还有ingestion的API,你要看数据有没有schema,是不是JSON,它的性能是怎么样的。到了实时处理,它实时处理的框架是怎么样的,处理的性能,以及实时处理的逻辑有多复杂,这些都是需要考虑的,同时这些也都是集成的方式。
数据迁移有的场景也比较复杂,比如说从传统TERADATA的数据库迁到Hadoop的数据仓库里,那么表的结构能不能直接映射过去,表的类型是不是能直接支持,兼容性要比较好才能迁移过去。那迁移的过程中,是一次性把数据都迁移过去,还是两边今后都有两份拷贝?就是说有一个检查点,今天更新了就导出更新的部分,明天再更新的再导出对应部分,是双份拷贝,一直同步的过程,还是说一次性都迁移过去。所以说,迁移的问题从大的点上来说,像兼容性,迁移的同步方式都需要考虑。
鲁四海:都说算法、模型是数据价值呈现最关键的一环,企业如何去构建属于自己的算法、模型库?
方磊:在今天,说到算法,首先要知道,没有一个算法能统治全世界,Google的ranking也不是单一的一个算法,它是很多算法的组合,而且到今天算法已经是一个工程学问题,而不仅仅是个数学问题。从训练数据到标签,到算法训练到入库,到最终使用算法,再根据效果重新训练这个所有生命全周期的流程,它是个很大的工程问题。企业更要