Hadoop分布式集群搭建详细过程

1. 首先用五台机器搭建分布式,一个为master,剩下四个分别为slave01、slave02、slave03, slave04。

2. 修改机器名

    五台机器分别都执行sudo vim /etc/hostname命令,将文件中的内容分别改为master、slave01、slave02、slave03, slave04。

3. 重启机器,发现机器名修改成功。

4. 修改master的hosts文件,并拷贝到每台slave上。

    (1)修改hosts文件

              sudo vim /etc/hosts

Hadoop分布式集群搭建详细过程

5. 将hosts文件拷贝到另外两台台机器上,覆盖原来的hosts文件。

    master:

           scp /etc/hosts [email protected]的IP:~

           scp /etc/hosts [email protected]的IP:~

           scp /etc/hosts [email protected]的IP:~

           scp /etc/hosts [email protected]的IP:~

     slaver:

           sudo mv hosts /etc/hosts

6.  配置master免密登录

     master:

            ssh-****** -t rsa

            cat .ssh/id_rsa.pub >> .ssh/authorized_keys

            scp .ssh/id_rsa.pub [email protected]的IP:~/

            scp .ssh/id_rsa.pub [email protected]的IP:~/

            scp .ssh/id_rsa.pub [email protected]的IP:~/

            scp .ssh/id_rsa.pub [email protected]的IP:~/

      slave:

            cat id_rsa.pub >> .ssh/authorized_keys

7. 将hadoop-2.7.6文件从本地拖拽到虚拟机桌面,然后移动到/opt,然后进行解压。

    sudo mv hadoop-2.7.6.tar.gz /opt

    cd /opt

    sudo tar -zxvf hadoop-2.7.6.tar.gz

8. 编辑配置文件

    (1)编辑hadoop-env.sh文件

             sudo vim hadoop-env.sh

Hadoop分布式集群搭建详细过程

            改为:

Hadoop分布式集群搭建详细过程

  (2)编辑core-site.xml文件

           sudo vim core-site.xml

Hadoop分布式集群搭建详细过程

  (3)编辑mapred-site.xml文件  

           首先应通过复制mapred-site.xml.template得到mapred-site.xml文件,然后再进行编辑。

            cp mapred-site.xml.template mapred-site.xml

            sudo vim mapred-site.xml

Hadoop分布式集群搭建详细过程

  (4)编辑hdfs-site.xml文件

           sudo vim hdfs-site.xml

Hadoop分布式集群搭建详细过程

  (5)编辑masters文件

           sudo vim masters

           添加masters的IP地址到该文件

  (6)编辑slaves文件

           sudo vim slaves

           添加slave01、slave02、slave03、slave04的IP地址到该文件,并且删除localhost

9. 将配置文件拷贝到到各台slave

    master:

           scp hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml masters slaves [email protected]的IP地址:~

    slave:

            sudo mv *.xml /opt/hadoop-2.7.6/etc/hadoop

            sudo mv hadoop-env.sh masters slaves /opt/hadoop-2.7.6/etc/hadoop

10. 设置环境变量

      master:

            master上配置环境变量,然后将文件发给各台slave

            sudo vim /etc/profile

Hadoop分布式集群搭建详细过程

            source /etc/profile

            scp /etc/profile [email protected]的ip地址:~

       slave:

            sudo mv profile /etc/profile

            source /etc/profile

11. 更改hadoop-2.7.6的所属人和所属组(root用户)

      chown hadoop:hadoop -R hadoop-2.7.6/

      chmod 775  -R hadoop-2.7.6/

12. master格式化namenode

      ./hdfs namenode -format

       注:只格式化一次,若格式化多次可能导致VERSION不一致,启动namenode和datanode时报错。

              解决方法:

              ① 见https://blog.csdn.net/czw698/article/details/50507265

              ② 删除存name和data的目录,再重新格式化

13. 运行hadoop

       ./start-all.sh

Hadoop分布式集群搭建详细过程

14. 查看进程

      jps

      master进程:

Hadoop分布式集群搭建详细过程

      slave进程:

Hadoop分布式集群搭建详细过程

15. 停止hadoop

       ./stop-all.sh

Hadoop分布式集群搭建详细过程

           这里报错是因为防火墙问题,自己配置可能会出问题,可以选择关闭防火墙。

总结:搭建集群时,所有机器要拥有共同的用户,从而避免权限不够的错误;并且配置以及版本都应相同,否则可能会出现错误,尤其是在ssh免密登录时可能出现的错误最多。