完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

准备工作:

三台虚拟机,其中一台主机,两台节点;

需要提前下载好的文件:

ubuntu-16.04.4-desktop-amd64.iso.

jdk-8u92-linux-x64.tar.gz.

hadoop-2.6.5.tar.gz.

完全分布式Hadoop集群安装

Step1 安装3台Linux虚拟机。

1.在Vmware workstation软件里面,新建虚拟机,将一台ubuntu-16.04.4安装好,并克隆两次,得到三台虚拟机。

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2.启动三台虚拟机,并进行重命名。进入系统后打开命令行,输入命令:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

进行修改、保存,然后重启系统最后修改hostname结果如下图:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

Step2 修改etc/hosts文件,使三台虚拟机之间能够ping

1.输入ifconfig命令,依次查看三台虚拟机的IP地址

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2.依次三台虚拟机命令行输入sudo vim /etc/hosts,修改内容如图所示:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

3.完成修改后,用下面的命令测试三台虚拟机是否可以相互ping通。

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

Step3 建立hadoop账号

1.hadoop集群专门设置一个用户组及用户,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2.添加一个属于hadoop用户组的had_user用户,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

3.设置用户had_user登录密码,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

4.切换had_user用户,之后的操作都是在该用户下进行命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

上述设置需要在3台虚拟机里面都同样进行。

Step4 SSH无密码验证配置

1.安装SSH,命令如下

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2. 生成公钥、私钥,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

3.提示输入钥保存的路径直接按enter使用默认值即可,如下图:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

4.id_rsa.pub追加到授权的key里面去,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

5.测试是否可以用ssh无密码登录本地localhost,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

6. 另外两个节点虚拟机重复以上步骤。

7.ssh密码登录两个子节点,主节点为:master,子节点为:slave1,slave2分别两个子节点的命令终端执行下列命令:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

执行完上述命令后,回到主节点master,输入如下命令测试能否无密码登录:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

可以看到,未提示输入密码说明已经成功了。节点2:slave2重复执行以上步骤并测试,成功后,执行下一步。

Step5 jdkhadoop安装

1.在had_user用户的根目录下创建文件夹local,jdkhadoop都安装在这个文件夹下,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2.将下载好的jdk和hadoop安装包复制到local文件夹下并解压,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完成后,查看local目录,如图所示:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

3.环境变量配置打开并编辑配置文件命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

接下来,执行命令source ~/.bashrc是配置生效

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

通过查看java和hadoop版本,来检查配置是否成功,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

4.另外两个节点虚拟机重复以上步骤。

Step6 Hadoop环境配置

/home/had_user/local/hadoop-2.6.5/etc/hadoop文件夹中5个配置文件:slaves,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml

1.执行sudo vim slaves,添加三台主机的主机名:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2.修改core-site.xml

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

3.修改hdfs-site.xml:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

4.修改mapred-site.xml:

如果文件夹下没有这个文件需要先执行cp mapred-site.xml.template mapred-site.xml复制一份,然后再执行sudo vim mapred-site.xml命令。

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

5.修改yarn-site.xml:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

以上操作只在主节点master执行,然后格式化namenode只格式化一次。命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

Step7 节点配置

打开两个子节点虚拟机,将第5、6步配置的环境复制到子节点中,主节点master虚拟机上依次执行如下命令:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

Step8 启动hadoop集群

进入主节点master目录~/local/hadoop-2.6.5/sbin,执行start-all.sh,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

进入三台虚拟机中,输入jps命令,查看是否启动成功,如图所示:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

Step9 浏览器可视化管理Hadoop集群

主节点master的浏览器中分别输入192.168.211.133:8088和192.168.211.133:50070,IP地址为主节点虚拟机master的IP地址。如图所示

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

如果两个界面都能正常显示节点信息,说明Hadoop分布式集群环境已经基本安装好了。

Step10 测试Hadoop集群

为了确保集群能够使用,接下来对其进行测试。

1.hadoop集群提交第一MapReduce任务wordcount)

主节点master,进入hadoop目录~/local/hadoop-2.6.5)依次执行下列命令:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

结果如图所示:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

2.Hadoop提交单词统计任务命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

查看结果,如图所示:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

如果得到和上面类似的结果,就说明Hadoop分布式集群环境搭建成功。

Step11 关闭Hadoop集群

进入~/local/hadoop-2.6.5/sbin目录,命令如下:

完全分布式Hadoop集群搭建(Ubuntu16.04+hadoop2.6.5)

 常见问题:

1. 注意执行命令,选择正确的用户和路径。

2. 常见的Ubuntu系统的命令要比较熟悉。

3. 如果有条件的话,可以在实体机上进行搭建集群环境,虚拟机里面反应较慢。

4. 如果当前步骤出错,应该仔细检查之前的步骤有没有配置错误,再继续完成当前步骤。

参考资料:

1. Hadoop完全分布式集群环境搭建及测试. https://blog.csdn.net/lee20093905/article/details/78860400.

2. ubuntu拷贝文件夹到另外一个文件夹下,如何写shell命令. https://blog.csdn.net/u011089523/article/details/78408237.

3. Working With Hadoop: localhost: Error: JAVA_HOME is not set. https://*.com/questions/14325594/working-with-hadoop-localhost-error-java-home-is-not-set?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa.