• Hadoop完全分布式模式


    集群配置

    1.    集群部署规划

    表2-3

     

    hadoop002

    hadoop003

    hadoop004

    HDFS

     

    NameNode

    DataNode

     

    DataNode

    SecondaryNameNode

    DataNode

    YARN

     

    NodeManager

    ResourceManager

    NodeManager

     

    NodeManager

    2.    配置集群

           (1)核心配置文件

    配置core-site.xml

    [root@hadoop002 hadoop]# vim core-site.xml
    [root@hadoop002 hadooop]#
    <configuration>
    <!-- 指定HDFS中NameNode的地址 -->
    <property>
    <name>fs.defaultFS</name>
        <value>hdfs://hadoop002:9000</value>
    </property>
    
    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>
    
    
    </configuration>

           (2)HDFS配置文件

    配置hdfs-site.xml

    [root@hadoop002 hadoop]# vim  hdfs-site.xml
    [root@hadoop002 hadoop]#
    <configuration>
    <property>
            <name>dfs.replication</name>
            <value>3</value>
    </property>
    <!-- 指定Hadoop辅助名称节点主机配置 -->
    <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop004:50090</value>
    </property>
    
    </configuration>

    (3)YARN配置文件

    配置yarn-site.xml

    [root@hadoop002 hadoop]#  vim yarn-site.xml
    [root@hadoop002 hadoop]#

    在该文件中增加如下配置

    <configuration>
    
    <!-- Reducer获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop003</value>
    </property>
    
    <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>
    
    <!-- 日志保留时间设置7天 -->
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
    </property>
    
    </configuration>

    (4)MapReduce配置文件

    配置mapred-site.xml

    [root@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml 
    <configuration>
    <!-- 指定MR运行在YARN上 -->
          <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
           </property>
    
    <!-- 历史服务器端地址 -->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop001:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop001:19888</value>
    </property>
    
    </configuration>

    3.在集群上分发配置好的Hadoop配置文件

    [root@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/

    4.查看文件分发情况

    [root@hadoop103 hadoop]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

    4.3.4 集群单点启动

    (1)如果集群是第一次启动,需要格式化NameNode

    [root@hadoop102 hadoop-2.7.2]$ hadoop namenode -format

    (2)在hadoop102上启动NameNode

    sbin/hadoop-daemon.sh start datanode
    [root@hadoop102 hadoop-2.7.2]$ jps
    
    3461 NameNode

    (3)在hadoop002、hadoop003以及hadoop004上分别启动DataNode

    [root@hadoop002 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
    [root@hadoop002 hadoop-2.7.2]$ jps
    3461 NameNode
    3608 Jps
    3561 DataNode
    
    [root@hadoop003 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
    [root@hadoop003 hadoop-2.7.2]$ jps
    3190 DataNode
    3279 Jps
    
    [root@hadoop004 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
    [root@hadoop004 hadoop-2.7.2]$ jps
    3237 Jps
    3163 DataNode

     其中要群起集群的话,可以看这边博客,要设置一下SSH:https://www.cnblogs.com/dalianpai/p/12194726.html

    群起集群

    1.    配置slaves

    /opt/module/hadoop-2.7.2/etc/hadoop/slaves

    [root@hadoop002 hadoop]# cat slaves
    hadoop002
    hadoop003
    hadoop004
    [root@hadoop002 hadoop]#

    注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

    同步所有节点配置文件

    [root@hadoop002 hadoop]# xsync slaves
    fname=slaves
    pdir=/opt/module/hadoop-2.7.2/etc/hadoop
    ------------------- hadoop3 --------------
    sending incremental file list
    slaves
    
    sent 119 bytes  received 41 bytes  106.67 bytes/sec
    total size is 30  speedup is 0.19
    ------------------- hadoop4 --------------
    sending incremental file list
    slaves
    
    sent 119 bytes  received 41 bytes  320.00 bytes/sec
    total size is 30  speedup is 0.19
    [root@hadoop002 hadoop]# jps
    24551 NameNode
    24475 DataNode
    25868 Jps

    2.    启动集群

           (1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)

    [root@hadoop002 hadoop]# cd ../../
    [root@hadoop002 hadoop-2.7.2]# sbin/hadoop-daemon.sh stop datanode
    stopping datanode
    [root@hadoop002 hadoop-2.7.2]# sbin/hadoop-daemon.sh stop namenode
    stopping namenode
    [root@hadoop003 hadoop-2.7.2]# sbin/hadoop-daemon.sh stop datanode
    stopping datanode
    [root@hadoop003 hadoop-2.7.2]# jps
    26702 Jps
    [root@hadoop004 hadoop-2.7.2]# sbin/hadoop-daemon.sh stop datanode
    stopping datanode
    [root@hadoop004 hadoop-2.7.2]# jps
    20994 Jps

    [atguigu@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format

    (2)启动HDFS

    root@hadoop002 hadoop-2.7.2]# sbin/start-dfs.sh
    Starting namenodes on [hadoop002]
    hadoop002: starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-namenode-hadoop002.out
    hadoop002: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop002.out
    hadoop003: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop003.out
    hadoop004: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop004.out
    Starting secondary namenodes [hadoop004]
    hadoop004: starting secondarynamenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-root-secondarynamenode-hadoop004.out
    [root@hadoop002 hadoop-2.7.2]# jps
    26023 NameNode
    26152 DataNode
    26361 Jps
    [root@hadoop004 hadoop-2.7.2]# jps
    21122 SecondaryNameNode
    21029 DataNode
    21163 Jps

    (3)启动YARN

    [root@hadoop003 hadoop-2.7.2]#  sbin/start-yarn.sh
    starting yarn daemons
    starting resourcemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-resourcemanager-hadoop003.out
    hadoop004: starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-nodemanager-hadoop004.out
    hadoop002: starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-nodemanager-hadoop002.out
    hadoop003: starting nodemanager, logging to /opt/module/hadoop-2.7.2/logs/yarn-root-nodemanager-hadoop003.out
    [root@hadoop003 hadoop-2.7.2]# jps
    26963 NodeManager
    26739 DataNode
    27256 Jps
    26862 ResourceManager

    注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。

    (4)Web端查看SecondaryNameNode

    (a)浏览器中输入:http://hadoop004:50090/status.html

                  (b)查看SecondaryNameNode信息,如图

    集群基本测试

    (1)上传文件到集群

             上传小文件

    [root@hadoop002 hadoop-2.7.2]# bin/hdfs dfs -put wcinput/wc.input /
    [root@hadoop002 hadoop-2.7.2]# ll

             上传大文件

    [root@hadoop002 hadoop-2.7.2]# bin/hdfs dfs -put /opt/module/jdk1.8.0_144/lib/tools.jar /
    20/01/15 12:11:08 WARN hdfs.DFSClient: Slow waitForAckedSeqno took 39284ms (threshold=30000ms)

    (2)上传文件后查看文件存放在什么位置

    [root@hadoop002 hadoop-2.7.2]# cd data/tmp/dfs/data/current/BP-1442086029-172.16.25.74-1579016149783/current/
    [root@hadoop002 current]# ll
    total 16
    -rw-r--r-- 1 root root   19 Jan 15 11:55 dfsUsed
    drwxr-xr-x 3 root root 4096 Jan 15 12:05 finalized
    drwxr-xr-x 2 root root 4096 Jan 15 12:11 rbw
    -rw-r--r-- 1 root root  132 Jan 15 11:58 VERSION
    [root@hadoop002 current]# cd finalized/subdir0/
    [root@hadoop002 subdir0]# ll
    total 4
    drwxr-xr-x 2 root root 4096 Jan 15 12:11 subdir0
    [root@hadoop002 subdir0]# cd subdir0/
    [root@hadoop002 subdir0]# ll
    total 18008
    -rw-r--r-- 1 root root       48 Jan 15 12:05 blk_1073741825
    -rw-r--r-- 1 root root       11 Jan 15 12:05 blk_1073741825_1001.meta
    -rw-r--r-- 1 root root 18284613 Jan 15 12:11 blk_1073741826
    -rw-r--r-- 1 root root   142859 Jan 15 12:11 blk_1073741826_1002.meta

    假如文件大于128M,存储的时候会进行切分。 

    4.3.7 集群启动/停止方式总结

    1.    各个服务组件逐一启动/停止

           (1)分别启动/停止HDFS组件

                  hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode

           (2)启动/停止YARN

                  yarn-daemon.sh  start / stop  resourcemanager / nodemanager

    2.    各个模块分开启动/停止(配置ssh是前提)常用

           (1)整体启动/停止HDFS

                  start-dfs.sh   /  stop-dfs.sh

           (2)整体启动/停止YARN

                  start-yarn.sh  /  stop-yarn.sh

  • 相关阅读:
    python-IO编程
    DNS解析流程
    python-模块
    HTTP协议
    python-函数式编程
    nmap扫描结果的6种端口状态
    python-高级特性
    python-函数
    python-基础
    上传之路
  • 原文地址:https://www.cnblogs.com/dalianpai/p/12197277.html
Copyright © 2020-2023  润新知