Hadoop生态圈中的组件和构成

是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。

Hadoop 的核心是 HDFS ,Mapreduce和 YARN,但是也有其他组件。

1,HDFS(hadoop分布式文件系统)

HDFS是hadoop分布式文件系统
hdfs是hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障。
client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和写入数据。
namenode:master节点,在hadoop1.x中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户 端请求。
dataNode:slave节点,存储实际的数据,汇报存储信息给namenode。
secondary namenode:辅助namenode,分担其工作量:定期合并fsimage和fsedits,推送给namenode;紧急情况下和辅助恢复namenode,但其并非namenode的热备。

2,mapreduce(分布式计算框架)

mapreduce是分布式计算框架
mapreduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。
jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker。
tacktracker:slave节点,运行 map task和reducetask;并与jobtracker交互,汇报任务状态。
map task:解析每条数据记录,传递给用户编写的map()并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。
reduce task:从map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的reduce函数执行。

3,资源管理器的简单介绍(YARN)

yarn总体上是Master/slaves结构,整个架构中,resourcemanager(RM)是主节点,nodemanager(NM)是从节点,RM对NM上的资源进行统一管理和调度;当用户提交一个应用程序后,需要提供一个跟踪,管理这个程序的applicationMaster(AM),AM负责像RM申请资源,并要求NM启动可以占用一定资源的任务,不停的AM分配到不同的节点,它们相互之间不受影响

4, hive(数仓hql)

由Facebook开源,最初用于解决海量结构化的日志数据统计问题。
hive定于了一种类似sql的查询语言(hql)将sql转化为mapreduce任务在hadoop上执行。

5,hbase(nosql)

hbase是一种分布式列存数据库
hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问,同时,hbase中保存的数据可以使用mapreduce来处理,它将数据存储和并行计算完美结合在一起。

6,zookeeper(集群分布式协调)

zookeeper是一种分布式协作服务
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

7,sqoop(数据同步)

sqoop是一种数据同步工具(不过现在有升级使用的是阿里开源的dataX)
sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间传输数据。
数据的导入和导出本质上是mapreduce程序,充分利用了MR的并行化和容错性。

猜你喜欢

转载自blog.csdn.net/mao2430524817/article/details/105328635
今日推荐