安装好虚拟机后
修改主机名:hostnamectl set-hostname master
查看自己虚拟机网关IP为多少
修改ip:vim /etc/sysconfig/network-scripts/ifcfg-ens32
其他几台节点的IP配置。
master:192.168.187.100
slave1:192.168.187.101
slave2:192.168.187.102
slave3:192.168.187.103
C:\Windows\System32\drivers\etc\hosts文件添加虚拟主机
192.168.187.100 master
192.168.187.101 slave1
192.168.187.102 slave2
192.168.187.103 slave3
还有设置dns(我就是这个没设置,然后一直只能ping通ip,Ping不同域名)
vim /etc/resolv.conf
![](https://i-blog.csdnimg.cn/blog_migrate/c587fc600f6d3696e9dd5ddd91f8646e.png)
重启网卡:systemctl restart network
注意:在主机下,按win+R键,调出win7运行栏。接着在运行栏中输入services.msc,打开windows服务。如下图所示,找到VMware DHCP Service和VMware NAT Service 确保它们都已启用!!
安装JDK,Hadoop
usr/local下保存的安装文件和安装目录,如图。
安装jdk和解压hadoop
rpm -ivh jdk-8u191-linux-x64.rpm
tar -xvf hadoop-2.7.7-src.tar.gz
安装完成后输入java -version出现相应版本就可以了
java 在/usr/目录下即可看到
进入Hadoop解压目录:/usr/local/hadoop/etc/hadoop
编辑:vim hadoop-env.sh 如下图配置Java环境
然后编辑:vim /etc/profile 将Hadoop执行命令加入到环境变量
保存后执行:source /etc/profile
最后输入:hadoop 出现如下图信息即配置完成。
随后,关闭该电脑,直接拷贝该虚拟机三份作为slave1/2/3
修改主机名、ip、并关闭防火墙
将每个ip用每台虚拟机都ping一下是否ping得通
修改主机文件:vim /etc/hosts
添加
192.168.187.100 master
192.168.187.101 slave1
192.168.187.102 slave2
192.168.187.103 slave3
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
用命令hdfs namenode -format进行格式化
master虚拟机启动namenode:
命令hadoop-daemon.sh start namenode
命令jps查看是否启动
slave虚拟机启动datanode:
命令hadoop-daemon.sh start datanode
命令jps查看是否启动
还可以在master机器上输入:hdfs dfsadmin -report 查看集群状态
也可以在网页端查看集群状态
输入 netstat -ntlp
其中9000端口是master的NameNode与DataNode通信用的。
50070是对外提供的外部端口。
浏览器输入192.168.187.100:50070 进入如下界面
若想要关闭集群节点
hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
修改 /usr/local/hadoop/etc/hadoop/slaves 文件,通过一个命令把整个集群全起来
将localhost注释并添加下面信息并保存。
然后输入:start-dfs.sh启动集群
并输入几次密码,使用jps查看(要是几十台上百台,都要一个一个输密码?下面配置SSH免密)
进入根目录,ls -la查看所有文件包括隐藏文件
然后输入ssh-keygen -t rsa
其中id_rsa是root用户的私钥,id_rsa.pub是公钥。私钥与公钥是对应的,用私钥加的密,对应公钥可以解密。
所以将公钥传入到各slave中去。
在smater机器上输入:ssh-copy-id slave1
可以看到slave1上多出一个文件,slave2/3都没有
此时用master登录slave1已经不需要密码,根据这个操作将slave2/3都设置好。
最后拷贝一份给master自己:ssh-copy-id master
master输入stop-dfs.sh关闭整个集群
集群全部关闭
然后再开启集群
一次全部启动好了!!
最后因为hdfs系统会把用到的数据存储在core-site.xml中由hadoop.tmp.dir指定,而这个值默认位于/tmp/hadoop-${user.name}下面,由于/tmp目录在系统重启时候会被删除,所以应该修改目录位置。修改core-site.xml(在所有站点上都要修改)
hadoop.tmp.dir
/var/hadoop
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop</value>
</property>
保存之后,并对namenode进行格式化(hdfs namenode -format),重启集群即可。