Hadoop的全分布模式

一、搭建Hadoop的全分布模式

    1、三台机器:bigdata12  bigdata13  bigdata14
    2、每台机器准备工作:安装JDK、关闭防火墙、设置主机名
           systemctl stop firewalld.service
           systemctl disable firewalld.service

           设置主机名  vi /etc/hosts
            192.168.157.12 bigdata12
            192.168.157.13 bigdata13
            192.168.157.14 bigdata14

    3、配置免密码登录
        (1)在每台机器上产生公钥和私钥
               ssh-keygen -t rsa

        (2)需要将每台机器的公钥复制给其他机器(下面的三句话,需要在每台机器上执行)
              ssh-copy-id -i .ssh/id_rsa.pub root@bigdata12
              ssh-copy-id -i .ssh/id_rsa.pub root@bigdata13
              ssh-copy-id -i .ssh/id_rsa.pub root@bigdata14

    4、保证每台机器的时间同步的

设置每台机器的时间同步

putty下左边数起,第五个按钮,点下去,一条命令就可以设置。

这里写图片描述

Hadoop 的全分布模式
这里写图片描述

5、安装Hadoop的全分布环境(在主节点bigdata12上安装)
    (1)解压设置环境变量(除了环境变量在三台机器上都操作以外,其他的操作都是在主节点上操作的。)
    (2)修改配置文件
        hadoop.tmp.dir的参数一定要改。因为这个参数是hdfs保存数据的目录,默认的是linux的temp目录,修改为/root/training/hadoop-2.7.3/tmp

    hadoop-env.sh 
                    26行  export JAVA_HOME=/root/training/jdk1.8.0_144

    hdfs-site.xml(放到configuration)

                <!--数据块的冗余度,默认是3-->
                <property>
                  <name>dfs.replication</name>
                  <value>2</value>
                </property>

                <!--是否开启HDFS的权限检查,默认:true-->
                <property>
                  <name>dfs.permissions</name>
                  <value>false</value>
                </property>

    core-site.xml

                <!--NameNode的地址-->
                <property>
                  <name>fs.defaultFS</name>
                  <value>hdfs://bigdata12:9000</value>
                </property> 

                <!--HDFS数据保存的目录,默认是Linux的tmp目录-->
                <property>
                  <name>hadoop.tmp.dir</name>
                  <value>/root/training/hadoop-2.7.3/tmp</value>
                </property> 

    mapred-site.xml

                <!--MR程序运行的容器是Yarn-->
                <property>
                  <name>mapreduce.framework.name</name>
                  <value>yarn</value>
                </property>
    yarn-site.xml

                <!--ResourceManager的地址-->
                <property>
                  <name>yarn.resourcemanager.hostname</name>
                  <value>bigdata12</value>
                </property>     

                <!--NodeManager运行MR任务的方式-->
                <property>
                  <name>yarn.nodemanager.aux-services</name>
                  <value>mapreduce_shuffle</value>
                </property> 

    slaves: 配置的是所有的从节点
                    bigdata13
                    bigdata14

    (3)格式化NameNode: hdfs namenode -format


6、将配置好的目录复制到bigdata13和bigdata14上
         scp -r hadoop-2.7.3/ root@bigdata13:/root/training
         scp -r hadoop-2.7.3/ root@bigdata14:/root/training

7、启动Hadoop集群(在主节点上): start-all.sh
                             stop-all.sh


8、验证 
        (*)命令行:hdfs dfsadmin -report
        (*)网页:HDFS:http://192.168.157.12:50070/
                 Yarn:http://192.168.157.12:8088
第四章:Hadoop的体系结构(非常重要):原理、结构、运行机制
    问题:Putty或者SecureCRT连不上
    网卡重启的命令:service network restart

    一、HDFS的体系结构和运行原理
        1、主节点:NameNode
        (*)职责:管理HDFS
                   接收客户端的请求:上传数据、下载数据
                   管理和维护日志(叫做:edits文件)和元信息(指的是:数据块的位置信息:fsimage文件)

        (*)HDFS的日志:edits文件
            举例: 创建目录  ---> 产生日志
            hdfs dfs -mkdir /mydemo1
            查找edits文件:find . -name edits*    (. 表示的是在当前目录下去找)
            (1) edits_inprogress_0000000000000000105是二进制文件
           (2)HDFS提供一个工具:edits viewer 日志查看器,转换成一个XML文件
                hdfs oev -i edits_inprogress_0000000000000000105 -o ~/a.xml
                    <RECORD>
                            <OPCODE>OP_MKDIR</OPCODE>
                            <DATA>
                              <TXID>107</TXID>
                              <LENGTH>0</LENGTH>
                              <INODEID>16416</INODEID>
                              <PATH>/mydemo1</PATH>
                              <TIMESTAMP>1512565581211</TIMESTAMP>
                              <PERMISSION_STATUS>
                                <USERNAME>root</USERNAME>
                                <GROUPNAME>supergroup</GROUPNAME>
                                <MODE>493</MODE>
                              </PERMISSION_STATUS>
                            </DATA>
                    </RECORD>

        (*)HDFS的元信息:fsimage文件:记录数据块的位置信息、冗余信息等等
                查找fsimage文件:find . -name fsimage*
                也是二进制的
                HDFS也提供了一个工具:image viewer ,把fsimage文件转成文本、XML的文件
                hdfs oiv -i fsimage_0000000000000000102 -o ~/b.xml -p XML

        (*)问题:edits文件和fsimage文件,哪个文件体现了HDFS的最新状态?(回答:edits文件)
        2、从节点:DataNode
            (*)按数据块保存数据:1.x:64M   2.x:128M
            (*)数据块在操作系统的位置:
                 find . -name blk*
                /root/training/hadoop-2.7.3/tmp/dfs/data/current/BP-156326068-192.168.157.11-1512395988927/current/finalized/subdir0/subdir0
            (*)设置数据块冗余度的基本原则
                  一般,冗余度跟数据节点的个数一样,最大不要超过3

        3、第二名称节点:SecondaryNameNode,默认就跟NameNode在一起
            (*)职责:定期进行日志信息的合并,edits ---> fsimage中
            (*)掌握日志合并过程(重要)
            如果你在oracle数据库中,发出了检查点,他会以最高优先级,唤醒数据库的写进程,来写内存中的脏数据(把内存中的脏数据写到硬盘上保存,这样子数据就持久化的保存下来了)

    二、Yarn的体系结构和运行原理:运行MapReduce的容器
        hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/wc1206

        1、主节点:ResourceManager
            职责:(*)接收任务请求
                 (*)资源的分配
                 (*)任务分配

        2、从节点:NodeManager
            职责:(*)从ResourceManager获取任务和资源
                 (*)执行

        3、调度MR任务的过程

        4、资源分配方式
            (1)FIFO Scheduler:先来先得
            (2)Capacity Scheduler:容器管理
            (3)Fair Scheduler:公平调度管理 ,前提:假设任务具有相同优先级,平均分配资源

    三、HBase的体系结构和运行原理
        HBase是基于HDFS之上的NoSQL数据库

        1、主节点:HMaster
        2、从节点:RegionServer
    四、主从结构的单点故障问题及解决方案(了解)

SecondaryNameNode日志合并的过程

这里写图片描述

Yarn调度MR任务的过程

资源的公平调度原则

这里写图片描述

HBase的体系结构

这里写图片描述

主从结构的单点故障问题及解决方案

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值