-
最底部是Hadoop分布式文件系统(HDFS),它存储Hadoop集群中所有存储节点上的文件
-
HDFS的上一层是MapReduce引擎
-
HBase位于结构化存储层,是一个分布式的列存储数据库
-
Zookeeper是一个分布式的、高可用性的协调服务,提供分布式锁之类的基本服务
-
Hive是一个建立在Hadoop 基础之上的数据仓库,用于管理存储于HDFS或Hbase中的结构化/半结构化数据
-
Pig提供一种数据流语言,程序员可以将复杂的数据分析任务实现为Pig操作上的数据流脚本,这些脚本可自动转换为MapReduce任务链,在Hadoop上执行,从而简化程序员的数据分析工作难度
-
Sqoop是SQL-to-Hadoop的缩写,为在RDBMS与Hadoop平台(HDFS, Hbase, Hive)间进行快速批量数据交换
-
Avro是个数据序列化的系统,用于将数据对象转换成便于数据存储和网络传输的格式
-
一个HDFS集群是由一个NameNode和若干个DataNode组成
-
NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据
-
HDFS支持用户以文件的形式存储数据,文件被分成若干个数据块,而且这若干个数据块存放在一组DataNode上
-
具体到程序层面:MapReduce框架是由一个单独运行在主节点上的JobTracker 和运行在每个集群从节点上的TaskTracker共同组成的
- 主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上;主节点监控它们的执行情况,并且重新执行之前失败的任务。从节点仅负责由主节点指派的任务
- 当一个Job 被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行
-
TaskTracker和DataNode需配对的设置在同一个物理的从节点服务器上;JobTracker和NameNode可以设置在同一个物理主控节点服务器上,也可以分开设置