【使用/软件/版本】
VMware Workstation Pro 17、MobaXterm(SSH客户端软件)、Centos 9体系
Hadoop版本为3.3.0、JDK版本为jdk-8u241
【Hadoop完全分布式部署具体步骤】
推荐全程使用SSH客户端,原生无可视化的Linux无法粘贴,而这次许多内容都必要粘贴
一、前置环境设置
1.创建并配置主节点虚拟机(该虚拟机已提前配置好静态IP)
“不会安装虚拟机或者配静态IP,在CSDN上有许多可以搜到,或者过几天我自己总结一个在这套个链接”
(1)先创建一台虚拟机hadoop1(名字按自己像设置的来),在虚拟机Hadoop1的根目录下创建以下目录作为约定。
- 创建存放数据的目录:mkdir -p /export/data/
- 创建存放安装程序的目录:mkdir -p /export/servers/
- 创建存放安装包的目录:mkdir -p /export/software/
复制代码 (2)在虚拟机Hadoop1的/export/software目录上传JDK和Hadoop安装包并进行安装(红字按自己上传的安装包版本来写)。
- tar -zxvf /export/software/jdk-8u241-linux-x64.tar.gz -C /export/servers/
- tar -zxvf /export/software/hadoop-3.3.0.tar.gz -C /export/servers
复制代码 (3)在虚拟机Hadoop1执行“vi /etc/profile”命令编辑环境变量文件profile,在该文件的底部添加配置JDK体系环境变量的内容(留意看好自己的安装的文件名字(版本号))。
- export JAVA_HOME=/export/servers/jdk1.8.0_241
- export PATH=$PATH:$JAVA_HOME/bin
- export HADOOP_HOME=/export/servers/hadoop-3.3.0
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
复制代码
(4)退出生存后初始化体系环境变量执行“source /etc/profile”
(5)修改hosts文件方便后续进行集群之间的映射,留意生存退出。
在虚拟机Hadoop1执行“vi /etc/hosts”命令编辑映射文件hosts,在配置文件中添加如下内容(根据自己三台的虚拟机的IP和用户名)。
- 192.168.121.161 hadoop1
- 192.168.121.162 hadoop2
- 192.168.121.163 hadoop3
复制代码
2.创建并配置两台虚拟机来做副节点
(1)在Hadoop1的基础上克隆两台虚拟机(完全克隆)
(2)修改主机名,修改两台台主机名称为 “hadoop2/hadoop3”
修改主机名称
- vi /etc/hostname
- 或者
- hostnamectl set-hostname hadoop2(根据自己虚拟机用户名进行修改)
复制代码 更改后可用
查看自己的用户名是否修改成功
(3)编辑虚拟机Hadoop2和3的网络配置文件ens33.nmconnection。
在两台虚拟机中分别执行下列命令
- vi /etc/NetworkManager/system-connections/ens33.nmconnection
复制代码 分别修改address1后的IP为192.168.121.162和192.168.121.163(根据自己情况进行修改)
(4)修改虚拟机Hadoop2和Hadoop3的uuid,uuid的作用是使分布式体系中的所有元素都有唯一的标识码。
- sed -i '/uuid=/c\uuid='`uuidgen`'' \ /etc/NetworkManager/system-connections/ens33.nmconnection
复制代码 (5)重启ens33网卡和重新加载网络配置文件
在虚拟机Hadoop2和3中执行“
”命令重新加载网络配置文件,以及执行“
”命令重启ens33网卡,使修改后的网络配置文件生效。
(6)通过执行“ip addr”命令查看虚拟机Hadoop2和3的网络信息,验证网络配置文件是否修改成功。
3. 虚拟机免密登录设置
在集群环境中,主节点必要频繁的访问从节点,以获取从节点的运行状态,主节点每次访问从节点时都必要通过输入暗码的方式进行验证,确定暗码输入正确后才建立毗连,这会对集群运行的连续性造成不良影响,为主节点配置SSH免密登录功能,可以有效避免访问从节点时频繁输入暗码。接下来,虚拟机Hadoop1作为集群环境的主节点实现SSH免密登录。
(1)在虚拟机Hadoop1中执行“ssh-keygen -t rsa”命令,生成密钥。
(执行命令生成密钥,并根据提示连续按四次Enter确认,有一次必要输入y)
(2)在虚拟机Hadoop1中执行“cd /root/.ssh/”命令进入存储密钥文件的目录,在该目录下执行“ll”命令查看密钥文件。
(3)将虚拟机Hadoop1生成的公钥文件复制到集群中相关联的所有虚拟机,实现通过虚拟机Hadoop1可以免密登录虚拟机Hadoop1、Hadoop2和Hadoop3
依次输入下列命令:
- ssh-copy-id hadoop1
- ssh-copy-id hadoop2
- ssh-copy-id hadoop3
复制代码
(4)在虚拟机Hadoop1中执行“ssh hadoop2”命令访问虚拟机Hadoop2,验证虚拟机Hadoop1是否可以免密登录虚拟机Hadoop2。(执行exit可退出Hadoop2的毗连)
二、基于完全分布式模式部署Hadoop
1. 修改Hadoop配置文件
(1)hadoop-env.sh
在虚拟机Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录,
执行“vi hadoop-env.sh”命令,在hadoop-env.sh文件的底部添加如下内容。
- export JAVA_HOME=/export/servers/jdk1.8.0_241
- export HDFS_NAMENODE_USER=root
- export HDFS_DATANODE_USER=root
- export HDFS_SECONDARYNAMENODE_USER=root
- export YARN_RESOURCEMANAGER_USER=root
- export YARN_NODEMANAGER_USER=root
复制代码
(2)core-site.xml
在虚拟机Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录,
执行“vi core-site.xml”命令添加如下内容。
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://hadoop1:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/export/data/hadoop-3.3.0</value>
- </property> <property>
- <name>hadoop.http.staticuser.user</name>
- <value>root</value>
- </property>
- <property>
- <name>hadoop.proxyuser.root.hosts</name>
- <value>*</value>
- </property>
- <property>
- <name>hadoop.proxyuser.root.groups</name>
- <value>*</value>
- </property>
- <property>
- <name>fs.trash.interval</name>
- <value>1440</value>
- </property>
复制代码
(3)hdfs-site.xml
在虚拟机Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录,
执行“vi hdfs-site.xml”命令添加如下内容。
- <property>
- <name>dfs.replication</name>
- <value>2</value>
- </property>
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>hadoop2:9868</value>
- </property>
复制代码
(4)mapred-site.xml
在虚拟机Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录,
执行“vi mapred-site.xml”命令添加如下内容。
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>hadoop1:10020</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.Webapp.address</name>
- <value>hadoop1:19888</value>
- </property>
- <property>
- <name>yarn.app.mapreduce.am.env</name>
- <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
- </property>
- <property>
- <name>mapreduce.map.env</name>
- <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
- </property>
- <property>
- <name>mapreduce.reduce.env</name>
- <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
- </property>
复制代码
(5)yarn-site.xml
在虚拟机Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录,
执行“vi yarn-site.xml”命令添加如下内容。
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>hadoop1</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.nodemanager.pmem-check-enabled</name>
- <value>false</value>
- </property>
- <property>
- <name>yarn.nodemanager.vmem-check-enabled</name>
- <value>false</value>
- </property>
- <property>
- <name>yarn.log-aggregation-enable</name>
- <value>true</value>
- </property>
- <property>
- <name>yarn.log.server.url</name>
- <value>http://hadoop1:19888/jobhistory/logs</value>
- </property>
- <property>
- <name>yarn.log-aggregation.retain-seconds</name>
- <value>604800</value>
- </property>
复制代码
(6)配置Hadoop从节点服务器
在虚拟机Hadoop1的/export/servers/hadoop-3.3.0/etc/hadoop/目录,
执行“vi workers”命令,将workers文件默认的内容修改为如下内容。
2. 分发Hadoop安装目录及体系环境变量文件
(1)使用scp命令将虚拟机Hadoop1的Hadoop安装目录分发至虚拟机Hadoop2和Hadoop3中存放安装步伐的目录。
向虚拟机Hadoop2中分发存放安装步伐的目录
- scp -r /export/servers/hadoop-3.3.0 root@hadoop2:/export/servers/
复制代码 向虚拟机Hadoop3中分发存放安装步伐的目录
- scp -r /export/servers/hadoop-3.3.0 root@hadoop3:/export/servers/
复制代码 (2)使用scp命令将虚拟机Hadoop1的体系环境变量文件profile分发至虚拟机Hadoop2和Hadoop3的/etc目录。
向虚拟机Hadoop2中分发/etc目录
- scp /etc/profile root@hadoop2:/etc
复制代码 向虚拟机Hadoop3中分发/etc目录
- scp /etc/profile root@hadoop3:/etc
复制代码 (3)执行“
”命令初始化体系环境变量
(4)格式化HDFS文件体系
在虚拟机Hadoop1执行“
”命令,对基于完全分布式模式部署的Hadoop进行格式化HDFS文件体系的操纵。
留意:格式化HDFS文件体系的操纵只在初次启动Hadoop集群之进步行。
3. 启动Hadoop
在虚拟机Hadoop1中执行命令启动Hadoop。
- 启动HDFS:start-dfs.sh
- 启动YARN:start-yarn.sh
- 或
- start-all.sh
复制代码
4. 查看Hadoop运行状态
分别在虚拟机Hadoop1、Hadoop2和Hadoop3执行“jps”命令查看Hadoop运行状态。
三、通过Web UI查看Hadoop运行状态
(1)关闭3台虚拟机的防火墙
关闭虚拟机Hadoop1、Hadoop2和Hadoop3的防火墙,分别在3台虚拟机中运行如下命令关闭防火墙并克制防火墙开启启动。
关闭防火墙
克制防火墙开机启动
(2)① 在本地计算机的欣赏器输入http://hadoop1:9870查看HDFS的运行状态。
② 在本地计算机的欣赏器输入http://hadoop1:8088查看YARN的运行状态
【见问题及解决】
问题:
---遇到问题可以在批评区提出,如果比较范例我会补充在下面---
- 因多次对Hadoop进行初始化大概会出现一系列问题,导致Hadoop集群启动失败。
解决方法:
- 删除/export/data/hadoop-3.3.0/目录下的文件,然后仔细查抄必要修改的Hadoop文件,然后重新格式化
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |