虚拟机搭建完全分布式
文章目录
1. 主节点配置
1.1 安装系统环境
- linux系统:【CentOS_6.8_64】
1.2 设置静态IP
1.2.1 查看子网IP【VMWare15】
-
【编辑】–>【虚拟网络编辑器】–>
NET:(VMnet8)中:
子网号码(192.168.204.0)【192.168.204 是将要加入的网段】
子网掩码(255.255.255.0)
1.2.2 查看MAC地址是否与eth0匹配
【对比ifconfig中的MAC地址与/etc/udev/rules.d/70-persistent-net.rules中的MAC地址】
[hadoop@localhost ~]$
ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A9:54:0E
inet6 addr: fe80::20c:29ff:fea9:540e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:329 errors:0 dropped:0 overruns:0 frame:0
TX packets:348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21327 (20.8 KiB) TX bytes:66744 (65.1 KiB)lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9328 (9.1 KiB) TX bytes:9328 (9.1 KiB)[hadoop@localhost ~]$
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a9:54:0e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
1.2.3 root用户下修改【/etc/sysconfig/network-scripts/ifcfg-eth0】
[hadoop@localhost rules.d]$
cd /etc/sysconfig/network-scripts/
[hadoop@localhost network-scripts]$vim ifcfg-eth0
修改:
BOOTPROTO=“static”
追加:
IPADDR=“192.168.204.100”【ip地址,前三位是虚拟网络编辑器中查看到的网段值,第四位任意】
NETMASK=“255.255.255.0”【子网掩码,虚拟网络编辑器中查找到的值】
NETWORK=“192.168.204.0”【子网号,就是虚拟网络编辑器中的子网号】
GATEWAY=“192.168.204.2”【网关,前三位参看虚拟网络编辑器,第四位任意,但不能和ip以及之后要配置的windows虚拟网卡VMnet8中的ip相同】
DNS1=“192.168.204.2”【首选DNS服务器,如果是使用本地的DNS,必须和网关ip一致,如果使用公有的DNS(例如:8.8.8.8是谷歌的,114.114.114.114是南京信风的)】
- ifcfg-eth0文件修改如下:
DEVICE=“eth0”
BOOTPROTO=“static”
HWADDR=“00:0C:29:A9:54:0E”
IPV6INIT=“yes”
NM_CONTROLLED=“yes”
ONBOOT=“yes”
TYPE=“Ethernet”
UUID=“ba80fe09-30f1-408d-bc94-3f3b1b0b8947”IPADDR=“192.168.204.100”
NETMASK=“255.255.255.0”
NETWORK=“192.168.204.0”
GATEWAY=“192.168.204.2”
DNS1=“192.168.204.2”
1.2.4 重启网络服务
[root@localhost network-scripts]#
service network restart
1.2.5 设置windows主机中的虚拟网卡VMnet8
【控制面板】–>【网络和Internet】–>【网络连接】–>
【右键VMnet8】–>【选择IPv4】–>【属性】
使用下面的IP地址(DNS服务器地址)
IP地址: 192.168.204.1 【默认设置为1】
子网掩码: 255.255.255.0 【虚拟网络编辑器中的子网掩码】
默认网关: 192.168.204.2 【末位与IP地址不同即可,但设置的所有网关必须一致】
首选DNS服务器:192.168.204.2 【本地的必须使用网关地址】
1.2.6 在windows上ping 192.168.204.100
1.2.7 在linux中ping 192.168.204.1,而不是物理机的IP地址
1.2.8 步骤6、7都ping通,且linux可以ping通外网(如:www.baidu.com)则完成静态IP设置
1.2.9 注意事项:
- 物理机的虚拟网卡VMnet8中的IP末位可以任意设置,网关的末位也可以任意设置,但是两者不可以相同。
- linux中的IP末位也可以任意设置,但是不可以与物理机虚拟网卡VMnet8以及网关的地址相同。
- 子网掩码一般都是255.255.255.0,也有其他情况,具体就看虚拟网络编辑器中的,或者在虚拟网络编辑器中自定义。
- 子网网段参看虚拟网络编辑器,也可以在虚拟网络编辑器中修改成自己想要的网段,都是虚拟的没什么不可以。但是,设定以后,所有相关的IP、网关、DNS前三位都要与其一致。
- DNS服务器使用本地的,必须使用网关地址。使用在线的可以有(114.114.114.114是南京信风的)
1.3 修改机器名
1.3.1 进入系统后的默认机器名都是localhost
[用户名@机器名 路径信息] $
【用户名,是通过Terminal登录的用户名】
【机器名,可以理解为IP映射地址】
【用户名,是通过Terminal登录的用户名】
【GUI登录名,是通过图形界面登录的用户名,实际上没有用到的时候】
1.3.2 root下修改【/etc/sysconfig/network】文件
-
【[root@localhost etc]#
vim /etc/sysconfig/network
】 -
将HOSTNAME属性localhost.localdomain修改为【master】
1.3.3 重启系统
[root@localhost etc]# reboot
1.4 在hosts文件添加各节点IP地址和别名(主机名)
1.4.1 root下修改【/etc/hosts】文件
-
【[root@localhost etc]# vim /etc/hosts】
-
在文件末尾追加:
192.168.204.100 master
192.168.204.101 slave01
192.168.204.102 slave02
192.168.204.103 slave03
【该IP地址需先设定静态IP,否则设置会随动态IP失效】
【用master指向IP地址:192.168.204.100】
1.4.2 修改windows中的【C:\Windows\System32\drivers\etc\hosts】文件
【如果没有,手动创建。如果有,同步骤2】
1.4.3 测试
【命令行下输入>ping master】
1.5 关闭防火墙
1.5.1 查看防火墙状态
[root@master etc]# service iptables status
[root@master etc]# chkconfig iptables --list
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@master etc]#
1.5.2 关闭防火墙【root用户下】
[root@master etc]# service iptables stop
【关闭防火墙】
[root@master etc]# chkconfig iptables off
【关闭开机启动防火墙】
[root@master etc]# chkconfig iptables --list
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@master etc]#
1.6 设置ssh无密登录
[hadoop@master ~]$
ssh localhost
hadoop@localhost’s password: 【输入密码】
1.6.1 生成密钥
[hadoop@master ~]$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
[hadoop@master hadoop]$
ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):【这里直接回车,问你是否保存在默认的位置】
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
2a:ef:8b:3b:9d:8c:ee:28:0d:9d:a1:f9:d3:32:be:1c hadoop@master
The key’s randomart image is:
±-[ RSA 2048]----+
| |
| |
| |
| . |
| + o S |
|+ o . |
| +E…+… |
|…*o+++ |
| o=B=++. |
±----------------+
【ssh-keygen】生成密钥
【-t rsa】加密方式是rsa
【-P ‘’】密码为空
【-f ~/.ssh/id_rsa】在该地址下创建id_rsa文件【不配也是默认该地址】
[hadoop@master ~]$
cd ~/.ssh
[hadoop@master .ssh]$ls -l
总用量 20
-rw-------. 1 hadoop hadoop 1675 7月 29 13:44 id_rsa
-rw-r–r--. 1 hadoop hadoop 395 7月 29 13:44 id_rsa.pub
-rw-r–r--. 1 hadoop hadoop 391 7月 29 13:36 known_hosts
1.6.2 生成公钥库
[hadoop@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
1.6.3 修改公钥库权限
[hadoop@master .ssh]$ chmod 0600 ~/.ssh/authorized_keys
【必须修改,否则系统将无法识别该文件的权限,该文件就失效了】
【拷贝到其他节点上时,也必须检查该权限是否为600】
1.6.4 测试ssh登录
[hadoop@master .ssh]$ ssh master
The authenticity of host ‘master (192.168.204.110)’ can’t be established.
RSA key fingerprint is 15:10:37:43:13:e5:a6:a5:90:0e:89:fb:27:f9:3b:98.
Are you sure you want to continue connecting (yes/no)? yes
【首次ssh到某个节点,会校验一次,以后不会再出现】
Warning: Permanently added ‘master,192.168.204.110’ (RSA) to the list of known hosts.
[hadoop@master ~]$
[hadoop@master ~]$ ssh master
Last login: Mon Jul 29 13:56:06 2019 from master
【master | localhost】一个意思,都是代表IP地址
1.7 安装JDK
1.7.1 解压JDK
-
在自建用户【hadoop】家目录下创建【soft】目录
-
【将JDK安装包拷贝到/home/hadoop/soft目录下】
-
使用命令解压JDK
- [hadoop@master soft]$
tar zxvf jdk-8u121-linux-x64.tar.gz
- [hadoop@master soft]$
1.7.2 创建jdk软链接
- [hadoop@master soft]$
ln -s jdk1.8.0_121/ jdk
1.7.3 设置JDK环境变量
-
修改【~/.bash_profile】文件,追加如下:
-
【[hadoop@master soft]$
vim ~/.bash_profile
】 -
export JAVA_HOME="/home/hadoop/soft/jdk"
export PATH=$JAVA_HOME/bin:$PATH
-
[hadoop@master soft]$
source ~/.bash_profile
【环境变量配置立即生效】
-
测试配置是否成功
echo $JAVA_HOME
【出现路径则成功】
[hadoop@master soft]$echo $JAVA_HOME
/home/hadoop/soft/jdk在任意路径下,输入jp
然后按下超过2次tab键
出现jsp命令,则配置成功
[hadoop@master soft]$ jp
jpegtran jps
1.8 安装Hadoop
1.8.1 解压Hadoop
-
【将Hadoop安装包拷贝到/home/hadoop/soft目录下】
-
使用命令解压Hadoop
-
[hadoop@master soft]$
tar zxvf hadoop-2.7.3.tar.gz
-
1.8.2 创建软链接
-
[hadoop@master soft]$
rm hadoop-2.7.3.tar.gz
1.8.3 配置Hadoop环境变量
-
修改【~/.bash_profile】文件,追加如下:
-
【[hadoop@master soft]$
vim ~/.bash_profile
】 -
export HADOOP_HOME="/home/hadoop/soft/hadoop"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
-
[hadoop@master soft]$
source ~/.bash_profile
【环境变量配置立即生效】
-
测试配置是否成功
echo $HADOOP_HOME
【出现路径则成功】
[hadoop@master soft]$echo $JAVA_HOME
/home/hadoop/soft/hadoop在任意路径下,输入start
然后按下超过2次tab键
出现start-dfs.sh命令,则配置成功
[hadoop@master soft]$
start
start start-dfs.cmd start_udev
start-all.cmd start-dfs.sh startx
start-all.sh start-pulseaudio-x11 start-yarn.cmd
start-balancer.sh start-secure-dns.sh start-yarn.sh
1.8.4 修改Hadoop基础配置文件
1.8.4.1 修改【$HADOOP_HOME/ect/hadoop】文件夹下的core-site.xml
-
也就是:/home/hadoop/soft/hadoop-2.7.3/etc/hadoop目录下的core-site.xml文件
[hadoop@master hadoop]$vim core-site.xml
-
【在中添加如下:】
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp/hadoop-${user.name}</value> </property> </configuration>
【用于存储的文件系统设置,用URI实现,主机名,端口号】
-
1.8.4.2 修改【$HADOOP_HOME/etc/hadoop】文件夹下的hdfs-site.xml
-
也就是:/home/hadoop/soft/hadoop-2.7.3/etc/hadoop目录下的hdfs-site.xml文件
[hadoop@master hadoop]$vim core-site.xml
-
【在中添加如下:】
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.blocksize</name> <value>128M</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name, /backup-disk/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data</value> </property> </configuration>```
-
1.8.4.3 修改【$HADOOP_HOME/etc/hadoop】文件夹下的yarn-site.xml
-
也就是:/home/hadoop/soft/hadoop-2.7.3/etc/hadoop目录下的yarn-site.xml文件
[hadoop@master hadoop]$vim yarn-site.xml
-
【在中添加如下:】
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
-
1.8.4.4 修改【$HADOOP_HOME/etc/hadoop】文件夹下的mapred-site.xml
-
拷贝mapred-site.xml.template一份为mapred-site.xml
也就是:/home/hadoop/soft/hadoop-2.7.3/etc/hadoop目录下的mapred-site.xml文件
[hadoop@master hadoop]$vim mapred-site.xml
-
【在中添加如下:】
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
1.8.4.5 修改【$HADOOP_HOME/etc/hadoop】文件夹下的slaves
-
也就是:/home/hadoop/soft/hadoop-2.7.3/etc/hadoop目录下的slaves文件
[hadoop@master hadoop]$vim slaves
-
方式一、【用如下数据覆盖,只设置3个数据从节点】
slave01
slave02
slave03方式二、【追加以上数据,会将master节点也设置为数据节点】
localhost
slave01
slave02
slave03
-
1.8.4.6 修改hadoop配置JAVA_HOME路径
$>cd $HADOOP_HOME/etc/hadoop
$>vim hadoop-env.sh
export JAVA_HOME=/home/hadoop/soft/jdk【修改为绝对路径】
【因为在设置HADOOP_HOME时,将HADOOP_HOME放在了JAVA_HOME之前,因此无法识别JAVA_HOME的配置,所以要固定指定JAVA_HOME的路径】
1.9 克隆3个虚拟机
2. 从节点配置
2.1 修改所有从节点的静态IP
2.1.1 【克隆的机器,网卡都会有2个,root下在/etc/udev/rules.d/70-persistent-net.rules删除eth0网卡】
2.1.2 【将eth1网卡,改为eth0,拷贝MAC地址】
2.1.3 【在/etc/sysconfig/network-scripts/ifcfg-eth0文件中,覆盖原MAC地址】
2.1.4 【修改IPADDR:为当前节点的IP】
2.2 修改主机名
2.2.1 修改所有slave/etc/sysconfig/network
将【master】修改为对应的slave01、slave02、slave03
2.3 重启所有系统
2.3 格式化文件系统
2.3.1【目的:创建fsimage镜像文件】
[hadoop@master ~]$ hdfs namenode -format
2.3.2 开启hadoop的HDFS【start-dfs.sh】
【但是在实际使用中少用此方式,因为无法关闭一部分功能,要是全部关闭则又是HDFS系统所不允许的,全关闭的话,整个系统就关了,那就无法进行有效管理】
[hadoop@master hadoop]$
start-dfs.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/soft/hadoop-2.7.3/logs/hadoop-hadoop-namenode-master.out
localhost: starting datanode, logging to /home/hadoop/soft/hadoop-2.7.3/logs/hadoop-hadoop-datanode-master.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host ‘0.0.0.0 (0.0.0.0)’ can’t be established.
RSA key fingerprint is 72:96:2e:5f:bd:ea:b4:7b:27:c1:43:99:a0:6a:01:1b.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added ‘0.0.0.0’ (RSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/soft/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-master.out
[hadoop@master hadoop]$
2.3.3 检验【[hadoop@master hadoop]$ jsp】
[hadoop@master hadoop]$
jps
9106 NameNode
9493 Jps
9384 SecondaryNameNode
[hadoop@master hadoop]$
[hadoop@slaver01 hadoop]$
jps
9200 DataNode
[hadoop@slaver01 hadoop]$
2.3.4 测试连接
打开浏览器:http://master:50070
fingerprint is 72:96:2e:5f:bd:ea:b4:7b:27:c1:43:99:a0:6a:01:1b.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added ‘0.0.0.0’ (RSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/soft/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-master.out
[hadoop@master hadoop]$
2.3.3 检验【[hadoop@master hadoop]$ jsp】
[hadoop@master hadoop]$
jps
9106 NameNode
9493 Jps
9384 SecondaryNameNode
[hadoop@master hadoop]$
[hadoop@slaver01 hadoop]$
jps
9200 DataNode
[hadoop@slaver01 hadoop]$