本帖最后由 小江哥 于 2018-12-9 15:14 编辑
接上回:
7. 分布式计算 1)Apache Flink:是一个分布式大数据处理引擎,具有强大的流和批处理功能,可对无穷数据集和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。 2)Apache Tez:是一个针对Hadoop数据处理应用程序的、支持DAG 作业的分布式执行框架,可以将多个有依赖的作业转换为一个作业从而大幅提升 DAG 作业的性能。 3)Apache Pig:是一个基于Hadoop的大规模数据分析平台,用于分析较大的数据集,并将它们表示为数据流。提供的SQL-LIKE语言Pig Latin,会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。 4)Apache Spark:是一种用于大数据和机器学习的复杂分析构建的大数据处理框架。其特点是:速度快、便于使用、统一的引擎。 5)Apache Storm:是一个分布式数据流实时计算系统。可以可靠地处理无限数据流。 8. 数据分析: 1)Apache Hive:是基于Hadoop的一个数据仓库工具,提供数据的精炼,查询和分析能力。可以将结构化的数据文件映射为一张数据库表,并提供HSQL查询功能,SQL语句转换为MapReduce任务运行。 2)ClouderaImpala:是一个高性能、低延迟的SQL查询引擎。提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。 3) Apache Phoenix:是构建在HBase上的一个SQL层,可以用标准的JDBCAPIs来创建表,插入数据和对HBase数据进行查询,实现OLTP事务能力。 4)Apache Kylin:是一个分布式分析引擎,提供Hadoop/Spark上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,能在亚秒内查询巨大的Hive表。 9. 系统部署 1)Apache Mesos:是一个集群管理软件,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等应用架构,可以将CPU,内存,存储和其他计算资源从机器(物理或虚拟)中抽象出来,使容错和弹性分布式系统能够轻松构建并有效运行。 2)Cloudera HUE:是一个开源的ApacheHadoop UI系统,可以通过浏览器访问Web控制台与Hadoop集群进行交互来分析处理数据,可以操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等 3)Apache Helix:是一个通用的集群管理框架,用于自动管理节点集群上的分区,复制和分布式资源。在面对节点故障和恢复,集群扩展和重新配置时自动重新分配资源。 10. 数据可视化 1)Apache Zeppelin:是一个web版的notebook,用于做数据分析和可视化。可以接入不同的数据处理引擎,包括spark, hive等,原生支持scala, java,shell, markdown等。 11. 机器学习 1)Apache Mahout:是一个算法库,提供一些可扩展的机器学习领域经典算法的实现,主要集中在协同过滤,聚类和分类领域。可以有效地扩展到Hadoop集群上。 2) Deeplearning4j:是一套基于Java语言的神经网络工具包,可以构建、定型和部署神经网络。并与Hadoop和Spark集成,支持分布式CPU和GPU,为商业环境所设计。包括了分布式、多线程的深度学习框架,以及普通的单线程深度学习框架。定型过程以集群进行,也就是说,Deeplearning4j可以快速处理大量数据。神经网络可通过[迭代化简]平行定型,与 Java、 Scala 和 Clojure 均兼容。Deeplearning4j在开放堆栈中作为模块组件的功能,使之成为首个为微服务架构打造的深度学习框架。
扩展:
hadoop3新特性:
Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+磁盘,共同处理数据。
其实最大改变的是hdfs,hdfs 通过最近black块计算,根据最近计算原则,本地black块,加入到内存,先计算,通过IO,共享内存计算区域,最后快速形成计算结果。
1.Hadoop 3.0简介
Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0。
Hadoop 3.0的alpha版预计今年夏天发布,GA版本11月或12月发布。
Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN container resizing等。
2. Hadoop 3.0新特性
Hadoop 3.0在功能和性能方面,对hadoop内核进行了多项重大改进,主要包括:
2.1 Hadoop Common
(1)精简Hadoop内核,包括剔除过期的API和实现,将默认组件实现替换成最高效的实现(比如将FileOutputCommitter缺省实现换为v2版本,废除hftp转由webhdfs替代,移除Hadoop子实现序列化库org.apache.hadoop.Records
(2)Classpath isolation以防止不同版本jar包冲突,比如google Guava在混合使用Hadoop、HBase和Spark时,很容易产生冲突。
(3)Shell脚本重构。 Hadoop 3.0对Hadoop的管理脚本进行了重构,修复了大量bug,增加了新特性,支持动态命令等。
2.2 Hadoop HDFS
(1)HDFS支持数据的擦除编码,这使得HDFS在不降低可靠性的前提下,节省一半存储空间。
(2)多NameNode支持,即支持一个集群中,一个active、多个standby namenode部署方式。注:多ResourceManager特性在hadoop 2.0中已经支持。
2.3 Hadoop MapReduce
(1)Tasknative优化。为MapReduce增加了C/C++的map output collector实现(包括Spill,Sort和IFile等),通过作业级别参数调整就可切换到该实现上。对于shuffle密集型应用,其性能可提高约30%。
(2)MapReduce内存参数自动推断。在Hadoop 2.0中,为MapReduce作业设置内存参数非常繁琐,涉及到两个参数:mapreduce.{map,reduce}.memory.mb和mapreduce.{map,reduce}.java.opts,一旦设置不合理,则会使得内存资源浪费严重,比如将前者设置为4096MB,但后者却是“-Xmx2g”,则剩余2g实际上无法让java heap使用到。
2.4 Hadoop YARN
(1)基于cgroup的内存隔离和IO Disk隔离
(2)用curator实现RM leader选举
(3)containerresizing
(4)Timelineserver next generation
|