如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)

本文基于这篇 https://blog.csdn.net/pucao_cug/article/details/71698903
然后综合其他文章加上自己的理解所完成。纯小白,连命令行都不知道在哪,一步一步配置成功。
我刚开始学的时候常用的几个命令:
cd /…/… 进入某个文件夹目录下
rm -rf name 删除某个文件夹
cp -r xx /…/… 复制某个到哪个文件夹
前期准备:装有虚拟机的电脑,配置有Ubuntu系统(具体就不详细介绍)
一、三个节点的安装
此时你已经准备好了第一个虚拟节点(就是之前配置好的Ubuntu系统),那第二个和第三个虚拟机节点如何准备?最简单的方法,就是复制和粘贴,没错,就是在你刚安装好的第一个虚拟机节点,将整个系统目录进行复制,形成第二和第三个虚拟机节点。后面我们会修改他们的主机名,我配置的命名为sun(namenode,),node1,node2(datanode)
修改主机名的方法:打开虚拟机后,右键打开终端命令行,输入 su root 进入管理员模式(省去很多麻烦),输入你的本机密码
然后 nano /etc/hostname 就可以永久修改你的主机名了如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
这里我使用nano 编辑器,修改好你的主机名字后CTRL+O,保存,然后enter确定,最后CTRL+X退出,就编辑好主机名了,剩下两个Ubuntu系统的主机名也是相同的方法,再次在命令行中输入 hostname 即可查看是否修改成功。

二、下载Hadoop
本文使用的是Hadoop 2.8.0,下载地址http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz

三、安装3个虚拟机后实现ssh免密码登录
3.1配置 /etc/hosts里的文件
如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
使用ifconfig查看当前进入虚拟机的IP,当前的是192.168.109.133
如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
把三个虚拟机的IP全部归纳到 /etc/hosts文件中,使用 nano /etc/hosts,编辑里面的内容,复制粘贴各个主机的IP即可,成功ctrl+o+enter保存,ctrl+x退出,其他的两个虚拟机里也要这样,注释掉最开始的本机地址,之前我多次出错就是因为这里如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
检查3台机器是否互相ping的通,例如 ping -c 3 node1 (都检查一遍)如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
ping得通,说明机器是互联的,而且hosts配置也正确。

3.2 给3台机器生成**文件
以sun这台为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:
ssh-****** -t rsa -P ‘’ 注意最后面有两个单引号,这里建议看:https://blog.csdn.net/pucao_cug/article/details/71698903
这篇文章里的2.4部分,将生成的**文件也是和IP地址一样,每个虚拟机里都要复制3个的**,切换目录的命令是 cd /root/.ssh 查看**的命令是 cat id_rsa.pub
如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
把这些**整合到 /root/.ssh/authorized_keys 中,每一个虚拟机都要有这些操作,在这个/root/.ssh/目录下使用nano authorized_keys 命令编辑即可如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)

3.3 测试使用ssh进行无密码登录
以sun为例,输入 ssh node1 ,如果,没有ssh,按照提示下载。如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
成功之后我们可以看到[email protected],变成了[email protected],命令行输入 exit ,退出又恢复成sun这台机器。在其他机器也进行相同操作,互相测试只不过命令变成了ssh node2和ssh sun,但是一定要注意的是,每次ssh完成后,都要执行exit,否则你的后续命令是在另外一台机器上执行的。

四、安装jdk和hadoop
4.1下载好jdk ,查看这个网址https://blog.csdn.net/pucao_cug/article/details/68948639
每个虚拟机上都要安装Java环境,在widows上传文件到虚拟机上,用VMware Tools创建一个共享文件夹,,具体如下https://jingyan.baidu.com/article/d5c4b52ba4f3a3da570dc579.html

4.2 安装Hadoop
3台机器都要安装,建议看这篇文章的3.2部分https://blog.csdn.net/pucao_cug/article/details/71698903
修改文件先进入他们的文件夹 cd /opt/hadoop/hadoop-2.8.0/etc/hadoop
然后 nano core-site.xml
注意:修改core-site.xml, mapred-site.xml,yarn-site.xml文件时,将里面的 hserver1 (主节点)改成sun,或者是换成IP地址,比如我这台sun就是 192.168.109.130
修改hadoop-env.sh文件时,注意自己的jdk安装路径,如果是按照教程下载好安装包安装的话应该是 JAVA_HOME=/opt/java/jdk1.8.0_121
修改slaves 时,每个虚拟机都最好删除localhost,只留下node1,node2

4.3 固定虚拟机的IP地址,避免互相连接不上
每次关闭VMware后,虚拟机的IP地址就会发生变化(多次教训),所以我们可以把他固定下来,参考。
https://www.cnblogs.com/*zuokan/p/11185775.html

五、启动hadoop
建议还是看这里的4.1部分相结合
https://blog.csdn.net/pucao_cug/article/details/71698903
5.1 在namenode上执行初始化
因为sun是namenode,node1和node2都是datanode,所以只需要对node1进行初始化操作,也就是对hdfs进行格式化。进入到sun这台机器的/opt/hadoop/hadoop-2.8.0/bin目录,也就是执行命令:cd /opt/hadoop/hadoop-2.8.0/bin
执行初始化脚本,也就是执行命令: ./hadoop namenode -format
注意,成功之后一次下次启动虚拟机就不要初始化了,

5.2 在namenode上执行启动命令
只需要在sun这个namenode上启动即可
进入文件夹 cd /opt/hadoop/hadoop-2.8.0/sbin
然后 ./start-all.sh 注意,每次启动玩之后记得关闭,也是在这个文件夹下 ./stop-all.sh
如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)

5.3 测试hadoop
先关闭防火墙,Ubuntu下是 sudo ufw disable命令来关闭防火墙,我们使用sudo ufw status命令查看当前防火墙状态;inactive状态是防火墙关闭状态 active是开启状态。
点开虚拟机的浏览器,我的sunIP地址举例,输入http://192.168.109.133:50070如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
这里livenode显示2个,就是说明启动成功了,然后输入http://192.168.109.133:8088,查看是否这样如何在虚拟机(Ubuntu)上创建Hadoop集群(3个节点)
至此,就安装好了