• hadoop集群搭建及yarn集群分布式计算



    启动hdfs集群并测试:
    1、格式化文件系统
    [hadoop@master01 ~]$ hdfs namenoad -format
    2、启动分布式稳步系统dfs.sh脚本
    [hadoop@master01 software]$ start-dfs.sh
    jdk中的jps命令查看java进程
    kill -9 +进程号:强制中断进程

     

     


    启动yarn集群并测试(资源调度---存储,网络和计算,属于守护线程):
    1、分布式计算,先启动dfs.sh集群,在启动yarn集群(用jps查看进程)
    [hadoop@master01 software]$ start-yarn.sh


    观察HDFS集群状态信息:
    http://192.168.29.130:50070
    查看yarn集群状态信息:
    http://192.168.29.130:8088

    停止yarn集群
    [hadoop@master01 software]$ stop-yarn.sh
    停止hdfs集群
    [hadoop@master01 software]$ stop-dfs.sh

    上传集群文件
    [hadoop@master01 install]$ hdfs dfs -put initNetwork.sh /test/
    下载集群中文件
    [hadoop@master01 software]$ hdfs dfs -get /test/initNetwork.sh

    mv命令修改或者移动
    同目录下就是改名
    不同目录下就是移动
    [hadoop@master01 software]$ hdfs dfs -mv /test/test2/user01 /test/test2/user02

     

    [root@CloudDeskTop test]# jar
    用法: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
    选项包括:
    -c 创建新的归档文件
    -t 列出归档目录
    -x 从档案中提取指定的 (或所有) 文件
    -u 更新现有的归档文件
    -v 在标准输出中生成详细输出
    -f 指定归档文件名
    -m 包含指定清单文件中的清单信息
    -e 为捆绑到可执行 jar 文件的独立应用程序
    指定应用程序入口点
    将类封装成jar文件
    [root@CloudDeskTop test]# jar -cvfe Test.jar Test Test.class
    运行jar文件的两种方式:第一种要求在封装时用到-e添加主类
    [root@CloudDeskTop test]# java -jar Test.jar
    [root@CloudDeskTop test]# java -classpath Test.jar Test

    内存不足:
    ----------------
    1、将java.class源码打包成jar格式
      2、上传到master01,关闭top
    3、[hadoop@master01 test]$ /install/java.sh -classpath HDFSDemo.jar -libs Hadoop2.7.3/ -main com.bunfly.bigdata.hdfs.main.HdfsMain

     

    HDFS原理(分布式存储):

    在启动hdfs集群或yarn集群时,master节点主动链接所有的slave节点并在节点上启动相应的进程(DN(datenode)/NM(nodeManage)链接的方式是通过SSH通道来完成
    HDFS的读与写原理:
    写操作流程:
    A、客户端会将写入的数据进行分块和切片,每一个分块的大小默认是128MB(hadoop2.x之前是64MB)
    B、客户端==>Master节点,并将分块信息(块的尺寸和块的数量)提交上去,Master节点接收到写操作请求之后,会为每一个分块分配存储地址,并将分块之后的信息包装成块字典对象返回给客户端,块字典如下:客户端得到的就是Map中的值
    key value
    fileFullName Map(blockCode,list<addr,..(地址列表)..>)
    SNN(secondNameNode)被称为二级名称节点,他的主要作用:
    1、合并元数据
    2、备份元数据

     

     

    客户端链接yarn集群进行分布式计算(都是通过端口RPC链接运行):
    ----------------------------------
    1、client---->master(申请运行job,链接的是RM进程)
    2、master---->client(返回jobId和资源地址:提交的jar文件存放地址,配置信息conf地址,每个副本的spilt分配信息)
    3、client---->slave03(根据资源地址链接slave节点,上传资源--job.jar/job.conf/job.spilt)
    4、client---->master(反馈上传资源完成)
    5、master---->slave03(读取之前上传的资源信息,根据资源信息生成job对象,并将job对象放入job队列--master缓存区(job1,job2....))
    ------资源分配过程
    6、slave01--->master(slave主动链接master去领取自己的job,之间用NodeManage==ResourceManage进程)
    7、slave01--->slave03(根据领取的jobId,从资源地址下载job资源信息到本地(尤其是job.jar))
    8、slave01--->master(反馈资源下载完成,所有slave都要反馈)
    --------master启动MapReduce进程
    9、master在slave中寻找负载清闲的节点(例slave02),并在其上启动MRAPPMaster进程,同时slave02上会出现MapReduce进程
    10、slave02---->master(申请运行MapReduce进程)
    ---------master从此开始等待跟踪Task的运行过程
    11、master---->slave02(返回Task(一个job有多个Task,一个Task就是一个进程)与地址的映射表--告知哪些节点运行MapTask,哪些运行ReduceTask)
    12、slave02--->slave03(链接相应的slave并在其上启动相应的Task)
    --------Task进程跑完会将YarnChild进程结束信息反馈给master
    13、Task----->master(反馈Task进程(名字叫:YarnChild)运行完毕,所有进程都要反馈)
    -------都反馈完毕
    14、slave02--->master(反馈job运行完成)
    --------master关闭MapReduce进程
    15、master--->client(反馈job运行结束--1、环节出错,job运行失败,2、成功运行结束)

    MapReduce
    -----------
    MapTask-->磁盘:将文件中读取到的内容放进本地磁盘
    任务数量根据数据集的大小分片决定
    ---------中间过程排序Shuffe洗牌(经过繁琐的网络IO,通过HTTP的get方式下载)
    ReduceTask-->不设置默认任务数量为1,得到MapTask过来的key值和value数组

  • 相关阅读:
    2019 SDN上机第3次作业
    SDN第二次作业
    软件定义网络第一次作业
    软件工程实践第五次作业
    软件工程实践2019第四次作业------原型设计
    2019 SDN上机第7次作业
    2019 SDN上机第6次作业
    SDN课程阅读作业(2)
    软件工程实践个人作业——软件评测
    2019 SDN上机第5次作业
  • 原文地址:https://www.cnblogs.com/pandazhao/p/8031486.html
Copyright © 2020-2023  润新知