一、系统+用户

  1.Ubuntu16

   ①主节点主机名:master     用户名:master

   ②从节点主机名:slave1、slave2      用户名:slave1、slave2

(主机名在/etc/hostname中修改;ubuntu无法直接修改用户名,修改用户名会有坑!)

(如果从节点为主节点的克隆机,则需要更改从节点的mac地址,请谨慎!)

二、工具准备

  1.jdk1.7.0_71

  2.hadoop-2.6.5

三、安装jdk(以下操作如不做特别说明则都在主节点中进行操作)

  1.解压jdk到/opt/中

  2.配置~/.bashrc(用户变量,仅当前用户可用)或/etc/profile(系统变量,所有用户可用)

四、安装ssh并配置免密登录(此步骤需要在从节点进行一样的操作)

  1.检查防火墙,如果防火墙未关闭则关闭防火墙

   ①sudo ufw status     ②sudo ufw disable

  2.配置主机地址映射

    新增/etc/hosts中主机ip和主机名的映射关系主从节点的映射都要写上

    (如果hosts文件中有127.0.1.1 master的映射则需要删除这条映射,否则从节点将无法使用hdfs的各指令)

   重启系统

  3.安装ssh服务

   sudo apt-get install openssh-server

  4.重启ssh服务以初始化目录

   sudo /etc/init.d/ssh restart

  5.安装ntp时间服务

    sudo apt-get instal ntp

  6.配置免密登录

    ①ssh-kegen -t rsa -P '' (单引号中没有空格)生成密钥对

    ②ssh-copy-id -i ~/.ssh/id_rsa.pub master@master

      ssh-copy-id -i ~/.ssh/id_rsa.pub slave1@slave1

      ssh-copy-id -i ~/.ssh/id_rsa.pub slave2@slave2

      将公钥id_rsa.pub 追加到自己的~/.ssh/authorized_keys 文件中,并复制到其它两台机器上

   ③ 验证免密登录:在master 主机验证免密码登录集群所有机器

五、解压Hadoop修改并修改配置文件

  1.解压Hadoop到/opt中并修改文件名为hadoop

  2.修改配置文件

     ①/opt/hadoop/etc/hadoop/hadoop-env.sh 中配置jdk路径

    ②/opt/hadoop/etc/hadoop/core-site.xml 的配置

     

<configuration>
          <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/opt/hadoop/tmp</value>
          <description>Abase for other temporary directories.</description>
          </property>
          <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
          </property>
          </configuration>

    ③/opt/hadoop/etc/hadoop/hdfs-site.xml 的配置

     

<configuration>
          <property>
            <name>dfs.replication</name>
            <value>2</value>
          </property>
          <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/opt/hadoop/tmp/dfs/name</value>
          </property>
          <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/opt/hadoop/tmp/dfs/data</value>
          </property>
          <property>
            <name>dfs.secondary.http.address</name>
            <value>master:50090</value>
          </property>
          </configuration>

    ④/opt/hadoop/etc/hadoop/mapred-site.xml 的配置(此文件需要从mapred-site.xml.xxxxxx中更名而来)

 

<configuration>
          <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
          </property>
          </configuration>

    ⑤/opt/hadoop/etc/hadoop/yarn-site.xml 的配置

<property>
          <name>yarn.resourcemanager.hostname</name>
          <value>master</value>
          </property>
          <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
          </property>
          </configuration>

   ⑥修改hadoop文件夹的所属用户:sudo chown -R master:master /opt/hadoop

六、通过scp -r 把整个hadoop文件夹发送到从节点,同时修改文件夹所属用户

七、修改~/.bashr或/etc/profile并发送到从节点中并source此文件

八、仅在主节点配置/opt/hadoop/etc/hadoop/slaves文件,把其中的localhost删除并添加从节点的【用户名】@【主机名】;如果所有主机的用户名都一致也可只添加主机名

九、在主节点格式化集群

    hadoop/bin目录下 ./hdfs namenode -foemat

十、启动集群

    ./start-all.sh

十一、jps验证进程,并在各主机尝试hdfs指令,如无异常可配置环境变量在全局使用hdfs指令

    ①主节点进程:

        SecondaryNameNode

       NameNode

       ResourceManager

    ②从节点进程

       NodeManager

       DataNode

    **web管理集群:【主节点IP】: 50070