Hadoop生态圈组件

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

是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。

client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和写入数据。

namenode:主节点,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户 端请求。

DataNode:slave节点,存储实际的数据,汇报存储信息给namenode。

secondary namenode:辅助namenode,分担其工作量:定期合并fsimage和fsedits,推送给namenode;紧急情况下和辅助恢复namenode,但其并非namenode的热备。

2、yarn (hadoop资源管理器)

负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager

  • ResourceManager做的事情是负责协调集群上计算资源的分配。调度、启动每一个 Job 所属的 ApplicationMaster、另外监控 ApplicationMaster 的存在情况。
  • NodeManager 根据要求启动和监视集群中机器的计算容器container。负责 Container 状态的维护,并向 RM 保持心跳汇报该节点资源使用情况。

3、mapreduce(分布式计算框架)

mapreduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。

jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker。

tacktracker:slave节点,运行 map task和reducetask;并与jobtracker交互,汇报任务状态。

map task:解析每条数据记录,传递给用户编写的map()并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。

reduce task:从map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的reduce函数执行。

4、hbase(分布式列存数据库)

Hbase全称为Hadoop Database,即hbasehadoop数据库,是一个分布式的存储系统。Hbase利用Hadoop的HDFS作为其文件存储系统,利用Hadoop的MapReduce来处理Hbase中的海量数据

hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问。

5、sqoop(数据同步工具)

sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间传输数据。

核心的功能有两个:导入、迁入<---->导出、迁出

导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统

导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。

sqoop:

工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序

6、pig(基于hadoop的数据流系统)

Pig是一种编程语言,为了简化mapreduce的一些繁琐的<key,value>处理而直接处理数据的一个"类"sql语言。 Pig内部,每个操作是对输入进行数据处理,然后产生输出结果,这些操作被转换成一系列MapReduce作业,Pig让程序员不需要知道这些转换具体是如何进行的,这样工程师可以将精力集中在数据上,而非执行的细节上。

Pig可加载数据、表达转换数据以及存储最终结果。同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。

Pig最大的作用就是对mapreduce算法(框架)实现了一套shell脚本 ,类似于SQL语句,在Pig中称之为Pig Latin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),它通常用于离线分析。

7、 hive(基于hadoop的数据仓库)

Hive在Hadoop中是一个数据仓库。Hive添加数据的结构在HDFS,并允许使用类似于SQL语法进行数据查询。

hive本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序。主要用于数据的分析

8、zookeeper(分布式协作服务)

ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig)  的管理员,实现同步服务,配置维护和命名服务等分布式应用。

可以理解为Hadoop的整体监控系统。如果namenode,HMaster宕机后,这时候Zookeeper 的重新选出leader。这是它最大的作用所在。

  1. 加强集群稳定性
  2. 加强集群持续性
  3. 保证集群有序性
  4. 保证集群高效

9、flume(日志收集工具)

Flume是Cloudera提供的日志收集系统,具有分布式、高可靠、高可用性等特点,对海量日志采集、聚合和传输,flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。

Flume传输的数据基本单位是Event,如果是文本文件,通常是一行记录,这也是事务的基本单位。Event从Source,流向Channel,再到Sink,本身为一个byte数组,并可携带headers信息。Event代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去通过这些组件,event可以从一个地方流向另一个地方,如下图所示。

猜你喜欢

转载自blog.csdn.net/S_Running_snail/article/details/84192744