• 说明:
    完成Hadoop全分布式环境搭建,需准备至少3台虚拟机(niit01 niit02 niit03)
  • 环境:
    VMWare + Centos7 + JDK1.8+ Hadoop2.7.3
  • 主机规划:
    主节点:niit01
    从节点:niit02 , niit03

一、准备工作


  • 1、所有主机安装jdk
  • 2、所有主机都需要关闭防火墙
  • 3、所有主机都需要配置主机名映射关系 vi /etc/hosts
  • 4、配置免密码登录(配置两两之间的免密码登录)
    所有的机器都需要产生一对密钥:公钥和私钥
    ssh-keygen -t rsa
    所有主机需要执行
    ssh-copy-id -i .ssh/id_rsa.pub root@niit01
    ssh-copy-id -i .ssh/id_rsa.pub root@niit02
    ssh-copy-id -i .ssh/id_rsa.pub root@niit03
    
  • 5、保证每台机器的时间是一样的
    如果不一样的话,我们在执行MapReduce程序的时候可能会存在问题.。 解决方案:
    1)搭建一个时间同步的服务器,网上很多教程可以使用
    2)使用putty/shell工具,可以简单实现这个功能:
    date -s 2018-07-30后面必须敲一个回车

二、在主节点上进行安装配置(niit01)


  • 上传hadoop安装包,解决配置环境变量
    tar -zvxf /tools/hadoop-2.7.3.tar.gz -C /training/
    注意需要同时设置:niit01 niit02 niit03

    export HADOOP_HOME=/training/hadoop-2.7.3
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    
  • 创建tmp目录
    mkdir /training/hadoop-2.7.3/tmp

  • 修改配置文件
    1)hadoop-env.sh (参考伪分布模式)
    vi /training/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
    需要这只jdk路径
    2)hdfs-site.xml
    vi /training/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
    添加如下信息:
    <configuration></configuration>之间添加

    <property>
     <name>dfs.replication</name>
     <value>2</value>
    </property>
    <property>
     <name>dfs.permissions</name>
     <value>false</value>
    </property>
    

    3)core-site.xml
    vi /training/hadoop-2.7.3/etc/hadoop/core-site.xml
    添加如下信息:

    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://niit01:9000</value>
    </property>              
    <property>
       <name>hadoop.tmp.dir</name>
       <value>/training/hadoop-2.7.3/tmp</value>
    </property>
    

    4)mapper-site.xml
    vi /training/hadoop-2.7.3/etc/hadoop/mapper-site.xml
    添加如下信息:

    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>niit04:10020</value>
    </property>
    <!-- 历史服务器 web 端地址 -->
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>niit04:19888</value>
    </property>
    

    5)yarn-site.xml

    vi /training/hadoop-2.7.3/etc/hadoop/yarn-site.xml
    添加如下信息:

    <!--Yarn的主节点RM的位置-->
    <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>niit01</value>
    </property>
    
    <!--MapReduce运行方式:shuffle洗牌-->
    <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</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>
    <!--配置Log Server -->
    <property>
    <name>yarn.log.server.url</name>
    <value>http://niit01:19888/jobhistory/logs</value>
    </property>
    

    6)slaves
    vi /training/hadoop-2.7.3/etc/hadoop/slaves
    添加如下信息:
    niit02
    niit03

  • 格式化nameNode
    hdfs namenode -format
    如格式化日志,会打印出如下日志信息:
    Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted.

三、分发到从节点


将上述配置好后的环境即hadoop2.7.3整个目录分别远程复制到其他两台从节点上(niit02,niit03)上:

  • 将niit01上的hadoop环境复制到niit02 niit03
    scp -r hadoop-2.7.3/ root@niit02:/training/
    scp -r hadoop-2.7.3/ root@niit03:/training/

四、在主节点(niit01)上启动


  • 在主节点(niit01)上启动hdfs
    start-all.sh

五、验证结果


  • jps查看进程
    主节点:
    NameNode ResourceMnager SecondaryNameNode
    从节点:
    DataNode NodeManager
  • 浏览器查看
    HDFS: http://niit01:50070
    YARN:http://niit01:8088
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐