文章目录
1. 安装前准备
① 虚拟机配置
可参考基于CentOS7虚拟机搭建Hadoop单机模式
在上一篇的基础上继续后续步骤
新增软件:
- Xshell6
⑤克隆虚拟机
关闭虚拟机wx,然后克隆2台虚拟机作为从机。
[hadoop@wx ~]$ sudo poweroff
⑥ 对每个主机固定IP地址,修改主机名,做主机映射
修改每台主机的IP地址为静态IP(三台虚拟机的IP分别改为131 132 133)
[hadoop@wx ~]$ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens32
# 修改:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.183.131
NETMASK=255.255.255.0
GATEWAY=192.168.183.2
DNS1=62.128.128.68
DNS2=8.8.8.8
打开Xshell,远程连接三台主机,后续操作就都在Xshell中完成了
分别修改三台主机的主机名并添加主机映射(每一台主机都要做)
# 修改主机名(每台虚拟机上分别修改为wx1 wx2 wx3)
[hadoop@wx ~]$ hostnamectl set-hostname wx1
# 或者:
[hadoop@wx ~]$ sudo vi /etc/hostname
# 修改第一行的内容
wx1
# 主机映射
[hadoop@wx1 ~]$ sudo vi /etc/hosts
# 添加(三台都要添加)
192.168.183.131 wx1
192.168.183.132 wx2
192.168.183.133 wx3
⑦ 免密登录设置
保证任意一台主机都能连接上其他主机。
在Xshell的撰写栏中输入:
# 生成密钥对
[hadoop@wx1 ~]$ ssh-keygen -t rsa
#分发公钥
[hadoop@wx1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub wx1
[hadoop@wx1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub wx2
[hadoop@wx1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub wx3
# 验证登录
[hadoop@wx1 ~]$ ssh wx1
[hadoop@wx1 ~]$ ssh wx2
[hadoop@wx1 ~]$ ssh wx3
2. 搭建Hadoop完全分布模式
① 修改Hadoop配置文件
修改hadoop-env.sh 配置文件
[hadoop@wx1 hadoop]$ sudo vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
# 修改的内容:
# 快速定位: 编辑模式下输入 /JAVA_HOME
# The java implementation to use.
export JAVA_HOME=/home/hadoop/jdk
修改 core-site.xml 配置文件
[hadoop@wx1 hadoop]$ sudo vi $HADOOP_HOME/etc/hadoop/core-site.xml
# 修改的内容:
<configuration>
<property>
<!-- 注释:网页访问hdfs的接口-->
<name>fs.defaultFS</name>
<value>hdfs://wx1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
修改 hdfs-site.xml 配置文件
[hadoop@wx1 hadoop]$ sudo vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
# 修改的内容:
<configuration>
<property>
<!--注释:设置节点数,默认值为3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</confiouration>
修改 mapred-site.xml 配置文件
# 先重命名文件
[hadoop@wx1 hadoop]$ sudo cp ./mapred-site.xml.template ./mapred-site.xml
[hadoop@wx1 hadoop]$ sudo vi ./mapred--site.xml
# 修改的内容:
<configuration>
<property>
<!--注释:mapreduce运行在yarn框架上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</confiouration>
修改 yarn-site.xml 配置文件
[hadoop@wx1 hadoop]$ sudo vi ./yarn--site.xml
# 修改的内容:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>wx1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</confiouration>
修改 slaves配置文件
[hadoop@wx1 hadoop]$ sudo vi ./slaves
# 添加内容:
wx2
wx3
③ 分发给其他节点
[hadoop@wx1 ~]$ scp -r /home/hadoop/hadoop hadoop@wx2:/home/hadoop
[hadoop@wx1 ~]$ scp -r /home/hadoop/hadoop hadoop@wx3:/home/hadoop
[hadoop@wx1 ~]$ scp -r /home/hadoop/jdk hadoop@wx2:/home/hadoop
[hadoop@wx1 ~]$ scp -r /home/hadoop/jdk hadoop@wx3:/home/hadoop
④ 在主节点wx1上格式化hdfs并启动hdfs和yarn:
[hadoop@wx1 ~]$ hdfs namenode -format
[hadoop@wx1 ~]$ start-all.sh
⑤分别在三个节点(虚拟机)上验证Hadoop进程,在撰写栏中输入:
[hadoop@wx1 ~]$ jps
主节点wx1上看到的进程包括:
jps
NameNode
SecondaryNameNode
ResourceManager
从节点wx2和wx3上看到的进程包括:
jps
DataNode
NodeManager
⑥通过web访问Hadoop:
需要把IP地址修改为自己主节点的IP
http://192.168.183.131:50070
http://192.168.183.131:50090
http://192.168.183.131:8088
⑦完成后停止Hadoop进程:
[hadoop@wx1 ~]$ stop-all.sh