1、Hadoop大数据历史与开展趋势分析 Hadoop大数据的历史与开展趋势分析“我们很荣幸能够见证Hadoop十年从无到有,再到称王。感动于技术的日新月异时,希望通过这篇内容深入解读Hadoop的昨天、今天和明天,憧憬下一个十年。本文分为技术篇、产业篇、应用篇、展望篇四局部技术篇2023年项目成立的一开始,“Hadoop这个单词只代表了两个组件HDFS和MapReduce。到现在的10个年头,这个单词代表的是“核心即Core Hadoop项目以及与之相关的一个不断成长的生态系统。这个和Linux非常类似,都是由一个核心和一个生态系统组成。现在Hadoop在一月发布了2.7.2的稳定版, 已经从传
2、统的Hadoop三驾马车HDFS,MapReduce和HBase社区开展为60多个相关组件组成的庞大生态,其中包含在各大发行版中的组件就有25个以上,包括数据存储、执行引擎、编程和数据访问框架等。Hadoop在2.0将资源管理从MapReduce中独立出来变成通用框架后,就从1.0的三层结构演变为了现在的四层架构:底层存储层,文件系统HDFS中间层资源及数据管理层,YARN以及Sentry等上层MapReduce、Impala、Spark等计算引擎顶层基于MapReduce、Spark等计算引擎的高级封装及工具,如Hive、Pig、Mahout等等存储层HDFS已经成为了大数据磁盘存储的事实标
3、准,用于海量日志类大文件的在线存储。经过这些年的开展,HDFS的架构和功能根本固化,像HA、异构存储、本地数据短路访问等重要特性已经实现,在路线图中除了Erasure Code已经没什么让人兴奋的feature。随着HDFS越来越稳定,社区的活泼度也越来越低,同时HDFS的使用场景也变得成熟和固定,而上层会有越来越多的文件格式封装:列式存储的文件格式,如Parquent,很好的解决了现有BI类数据分析场景;以后还会出现新的存储格式来适应更多的应用场景,如数组存储来效劳机器学习类应用等。未来HDFS会继续扩展对于新兴存储介质和效劳器架构的支持。2023年HBase 发布了1.0版本,这也代表着
4、HBase 走向了稳定。最新HBase新增特性包括:更加清晰的接口定义,多Region 副本以支持高可用读,Family粒度的Flush以及RPC读写队列别离等。未来HBase不会再添加大的新功能,而将会更多的在稳定性和性能方面进化,尤其是大内存支持、内存GC效率等。Kudu是Cloudera在2023年10月才对外公布的新的分布式存储架构,与HDFS完全独立。其实现参考了2023年Google发表的Spanner论文。鉴于Spanner在Google 内部的巨大成功,Kudu被誉为下一代分析平台的重要组成,用于处理快速数据的查询和分析,填补HDFS和HBase之间的空白。其出现将进一步把Ha
5、doop市场向传统数据仓库市场靠拢。Apache Arrow项目为列式内存存储的处理和交互提供了标准。目前来自Apache Hadoop社区的开发者们致力于将它制定为大数据系统项目的事实性标准。Arrow项目受到了Cloudera、Databricks等多个大数据巨头公司支持,很多committer同时也是其他明星大数据项目如HBase、Spark、Kudu等的核心开发人员。再考虑到Tachyon等似乎还没有找到太多实际接地气的应用场景,Arrow的高调出场可能会成为未来新的内存分析文件接口标准。管控层管控又分为数据管控和资源管控。随着Hadoop集群规模的增大以及对外效劳的扩展,如何有效可靠
6、的共享利用资源是管控层需要解决的问题。脱胎于MapReduce1.0的YARN成为了Hadoop 2.0通用资源管理平台。由于占据了Hadoop的地利,业界对其在资源管理领域未来的前景非常看好。传统其他资源管理框架如Mesos,还有现在兴起的Docker等都会对YARN未来的开展产生影响。如何提高YARN性能、如何与容器技术深度融合,如何更好的适应短任务的调度,如何更完整的多租户支持、如何细粒度的资源管控等都是企业实际生产中迫在眉睫的需求,需要YARN解决。要让Hadoop走得更远,未来YARN需要做的工作还很多。另一方面大数据的安全和隐私越来越多的受到关注。Hadoop依靠且仅依靠Kerbe
7、ros来实现安全机制,但每一个组件都将进行自己的验证和授权策略。开源社区似乎从来不真正关心安全问题,如果不使用来自Hortonworks的Ranger或来自Cloudera 的Sentry这样的组件,那么大数据平台根本上谈不上安全可靠。Cloudera刚推出的RecordService组件使得Sentry在安全竞赛中拔得先机。RecordService不仅提供了跨所有组件一致的安全颗粒度,而且提供了基于Record的底层抽象有点像Spring,代替了原来Kite SDK的作用,让上层的应用和下层存储解耦合的同时、提供了跨组件的可复用数据模型。计算引擎层Hadoop生态和其他生态最大的不同之一就
8、是“单一平台多种应用的理念了。传的数据库底层只有一个引擎,只处理关系型应用,所以是“单一平台单一应用;而NoSQL市场有上百个NoSQL软件,每一个都针对不同的应用场景且完全独立,因此是“多平台多应用的模式。而Hadoop在底层共用一份HDFS存储,上层有很多个组件分别效劳多种应用场景,如:确定性数据分析:主要是简单的数据统计任务,例如OLAP,关注快速响应,实现组件有Impala等;探索性数据分析:主要是信息关联性发现任务,例如搜索,关注非结构化全量信息收集,实现组件有Search等;预测性数据分析:主要是机器学习类任务,例如逻辑回归等,关注计算模型的先进性和计算能力,实现组件有Spark、
9、MapReduce等;数据处理及转化:主要是ETL类任务,例如数据管道等,关注IO吞吐率和可靠性,实现组件有MapReduce等其中,最耀眼的就是Spark了。IBM宣布培养100万名Spark开发人员,Cloudera在One Platform建议中宣布支持Spark为Hadoop的缺省通用任务执行引擎,加上Hortonworks全力支持Spark,我们相信Spark将会是未来大数据分析的核心。虽然Spark很快,但现在在生产环境中仍然不尽人意,无论扩展性、稳定性、管理性等方面都需要进一步增强。同时,Spark在流处理领域能力有限,如果要实现亚秒级或大容量的数据获取或处理需要其他流处理产品。
10、Cloudera宣布旨在让Spark流数据技术适用于80%的使用场合,就考虑到了这一缺陷。我们确实看到实时分析而非简单数据过滤或分发场景中,很多以前使用S4或Storm等流式处理引擎的实现已经逐渐Kafka+Spark Streaming代替。Spark的流行将逐渐让MapReduce、Tez走进博物馆。效劳层效劳层是包装底层引擎的编程API细节,对业务人员提供更高抽象的访问模型,如Pig、Hive等。而其中最炙手可热的就是OLAP的SQL市场了。现在,Spark有70%的访问量来自于SparkSQL!SQL on Hadoop到底哪家强?Hive、Facebook的Pheonix、Prest
11、o、SparkSQL、Cloudera推的Impala、MapR推的Drill、IBM的BigSQL、还是Pivital开源的HAWQ?这也许是碎片化最严重的地方了,从技术上讲几乎每个组件都有特定的应用场景,从生态上讲各个厂家都有自己的宠爱,因此Hadoop上SQL引擎已经不仅仅是技术上的博弈也因此考虑到本篇中立性,此处不做评论。可以遇见的是,未来所有的SQL工具都将被整合,有些产品已经在竞争钟逐渐落伍,我们期待市场的选择。周边的工具更是百花齐放,最重要的莫过于可视化、任务管理和数据管理了。有很多开源工具都支持基于Hadoop 的查询程序编写以及即时的图形化表示,如HUE、Zeppelin等。
12、用户可以编写一些SQL或Spark代码以及描述代码的一些标记,并指定可视化的模版,执行后保存起来,就可供其他人复用,这钟模式也被叫做“敏捷BI。这个领域的商业产品更是竞争剧烈,如Tableau、Qlik等。调度类工具的鼻祖Oozie能实现几个MapReduce任务串连运行的场景,后来的Nifi及Kettle等其他工具那么提供了更加强大的调度实现,值得一试。毫无疑问,相对与传统的数据库生态,Hadoop的数据治理相对简单。Atlas是Hortonworks新的数据治理工具,虽然还谈不上完全成熟,不过正取得进展。Cloudera的Navigator是Cloudera商业版本的核心,会聚了生命周期管
13、理、数据溯源、安全、审计、SQL迁移工具等一系列功能。Cloudera收购Explain.io以后将其产品整合为Navigator Optimizator组件,能帮助用户把传统的SQL应用迁移到Hadoop平台并提供优化建议,可以节省数人月的工作量。算法及机器学习实现基于机器学习的自动的智能化数据价值挖掘是大数据和Hadoop最诱人的愿景了,也是很多企业对大数据平台的最终期望。随着可获得的数据越来越多,未来大数据平台的价值更多的取决于其计算人工智能的程度。现在机器学习正慢慢跨出象牙塔,从一个少局部学术界人士研究的科技课题变成很多企业正在验证使用的数据分析工具,而且已经越来越多的进入我们的日常生
14、活。机器学习的开源项目除了之前的Mahout、MLlib、Oryx等,今年发生了很多令人瞩目的大事,迎来了数个明星巨头的重磅参加:2023年1月,Facebook开源前沿深度学习工具“Torch。2023年4月,亚马逊启动其机器学习平台Amazon Machine Learning,这是一项全面的托管效劳,让开发者能够轻松使用历史数据开发并部署预测模型。2023年11月,谷歌开源其机器学习平台TensorFlow。同一月,IBM开源SystemML并成为Apache官方孵化项目。同时,微软亚洲研究院将分布式机器学习工具DMTK通过Github开源。DMTK由一个效劳于分布式机器学习的框架和一组
15、分布式机器学习算法组成,可将机器学习算法应用到大数据中。2023年12月,Facebook开源针对神经网络研究的效劳器“Big Sur,配有高性能图形处理单元GPUs,转为深度学习方向设计的芯片。产业篇现在使用Hadoop的企业以及靠Hadoop赚钱的企业已经成千上万。几乎大的企业或多或少的已经使用或者方案尝试使用Hadoop技术。就对Hadoop定位和使用不同,可以将Hadoop业界公司划分为四类:第一梯队:这类公司已经将Hadoop当作大数据战略武器。第二梯队:这类公司将Hadoop 产品化。第三梯队:这类公司创造对Hadoop整体生态系统产生附加价值的产品。第四梯队:这类公司消费Hado
16、op,并给规模比第一类和第二类小的公司提供基于Hadoop的效劳。时至今日,Hadoop虽然在技术上已经得到验证、认可甚至已经到了成熟期。其中最能代表Hadoop开展轨迹的莫过于商业公司推出的Hadoop发行版了。自从2023年Cloudera成为第一个Hadoop商业化公司,并在2023年推出第一个Hadoop发行版后,很多大公司也参加了做Hadoop产品化的行列。“发行版这个词是开源文化特有的符号,看起来任何一个公司只要将开源代码打个包,再多多少少加个佐料就能有一个“发行版,然而背后是对海量生态系统组件的价值筛选、兼容和集成保证以及支撑效劳。2023年以前的发行版根本为对Hadoop打补丁为主,出现了好几个私有化Hadoop版本,所折射的是Hadoop产品在质量上的缺陷。同期HDFS、HBase等社区的超高活泼度印证了这个事实。而之后的公司更多是工具、集成、管理,所提供的不是“更好的Hadoop而是如何更好的用好“现有的Hadoo