文章目录
- Hadoop生态圈总览图
-
- 1.HDFS(分布式文件系统)——核心
- 2.MapReduce(分布式计算框架)——核心
- 3.Yarn(分布式资源管理器)——核心
- 4.Spark(分布式计算框架)
- 5.Tez(DAG计算模型)
- 6.Hive(基于Hadoop的数据仓库)
- 7.Pig(ad-hoc脚本)
- 8.Mahout(数据挖掘算法库)
- 9.Ambari(安装部署配置管理工具)
- 10. Oozie(工作流调度器)
- 11.HBase(分布式列存数据库)
- 12.Sqoop(数据ETL/同步工具)
- 13.Flume(日志收集工具)
- 14. Zookeeper(分布式协作服务)
- 15.HCatalog(数据表和存储管理服务)
- 16.Impala(SQL查询引擎)
- 17.Presto(分布式大数据SQL查询引擎)
Hadoop生态圈总览图
-coordination and management(协调与管理)
-query(查询)
-data piping(数据管道)
-core hadoop(核心hadoop)
-machine learning(机器学习)
-nosql database(nosql数据库)
1.HDFS(分布式文件系统)——核心
源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
HDFS是整个hadoop体系的基础,负责数据的存储与管理。HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。
client:切分文件,访问HDFS时,首先与NameNode交互,获取目标文件的位置信息,然后与DataNode交互,读写数据
NameNode:master节点,每个HDFS集群只有一个,管理HDFS的名称空间和数据块映射信息,配置相关副本信息,处理客户端请求。
DataNode:slave节点,存储实际数据,并汇报状态信息给NameNode,默认一个文件会备份3份在不同的DataNode中,实现高可靠性和容错性。
Secondary NameNode:辅助NameNode,实现高可靠性,定期合并fsimage和fsedits,推送给NameNode;紧急情况下辅助和恢复NameNode,但其并非NameNode的热备份。
2.MapReduce(分布式计算框架)——核心
源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。
MapReduce是一种基于磁盘的分布式并行批处理计算模型,用于处理大数据量的计算。它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,其中Map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。
JobTracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给TaskTracker。
TaskTracker:slave节点,运行 Map task和Reduce task;并与JobTracker交互,汇报任务状态。
Map task:解析每条数据记录,传递给用户编写的map()函数并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。
Reduce task:从Map