加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Hadoop大数据通用处理平台

发布时间:2019-03-17 16:14:13 所属栏目:教程 来源:Java的小本家
导读:副标题#e# Hadoop是一款开源的大数据通用处理平台,其提供了分布式存储和分布式离线计算,,适合大规模数据、流式数据(写一次,读多次),不适合低延时的访问、大量的小文件以及频繁修改的文件。 *Hadoop由HDFS、YARN、MapReduce组成。 如果想学习Java工程化

Hadoop默认没有开启机架感知功能,默认情况下每个Block都是随机分配DataNode,需要进行相关的配置,那么在NameNode启动时,会将机器与机架的对应信息保存在内存中,用于在HDFS Client申请写文件时,能够根据预先定义的机架关系合理的分配DataNode。

Hadoop机架感知默认对3个副本的存放策略为:

  • 第1个Block副本存放在和HDFS Client所在的节点中(若HDFS Client不在集群范围内则随机选取)
  • 第2个Block副本存放在与第一个节点不同机架下的节点中(随机选择)
  • 第3个Block副本存放在与第2个副本所在节点的机架下的另一个节点中,如果还有更多的副本则随机存放在集群的节点中。

*使用此策略可以保证对文件的访问能够优先在本机架下找到,并且如果整个机架上发生了异常也可以在另外的机架上找到该Block的副本。

2.2 YARN

YARN是分布式资源调度框架(任务计算框架的资源调度框架),主要负责集群中的资源管理以及任务调度并且监控各个节点。

ResourceManager

  1. 是整个集群的资源管理者,管理并监控各个NodeManager。
  2. 处理客户端的任务请求。
  3. 启动和监控ApplicationMaster。
  4. 负责资源的分配以及调度。

NodeManager

  1. 是每个节点的管理者,负责任务的执行。
  2. 处理来自ResourceManager的命令。
  3. 处理来自ApplicationMaster的命令。

ApplicationMaster

  1. 数据切分,用于并行计算处理。
  2. 计算任务所需要的资源。
  3. 负责任务的监控与容错。

任务运行在YARN的流程

客户端提交任务请求到ResourceManager。

  1. ResourceManager生成一个ApplicationManager进程,用于任务的管理。
  2. ApplicationManager创建一个Container容器用于存放任务所需要的资源。
  3. ApplicationManager寻找其中一个NodeManager,在此NodeManager中启动一个ApplicationMaster,用于任务的管理以及监控。
  4. ApplicationMaster向ResourceManager进行注册,并计算任务所需的资源汇报给ResourceManager(CPU与内存)
  5. ResourceManager为此任务分配资源,资源封装在Container容器中。
  6. ApplicationMaster通知集群中相关的NodeManager进行任务的执行。
  7. 各个NodeManager从Container容器中获取资源并执行Map、Reduce任务。

2.3 MapReduce

MapReduce是分布式离线并行计算框架,高吞吐量,高延时,原理是将分析的数据拆分成多份,通过多台节点并行处理,相对于Storm、Spark任务计算框架而言,MapReduce是最早出现的计算框架。

MapReduce、Storm、Spark任务计算框架对比:

Hadoop大数据通用处理平台

MapReduce执行流程

MapReduce将程序划分为Map任务以及Reduce任务两部分。

Map任务处理流程

  1. 读取文件中的内容,解析成Key-Value的形式 (Key为偏移量,Value为每行的数据)
  2. 重写map方法,编写业务逻辑,生成新的Key和Value。
  3. 对输出的Key、Value进行分区(Partitioner类)
  4. 对数据按照Key进行排序、分组,相同key的value放到一个集合中(数据汇总)

*处理的文件必须要在HDFS中。

Reduce任务处理流程

  1. 对多个Map任务的输出,按照不同的分区,通过网络复制到不同的reduce节点。
  2. 对多个Map任务的输出进行合并、排序。
  3. 将reduce的输出保存到文件,存放在HDFS中。

3.Hadoop的使用

3.1 安装

由于Hadoop使用Java语言进行编写,因此需要安装JDK。

从CDH中下载Hadoop 2.X并进行解压,CDH是Cloudrea公司对各种开源框架的整合与优化(较稳定)

  • etc目录:Hadoop配置文件存放目录。
  • logs目录:Hadoop日志存放目录。
  • bin目录、sbin目录:Hadoop可执行命令存放目录。

etc目录

bin目录

sbin目录

3.2 Hadoop配置

1.配置环境

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读