首页 > 其他分享 >hadoop小结

hadoop小结

时间:2022-08-31 15:35:08浏览次数:47  
标签:ResourceManager hadoop Hadoop 资源管理 JobTracker 小结 节点 资源

Hadoop是一个适合海量数据的分布式存储和分布式计算的平台

主要有以下功能:

Hadoop Common:基础型功能

Hadoop Distributed File System (HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。负责存放数据

Hadoop YARN:作业调度和集群资源管理的框架。负责资源的调配

Hadoop MapReduce:基于 YARN 的系统,用于并行处理大型数据集,大数据的计算框架

 

HDFS

进程理解:

 

 

联邦机制:

 

 

宏观写流程图:

微观写流程图:

读流程图:

其中要注意的是:

这里我们在文件切分里使用了一个非常重要的思想即--分而治之

在Hadoop 1默认大小为64M,在Hadoop 2及其之后默认大小为128M

HDFS中小于一个块的大小的文件不会占据整个块的空间

备份的数量要小于等于节点的数量

每个数据块默认会有三个副本

block的位置信息不会持久化,需要每次开启集群的时候DN向NN汇报

NameNode为了效率,将所有的操作都在内存中进行

 

拆分的数据块需要等大的原因(面试题)

a. 数据计算的时候简化问题的复杂度(否则进行分布式算法设计的时候会因为数据量不一很难设计) ​

b. 数据拉取的时候时间相对一致 ​

c. 通过偏移量就知道这个块的位置 ​

d. 相同文件分成的数据块大小应该相等

注意事项

a. 只要有任意一个块丢失,整个数据文件被损坏 ​

b. HDFS中一旦文件被存储,数据不允许被修改 ​ 修改会影响偏移量

 

MapReduce

架构特点:

MapReduce1.x:

JobTracker

   主节点,单点,负责调度所有的作用和监控整个集群的资源负载。

TaskTracker

   从节点,自身节点资源管理和JobTracker进行心跳联系,汇报资源和获取task。

Client

   以作业为单位,规划作业计算分布,提交作业资源到HDFS,最终提交作业到JobTracker。

Slot(槽):

属于JobTracker分配的资源(计算能力、IO能力等)。

不管任务大小,资源是恒定的,不灵活但是好管理。

Task(MapTask-->ReduceTask):

开始按照MR的流程执行业务。

当任务完成时,JobTracker告诉TaskTracker回收资源。

MapReduce1.x的弊端

  1.JobTracker负载过重,存在单点故障。

  2.资源管理和计算调度强耦合,其它计算框架难以复用其资源管理。

  3.不同框架对资源不能全局管理。

 

MapReduce2.x:

 

Client: 客户端发送MR任务到集群,其中客户端有很多种类,例如hadoop jar

ResourceManager: 资源协调框架的管理者,分为主节点和备用节点(防止单点故障,主备的切换基于ZK的管理),它时刻与NodeManager保持心跳,接受NodeManager的汇报(NodeManager当前节点的资源情况)。

当有外部框架要使用资源的时候直接访问ResourceManager即可。

如果是有MR任务,先去ResourceManager申请资源,ResourceManager根据汇报分配资源,例如资源在NodeManager1,那么NodeManager1要负责开辟资源。

Yarn(NodeManager): Yarn(Yet Another Resource Negotiator,另一种资源协调者),统一管理资源。以后其他的计算框架可以直接访问yarn获取当前集群的空闲节点。

每个DataNode上默认有一个NodeManager,NodeManager汇报自己的信息到ResourceManager。

Container: 它是动态分配的,2.X资源的代名词。

ApplicationMaster: 我们本次任务的主导者,负责调度本次被分配的资源Container。当所有的节点任务全部完成,applicaion告诉ResourceManager请求杀死当前ApplicationMaster线程,本次任务的所有资源都会被释放。

Task(MapTask--ReduceTask): 开始按照MR的流程执行业务,当任务完成时,ApplicationMaster接收当前节点的反馈。

 

YARN【Yet Another Resource Negotiator】:Hadoop 2.0新引入的资源管理系统,直接从MRv1演化而来的。

核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现:

   ResourceManager:负责整个集群的资源管理和调度。

   ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。

YARN的引入,使得多个计算框架可运行在一个集群中 每个应用程序对应一个ApplicationMaster 目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等。

 

MapReduce流程图:

MapReduce详细流程数据变化:

注意事项:

有多少个切片就会执行多少个Map任务

默认情况下,Split切片的大小等于Block的大小 ,默认128M,如果读取到最后一个block块的时候,与前一个blokc块组合起来的大小小于128M*1.1的话,他们结合生一个split切片,生成一个map任务

shuffle就是map之后,reduce之前的所有操作的过程,包含map task端对数据的分区、排序,溢写磁盘和合并操作,以及reduce task端从网络拉取数据、对数据排序合并等一系列操作。shuffle中做了大量的排序,数据溢写、合并和网络传输的工作,故而shuffle是个非常耗时的过程。

当我们对汉字进行操作时需要借助IK分词器(ikanalyzer)对汉字进行分词

标签:ResourceManager,hadoop,Hadoop,资源管理,JobTracker,小结,节点,资源
From: https://www.cnblogs.com/slm-1314521/p/16630944.html

相关文章

  • hadoop配置的几个小问题
    1.ssh免密登陆配置也要给本机进行配置,否则后续会出现问题。2.hadoop配置文件中需要看好value值的最后不能有空格。在hdfs-site.xml中,登陆网址是否自己进行了配置。 ......
  • 代码圈复杂度治理小结
    简介: 我们一直在说系统很复杂,那到底什么是系统复杂度呢?作为团队的稳定性底盘负责人,也经常和大家探讨为什么会因为圈复杂度高而被扣分。那么,怎么才能写的一手可读,可扩展,可......
  • hadoop
    YARNhttps://baijiahao.baidu.com/s?id=1697462995678594984&wfr=spider&for=pcResourceManager:资源分配调度NodeManager:一个机器node上的管理ApplicationMaster:一个......
  • ML第21周学习小结
    本周收获总结一下本周学习内容:1、《机器学习》第14章:概率图模型14.1隐马尔可夫模型14.2马尔科夫随机场14.3条件随机场14.4学习与推断14.5近似推断14.6话......
  • hadoop
    Mapper任务的执行过程每个Mapper任务是一个java进程,它会读取HDFS中的文件,解析成很多的键值对,经过我们覆盖的map方法处理后,转换为很多的键值对再输出把Mapper任......
  • 高一 OI 小结
    CSP-NOIp-WC-ZJOI-THUSC-NOI除了APIO算是把能打的都打了。然而其中,CSPNOIpZJOINOI都挂了分,ZJOITHUSCNOI都有分没写完,WC则是开题大出问题直接等于没打。哇!!!没有......
  • 胡说hadoop
    想起名字为“hadoop保姆即教程”的,想了想自己不能误人子弟,还是算了。。。。马上要开学了,没敢忘记我们还有暑假任务:学习hadoop并记录学习笔记。为了证明我hadoop入门了,就......
  • hadoop-day1-切分文件
    java模拟切分文件packagecom.shujia;importjava.io.*;importjava.util.ArrayList;publicclassSplitFileBlock{publicstaticvoidmain(String[]args)......
  • 搭建hadoop高可用集群
    一、搭建高可用集群1.1zookeeper搭建1、上传安装包到master并解压tar-xvfzookeeper-3.4.6.tar.gz2、配置环境变量vim/etc/profileexportZOOKEEPER_HOME=/usr/......
  • hadoop day2-内容理解
    进程理解HDFS相关(NN,DN,SSN)NameNode(NN)功能:1、接受客户端的读/写服务因为NameNode知道数据文件与DataNode的对应关系2、保存文件的时候会保存文件的元数据信息a......