zoukankan      html  css  js  c++  java
  • hadoop框架hdfs、mapreduce、yarn三大组件内容

    Hadoop是什么?
    1.hadoop是一个由Apache基金会所开发的分布式系统基础架构。
    2.主要解决,海量数据的储存和海量数据的分析计算问题。
    3.广义来说,hadoop通常是指一个更广泛的概念----Hadoop生态圈。
     Hadoop三大发行版本
    Hadoop三大发行版本:Apache、Cloudera、Hortonworks。
    Apache版本最原始(最基础)的版本,对于入门学习最好。
    Cloudera在大型互联网企业中用的较多。
    Hortonworks文档较好。
     Hadoop的优势(4高)
    1.高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
    2.高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
    3.高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。
    4.高容错性:能够自动将失败的任务重新分配。
    HDFS的局限
        HDFS的上述种种特点非常适合于大数据量的批处理,但是对于一些特点问题不但没有优势,而且有一定的局限性,主要表现以下几个方面:
        1、不适合低延迟数据访问
          如果要处理一些用户要求时间比较短的低延迟应用请求(比如毫秒级、秒级的响应时间),则HDFS不适合。HDFS是为了处理大型数据集而设计的,主要是为了达到高的数据吞吐量而设计的,
        延迟时间通常是在分钟乃至小时级别。
          对于那些有低延迟要求的应用程序,HBase是一个更好的选择,尤其是对于海量数据集进行访问要求毫秒级响应的情况,单HBase的设计是对单行或少量数据集的访问,对HBase的访问必须提供主键或主键范围。
        2、无法高效存储大量小文件
        3、不支持多用户写入和随机文件修改
          在HDFS的一个文件中只有一个写入者,而且写操作只能在文件末尾完成,即只能执行追加操作。
     HDFS架构概述
    1.NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生存时间,副本数,文件权限),以及每个文件的快列表和块所在的DataNode等。
    2.DataNode(dn):在本地文件系统储存文件块数据,以及块数据的校检和。
    3.Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
    HDFS是分布式文件系统,有高容错性的特点,可以部署在价格低廉的服务器上,主要包含namenode和datanode。
    Namenode是hdfs中文件目录和文件分配管理者,它保存着文件名和数据块的映射管理,数据块和datanode列表的映射关系。其中文件名和数据块的关系保存在磁盘上,但是namenode上不保存数据块和datanode列表的关系,该列表是通过datanode上报建立起来的。
    Namenode上的有三种交互,1、client访问namenode获取的相关datanode的信息。2、datanode心跳汇报当前block的情况。3、secondarynamenode做checkpoint交互。
    DataNode它负责实际的数据存储,并将数据息定期汇报给NameNode。DataNode以固定大小的block为基本单位组织文件内容,默认情况下block大小为128MB。当用户上传一个大的文件到HDFS上时,该文件会被切分成若干个block,分别存储到不同的DataNode;同时,为了保证数据可靠,会将同一个block以流水线方式写到若干个(默认是3,该参数可配置)不同的DataNode上。这种文件切割后存储的过程是对用户透明的。
    SecondaryNameNode,用来辅助namenode进行元数据的合并,并且传回到namenode。
     YARN架构概述
    YARN主要包括几种角色
    1.ResourceManager(RM):主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM),一个集群只有一个。
    2.NodeManager:主要是节点上的资源管理,启动Container运行task计算,上报资源、container情况给RM和任务处理情况给AM,整个集群有多个。
    3.ApplicationMaster:主要是单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。每个应用有一个。
    4.Container:是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)。

    Hadoop运行环境搭建
    虚拟机环境准备

    1. 克隆虚拟机
    2. 修改克隆虚拟机的静态IP
    3. 修改主机名
    4. 关闭防火墙
    5. 创建jinghang用户
    6. 配置jinghang用户具有root权限(详见《大数据技术之Linux》)
    7.在/opt目录下创建文件夹
    (1)在/opt目录下创建module、software文件夹
    [jinghang@hadoop101 opt]$ sudo mkdir module
    [jinghang@hadoop101 opt]$ sudo mkdir software
    (2)修改module、software文件夹的所有者cd
    [jinghang@hadoop101 opt]$ sudo chown jinghang:jinghang module/ software/
    [jinghang@hadoop101 opt]$ ll
    总用量 8
    drwxr-xr-x. 2 jinghang jinghang 4096 1月  17 14:37 module
    drwxr-xr-x. 2 jinghang jinghang 4096 1月  17 14:38 software

    Hadoop运行模式
    Hadoop运行模式包括:本地模式、伪模式以及完全分布式模式。
    编写集群分发脚本xsync
    1. scp(secure copy)安全拷贝
    (1)scp定义:
    scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
    (2)基本语法
    scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname
    命令   递归       要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

    2.  rsync 远程同步工具
    rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
    rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
    (1)基本语法
    rsync    -av       $pdir/$fname              $user@hadoop$host:$pdir/$fname
    命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称
      选项参数说明
    表2-2
    选项 功能
    -a 归档拷贝
    -v 显示复制过程
    3. xsync集群分发脚本
    (1)需求:循环复制文件到所有节点的相同目录下
    (2)需求分析:
    (a)rsync命令原始拷贝:
    rsync  -av     /opt/module    root@hadoop103:/opt/
    (b)期望脚本:
    xsync要同步的文件名称
    (c)说明:在/home/jinghang/bin这个目录下存放的脚本,jinghang用户可以在系统任何地方直接执行。
    (3)脚本实现
    集群配置
    集群部署规划
    表2-3
    hadoop102 hadoop103 hadoop104
    HDFS NameNodeDataNode DataNode SecondaryNameNodeDataNode
    YARN NodeManager ResourceManagerNodeManager NodeManager
    2. 配置集群
    (1)核心配置文件
    配置core-site.xml
    [jinghang@hadoop102 hadoop]$ vi core-site.xml
    在该文件中编写如下配置
    <!-- 指定HDFS中NameNode的地址 -->
    <property>
    <name>fs.defaultFS</name>
          <value>hdfs://hadoop102:9000</value>
    </property>
    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>
    (2)HDFS配置文件
    配置hadoop-env.sh
    [jinghang@hadoop102 hadoop]$ vi hadoop-env.sh
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    配置hdfs-site.xml
    [jinghang@hadoop102 hadoop]$ vi hdfs-site.xml
    在该文件中编写如下配置
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>
    <

  • 相关阅读:
    MyGame--java语言编写的打飞机游戏(附源码下载)
    调用MyFocus库,简单实现二十几种轮播效果
    aBowman >>可以运用到自己博客上的小插件
    css通用小笔记03——浏览器窗口变小 div错位的问题
    css通用小笔记02——浮动、清除(三个例子)
    css通用小笔记01——导航背景
    PHP强制转换类型
    数据库---查询语句(三):高级查询
    数据库---T-SQL语句:查询语句(二)
    数据库---T-SQL语句(一)
  • 原文地址:https://www.cnblogs.com/chenduo000/p/13381892.html
Copyright © 2011-2022 走看看