配置网络环境
1、首先创建一台master虚拟机,配置ip,使其能ping通外网,并且主机能ping通虚拟机,具体配置方法见这里
2、将master虚拟机挂起,复制虚拟机文件夹,粘贴两份,改名为slave1和slave2,用VMware中打开
3、由于两台slave的ip地址和网卡与master一致,会导致ip冲突,因此需要先删除并新建网卡,修改配置文件。以slave1为例,首先删除网卡:
image.png
然后新建网卡
image.png
网络连接为NAT模式:
image.png
用ip a命令查看网络情况,可以看到新网卡的名称为ens37:
image.png
但是ip地址不是我想要的,因此进入network-scripts修改网卡文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
文件配置如下,记得将NAME和DEVICE改为与网卡名一致:
image.png
强迫症可以把文件名也修改过来:
mv ifcfg-ens33 ifcfg-ens37
重启网卡即可让机器之间互相ping通
systemctl restart network
4、每台机器都搭建JAVA环境
配置hadoop环境
1、进入master机器
2、下载hadoop文件,在/usr/local创建文件夹hadoop并将文件解压在该文件夹
3、创建tmp文件夹,hadoop运行任务的过程中会在tmp下生成临时文件
4、进入hadoop/etc/hadoop文件夹,修改core-site.xml文件,设置tmp路径和namenode
<configuration>
<property>
<!-- hadoop启动时会产生很多临时文件,这里配置临时文件的路径 -->
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.6.5/tmp</value>
</property>
<property>
<!-- 配置namenode,也可以用hostname来代替ip -->
<name>fs.defaultFS</name>
<value>hdfs://192.168.118.10:9000</value>
</property>
</configuration>
5、修改slaves文件,指定slave节点名称
slave1
slave2
6、修改mapred-site.xml.template,配置mapreduce的job.tracker
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.118.10:9001</value>
</property>
</configuration>
7、配置hdfs-site.xml,配置数据存储的副本数量
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
8、配置hadoop-env.sh,在文件最后加入JAVA_HOME
export JAVA_HOME=/usr/local/java/jdk8
9、配置yarn-env.sh,加入JAVA_HOME
10、把hadoop文件夹的文件全部复制到另外两台机器上
scp -rp /usr/local/hadoop 192.168.118.11:/usr/local
11、配置主机名,打开/etc/hosts文件,添加:
ip地址0 master
ip地址1 slave1
ip地址2 slave2
配置sysconfig下的network文件,添加
HOSTNAME=master
不同机器对应的hostname不同,配置完以后就可以通过hostname来互相通信
12、关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
13、设置服务器之间免密通信
master中生成ssh密钥
ssh-keygen
cd ~/.ssh
cat id_rsa.pub > authorized_keys //公钥复制过去
在其他机器中生成ssh,然后把id_rsa.pub文件中的内容复制到master的authorized_keys文件中即可
14、启动
bin/hdfs namenode -format
sbin/start-all.sh
查看http://192.168.118.10:50070
image.png
有两个活跃的节点,说明启动成功
网友评论