大数据组件特别多,有很多公司参与,Apache,Google,Cloudera,Pentaho,Hortonworks,聚集很多人的智慧,但是组件之多,也是相当的混乱,功能重复的也很多。
下面说一下本人了解的常用的 30 个组件。
一切都要从 hadoop 说起。
(1) Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构,由 2002 年的 Nutch 项目到 2006 年正式命名为 Hadoop。
其核心有:
(2) HDFS 是 Hadoop 最核心也是最底层的组件,分布式文件存储系统,用于存储海量数据。
HDFS 是 Master 和 Slave 的结构。
(3) NameNode 是 Master 节点它负责管理文件系统名称空间和控制外部客户机的访问。
(4) DataNode 是 Slave 节点,负责存储 client 发来的数据块 block,执行数据块的读写操作,定期向 NameNode 发送心跳信息。
(5) MapReduce 一种面向大规模数据处理的并行计算模型和方法,整个 MapReduce 的过程大致分为
Map–>Shuffle(排序)–>Combine(组合)–>Reduce。
(6) YARN 相当于 MapReduceV2 ,是Hadoop 2.0 中的资源管理系统。总体上仍然是 Master/Slave 结构,它的基本设计思想是将 MRv1 中的 JobTracker 拆分成了两个独立的服务:一个全局的资源管理器 ResourceManager 和每个应用程序特有的 ApplicationMaster。其中 ResourceManager 负责整个系统的资源管理和分配,而 ApplicationMaster 负责单个应用程序的管理。
Hive 是构建在 Hadoop HDFS 上的一个数据仓库,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能,其本质是将 SQL 转换为 MapReduce 程序。
(7) Sqoop 是 sql to hadoop 的缩写,主要用于在 Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
(8) Hbase HBase 中的所有数据文件都存储在 Hadoop HDFS 文件系统上
(9) ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
(10) Spark 是专为大规模数据处理而设计的快速通用的计算引擎
(11) Ambari 是一种基于 Web 的工具,支持 Apache Hadoop 集群的供应、管理和监控。
(12) Kafka是一种高吞吐量 的分布式发布订阅消息系统
(13) Pig 是一种数据流语言和运行环境,用于检索非常大的数据集
(14) mahout 提供一些可扩展的机器学习领域经典算法的实现
(15) Flink 是一种分布式流数据流引擎
(16) Oozie 是一个用于管理 Apache Hadoop 作业的工作流调度程序系统。
(17) HCatalog 是 Hadoop 的表存储管理工具
(18) Tez 是 Apache 开源的支持 DAG 作业的计算框架,它直接源于 MapReduce 框架
(19) Knox 项目的主要目标是通过代理 HTTP 资源提供对 Apache Hadoop 的访问。
(20) Phoenix 基于 Hbase 给面向业务的开发人员提供了以标准 SQL 的方式对 Hbase 进行查询操作。
Avro:数据序列化系统
Cassandra:可扩展的、无单点故障的多主数据库
Chukwa:数据采集系统,用于管理大型分布式系统
Cloudera 公司组件
(21) Impala
(22) Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据
(23) Kudu 是一个既支持随机读写、又支持 OLAP 分析的大数据存储引擎。
(24) Hue是运营和开发 Hadoop 应用的图形化用户界面
(25) Kettle 是 Pentaho Data Integration 的开源版本,是 Penhato 公司的 ETL 工具。
(26) Kylin 是一个开源的、分布式的分析型数据仓库,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。
(27) Storm 是 Twitter 公司的分布式的、容错的实时计算系统,
apache hadoop 是原生的 hadoop。
Hortonworks Hadoop 区别于其他的 Hadoop 发行版(如 Cloudera)的根本就在于,Hortonworks 的产品均是百分之百开源。
Hortonworks 是 Apache Ambari 的主要贡献者
Hortonworks DataFlow (HDF) 基于 Apache NiFi,是专门用来解决数据采集,应对数据中心内外传输挑战的数据应用平台,可以从各种数据源(设备、企业应用程序、合作系统或边缘应用程序)提取数据,生成实时流数据。
Hortonworks Cybersecurity Platform (HCP)
HCP 位于大数据和机器学习的主要交叉点,可帮助您获得单一风险视图、自动完成威胁检测和简化运营,从而克服安全运营的人员短缺问题。HCP 由 Apache Metron 提供支持,经过精确射击,能够大规模地将多样化的流式安全数据可视化,以帮助实时检测和应对威胁。
(28) metron 是一种安全大数据分析架构,其建立了一个平台,它为组织提供了大规模摄入、处理和存储各种安全数据提要的能力,以便检测网络异常并使组织能够快速响应这些异常。
(29) Druid 是一个高效的数据查询系统,
(30) NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统,用于自动化管理系统间的数据流。
Cloudera 有免费版和企业版,企业版只有试用期。
HDP 使用 Ambari 管理,CDH 使用 Hue 管理
目前在中国流行的是 apache hadoop,Cloudera CDH,当然 Hortonworks 也有用的
Apache Ambari 是一个基于 web 的工具,用于配置、管理和监视 Apache Hadoop 集群,支持 Hadoop HDFS,、