Hadoop的生态圈组件:Ambari、Oozie、ZooKeeper、Sqoop、Chukwa
Hadoop的发展非常神速,现在已经形成了一个很大的生态圈,而且还在不断发展过程中,如图4-15所示。
图4-15 Hadoop的生态圈
(1)Ambari:这是一种基于Web的工具,它支持Apache Hadoop集群的安装、部署、配置和管理。大部分Hadoop组件都可以通过Ambari安装部署管理,包括HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoop等。它提供一个可视的仪表盘来查看集群的状态,诊断其性能特征。
(2)Oozie:这是一种Java Web应用程序,用于管理Apache Hadoop作业的工作流调度系统。Oozie支持多种类型的Hadoop作业,包括Map/Reduce、Pig、Hive、Sqoop等。
(3)ZooKeeper:这是一个针对Google Chubby的开源实现的高效、可靠的协同工作系统,它提供分布式锁之类的基本服务(如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理)。ZooKeeper使用Leader选举机制来为集群确定管理员:ZooKeeper在所有服务器中选举出一个Leader,然后让这个Leader来负责管理集群,此时集群中的其他服务器就成为这个Leader的Follower;如果Leader出现故障,ZooKeeper能够快速在所有Follower中选举出另一个Leader。ZooKeeper是使用Java编写的,也支持C语言接口。
(4)Sqoop:是SQL-to-Hadoop的缩写,用来将RDBMS中的数据导入Hadoop(可以导入HDFS、HBase或Hive)中,或者将数据从Hadoop导出到RDBMS。数据交互的工具是JDBS(Java DataBase Connectivity)。
(5)Chukwa:这是架构在Hadoop之上的数据采集与分析框架,主要用于日志采集和分析。通过安装在收集节点的“代理”采集最原始的日志数据,代理将数据发给收集器,收集器定时将数据写入HDFS,指定定时启动的Map-Reduce作业对数据进行加工处理和分析。
(6)Avro:数据序列化工具,它提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久的数据文件集、远程调用RPC的功能和简单的动态语言集成功能。