返回
顶部

修改密码

Hadoop随笔

+1

-1

收藏

+1

-1

点赞0

评论0

Hadoop是一个海量数据分布式的存储和计算框架 三大核心设计有HDFS分布式存储系统、MapReduce分布式计算框架、Yarn分布式资源管理系统 一、HDFS分布式存储系统①HDFS是主从式结构,包括一个主节点NameNode和多个从节点DataNodeNameNode是管理节点,主要存储元数据信息,包括命…
Hadoop是一个海量数据分布式的存储和计算框架
三大核心设计有HDFS分布式存储系统、MapReduce分布式计算框架、Yarn分布式资源管理系统
一、HDFS分布式存储系统<特点:存储量大、容错性>
    ①HDFS是主从式结构,包括一个主节点NameNode和多个从节点DataNode
        NameNode是管理节点,主要存储元数据信息,包括命名空间信息、块信息等
        DataNode是工作节点,主要是存储数据,每个数据块默认3个副本,分布在两个机架的3个节点上,DataNode会定期<默认3秒>向NameNode发送心跳信息
        SecondaryNameNode是检查点节点,NameNode的冷备<当NameNode故障,它不能立即替换,而是存储了NameNode大部分信息,从而减少故障损失>,主要工作是定时去获取NameNode的edit logs并更新到自己的fsimage中,然后将这个fsimage拷贝给NameNode,NameNode下次重启会使用拷贝过来的这个fsimage,从而减少启动时间
        ※元数据映像文件<fsimage><完整的元数据>、编辑日志<edit logs><对数据的改动>
    ②HDFS的读写流程
        HDFS的读写操作都要经过NN 
        1、写流程
            1.首先Client通过Create()并给NN发送RPC<远程过程调用协议>请求,NN检查目标文件是否存在,然后返回是否可以上传
            2.Client对数据切分成block,一个block默认128M,然后向NN请求可以上传的DN,NN返回可以上传的DN
            3.Client上传数据到DN,然后第一个DN接收完反馈给Client,后台进行备份
            4.第一个block传输完成继续下一个
            

 

        2、读流程
            1.Client通过Open()并给NN发送RPC<远程过程调用协议>请求,NN返回DataNode的目标位置
            2.Client通过就近原则与DataNode建立流连接,获取数据
            3.Client接收完成对文件进行合并
                    
二、MapReduce分布式计算框架
        

 

    ①MapReduce主要分为Map和Reduce,Map和Reduce的输入输出都是<K,V>
        Map程序处理的数据是从HDFS中的DataNode的block中加载的,并产生一个临时的结果
        Reduce程序把临时的中间结果进行汇总,然后输出到HDFS中
    ②Shuffle<洗牌>过程:将Map的输出作为Reduce的输入的过程就是Shuffle【内存缓冲区/环形缓冲区】
        
  Map程序处理完数据会缓存到内存缓冲区<预排序>,每个Map Task都有一个内存缓冲区,内存缓冲区大小默认是100M,当内存缓冲区内容达到默认阈值<0.8>也就是80M,会锁定这80M启动单独线程溢写,Map Task还可以往剩下的20M内存写,如果内存缓冲区满了,Map会阻塞直到溢写完成,80M溢写到磁盘前先以Key的Hash值对Reduce个数取模进行分区,然后对每个分区的数据按Key进行排序<快速排序算法,二次排序>、聚合Combiner<需要设定>、压缩<需要设定>,最后留在内存缓冲区的数据也会生成1个溢写文件,最终1个Map Task生成多个溢写文件的合并Merge,合并到一个大的分区的、排序的<基于内存全局排序>文件中
        Reduce Task会不断通过RPC获取Map Task是否完成,Map Task结束Reduce Task就去Map端复制,复制过来放到内存缓冲区<默认JVM堆的大小>,达到阈值溢写,溢写前会聚合Combiner<需要设定>,溢写过程中后台线程会把这些文件合并<全局排序>、解压缩<如果设置>,当溢写全部完成,最后一次合并成一个排序的文件作为Reduce的输入<最后合并:一部分内存一部分磁盘>
三、Yarn分布式资源管理系统<Hadoop2.0>
    Yarn是主从式结构,由主节点RM和从节点NM组成,负责为运算程序提供服务器运行资源,它的出现主要是将资源管理和作业调度分离
    主要架构包括:
        APPLicationMaster<节点应用管理类>
        ResourceManager<资源管理程序>
        NodeManager<节点管理器>
        Container<资源(CPU、内存)>
    Yarn执行流程
        第一步:用户向Yarn提交应用程序<AM、启动AM命令、用户程序等>
        第二步:RM为该程序分配第一个资源,并与NM通信,要求NM在资源中启动AM
        第三步:AM首先向RM注册<通过RM监控应用程序运行状态>,然后通过轮询的方式为内部要执行的任务申请并领取资源 ,一旦得到资源,便与NM通信,以启动对应的任务
        第四步:各个任务通过心跳与AM通信,待所有任务运行完成后,AM向RM注销,整个应用程序运行结束,释放资源

扫一扫在手机打开

评论
已有0条评论
0/150
提交
热门评论
相关推荐
今日要闻
换一批
热点排行