准备工作:
三台虚拟机,其中一台主机,两台节点;
需要提前下载好的文件:
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安装好,并克隆两次,得到三台虚拟机。
2.启动三台虚拟机,并进行重命名。进入系统后,打开命令行,输入命令:
进行修改、保存,然后重启系统。最后修改了hostname的结果如下图:
Step2 修改etc/hosts文件,使三台虚拟机之间能够ping通。
1.输入ifconfig命令,依次查看三台虚拟机的IP地址:
2.依次在三台虚拟机的命令行中输入sudo vim /etc/hosts,修改内容如图所示:
3.完成修改后,用下面的命令测试三台虚拟机是否可以相互ping通。
Step3 建立hadoop账号
1.为hadoop集群专门设置一个用户组及用户,命令如下:
2.添加一个属于hadoop用户组的had_user用户,命令如下:
3.设置用户had_user的登录密码,命令如下:
4.切换到had_user用户,之后的操作都是在该用户下进行,命令如下:
上述设置需要在3台虚拟机里面都同样进行。
Step4 SSH无密码验证配置
1.安装SSH,命令如下:
2. 生成公钥、私钥,命令如下:
3.提示输入密钥保存的路径,直接按enter键使用默认值即可,如下图:
4.把id_rsa.pub追加到授权的key里面去,命令如下:
5.测试是否可以用ssh无密码登录本地localhost,命令如下:
6. 在另外两个节点虚拟机重复以上步骤。
7.ssh无密码登录两个子节点,主节点为:master,子节点为:slave1,slave2。分别在两个子节点的命令终端执行下列命令:
执行完上述命令后,回到主节点master,输入如下命令测试能否无密码登录:
可以看到,未提示输入密码,说明已经成功了。对节点2:slave2重复执行以上步骤并测试,成功后,执行下一步。
Step5 jdk、hadoop安装
1.在had_user用户的根目录下创建文件夹local,jdk和hadoop都安装在这个文件夹下,命令如下:
2.将下载好的jdk和hadoop安装包复制到local文件夹下并解压,命令如下:
完成后,查看local目录,如图所示:
3.环境变量配置。打开并编辑配置文件,命令如下:
接下来,执行命令source ~/.bashrc是配置生效。
通过查看java和hadoop的版本,来检查配置是否成功,命令如下:
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,添加三台主机的主机名:
2.修改core-site.xml:
3.修改hdfs-site.xml:
4.修改mapred-site.xml:
如果文件夹下没有这个文件,需要先执行cp mapred-site.xml.template mapred-site.xml复制一份,然后再执行sudo vim mapred-site.xml命令。
5.修改yarn-site.xml:
以上操作只在主节点master上执行,然后格式化namenode,只格式化一次。命令如下:
Step7 子节点配置
打开两个子节点虚拟机,将第5、6步配置的环境复制到子节点中,在主节点master虚拟机上依次执行如下命令:
Step8 启动hadoop集群
进入主节点master目录~/local/hadoop-2.6.5/sbin下,执行start-all.sh,命令如下:
进入三台虚拟机中,输入jps命令,查看是否启动成功,如图所示:
Step9 浏览器可视化管理Hadoop集群
在主节点master的浏览器中分别输入192.168.211.133:8088和192.168.211.133:50070,IP地址为主节点虚拟机master的IP地址。如图所示:
如果两个界面都能正常显示节点信息,说明Hadoop的分布式集群环境已经基本安装好了。
Step10 测试Hadoop集群
为了确保集群能够使用,接下来对其进行测试。
1.向hadoop集群提交第一MapReduce任务(wordcount)
在主节点master上,进入hadoop目录(~/local/hadoop-2.6.5),依次执行下列命令:
结果如图所示:
2.向Hadoop提交单词统计任务,命令如下:
查看结果,如图所示:
如果得到和上面类似的结果,就说明Hadoop分布式集群环境搭建成功。
Step11 关闭Hadoop集群
进入~/local/hadoop-2.6.5/sbin目录,命令如下:
常见问题:
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://stackoverflow.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.