已经有VMware,已安装Centos7,可以直接跳转到Hadoop集群搭建
本教程更适合第一次安装,不了解Linux和hadoop的同学
写的非常详细,有8k字,希望同学们帮忙点点赞
一、安装VMware
虚拟机(VMware)下载地址:
VMware官网
网盘链接:
链接: https://pan.baidu.com/s/1Yx6822Y_ULXch0G1Ocl_iw?pwd=achf
提取码: achf
这里更改一下安装位置
两个不选
许可证用网上的就行,搜VMware许可证
二、搭建CentOS7系统
这是VMware安装好后的界面
2.1配置CentOS7基本项
点击创建新的虚拟机
下面跟着点
使用centos7映像文件
网盘链接:
链接: https://pan.baidu.com/s/1Yx6822Y_ULXch0G1Ocl_iw?pwd=achf
提取码: achf
这里改一下虚拟机的位置
处理器、内存、磁盘根据自己的需求定就行了,一般磁盘容量不低于40G
这里选择使用网络地址转换(NAT)
下面的直接点下一步就行了
磁盘改一下
点击完成
2.2安装CentOS7系统
前面成功后是下面的界面,回车继续,Ctrl+左ALT可以切换鼠标到Windows系统中
等待安装完成
在最下方选择中文
这两个需要改一下
安装位置进去后直接点完成
网络和主机名进去后跟着我的改
点击开始安装
这里我设置的密码为123456
点击完成,等待系统安装完毕,点击重启
这里用户名是root,密码是我们改成设置的密码(123456)
如果设置的数字密码输入后不正确,注意虚拟机键盘的数字Numlock是否开启,在最右边的数字盘上面有个Num按钮或者是Numlock按钮,需要开启后才能输入右边数字键盘的数字
登录成功后,右键虚拟机->电源->关机
出来后我们接下来开始设置网络
2.3网络配置
最上面点击编辑->虚拟网络编辑器,点击更改设置
选择VMnet8
将子网IP设置为192.168.10.0
点击Net设置
网关IP设置为192.168.10.2
点击应用
我们在本机上点击设置
点击网络和Internet->高级网络设置
找到VMnet8点击编辑
在Internet协议版本4前打勾✔
点击属性
按照我的来设置
我们接下来开启虚拟机,输入账号密码后,修改网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
按i进入修改模式,ESC进入命令行模式
进入后修改BOOTPROTO=dhcp为BOOTPROTO=static
修改ONBOOT=no为ONBOOT=yes
在最后添加
IPADDR=192.168.10.102
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=8.8.8.8
DNS2=4.4.4.4
最终
退出修改(先点键盘ESC,然后输入:wq)
重启输入
reboot
重启后输入
ip a
出现192.168.10.102表示配置成功
我们尝试一下ping百度能不能ping通
ping baidu.com
出现以下提示则ping通
再试试本机能否ping通虚拟机
打开本机命令提示符,(在自己电脑上点键盘win+R,输入cmd则进入命令提示符)
输入
ping 192.168.10.102
出现以下提示则配置成功
在虚拟机上配置hosts文件
vi /etc/hosts
在最下面添加
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
最终结果,ESC进入命令行:wq保存退出
三、Xshell连接虚拟机
下载地址:家庭/学校免费 - NetSarang Website (xshell.com) 这个是免费版下载
两个都下载
点击新建
按照下面来进行配置,点击连接
后面用户名密码就是我们虚拟机的用户名和密码,记得保存用户名和密码
这样xshell就成功连接虚拟机了
四、Hadoop分布式集群搭建
4.1将必要文件导入至虚拟机中
这时候就要用到我们刚才下载的xftp
创建安装包文件夹与应用文件夹(software我们用来存安装包,module用来存软件应用)
mkdir -p /opt/software
mkdir -p /opt/module
在xshell中点击xftp
必要文件包括
jdk-8u221-linux-x64.tar.gz
hadoop-3.1.3.tar.gz
官网下得太慢了,镜像网站也没有历史的版本,这里推荐网盘链接
网盘链接:
链接: https://pan.baidu.com/s/1Yx6822Y_ULXch0G1Ocl_iw?pwd=achf
提取码: achf
把右边的路径修改一下,再在左边找到下载路径拖过来就行了
传输完毕后,关闭xftp,进入software文件夹中
cd /opt/software
ll
ll 查看当前目录中文件是否有jdk和hadoop
4.2 JDK1.8安装
1.卸载系统自带的JDK
rpm -qa | grep java
如果没有任何输出则不需要卸载,如果有java-*-openjdk-*这样的需要一个一个进行删除
删除:
rpm -e --nodeps 包名
解压JDK到/usr/local目录中
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/
2.添加java环境变量
vi /etc/profile
按i进行修改
在最后添加
# JAVA_HOME
export JAVA_HOME=/usr/local/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin
按ESC键,:wq保存退出
刷新环境变量
source /etc/profile
查看java版本
java -version
4.3克隆虚拟机
1.克隆
我们先关闭虚拟机
右键虚拟机->管理->克隆
在克隆虚拟机向导里面
创建完整克隆
修改虚拟机目录
创建两台克隆,第二次跟上面步骤一样
修改虚拟机名称
右键虚拟机->重命名
最终是有三台虚拟机
2.修改网络配置文件
我们全部开启,修改hadoop103和hadoop104的网络配置文件
hadoop103和104用户名密码都是hadoop102的用户名密码
vi /etc/sysconfig/network-scripts/ifcfg-ens33
hadoop103上IPADDR修改为192.168.10.103
hadoop104上IPADDR修改为192.168.10.104
3.修改主机名
修改hadoop103和104的hostname文件
hadoop103修改为hadoop103 hadoop104修改为hadoop104
vi /etc/hostname
hadoop103和104重启
4.在Xshell中添加虚拟机
记得改机器名和ip地址,添加两台(hadoop103和104)
点击连接即可,记得保存用户名和密码
5.禁用防火墙
每台机器上执行
systemctl stop firewalld
systemctl disable firewalld
4.4 SSH配置
生产ssh密钥
ssh-keygen -t rsa
敲三次回车
每一台都需要产生密钥,敲三次回车
将密钥拷贝到每一台机器上
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
按照顺序输入yes和密码
每一台都需要执行
尝试是否能相互连接
ssh hadoop103
不需要输入密码则配置成功
记得exit退出,机器别配错了
4.5 Hadoop分布式集群搭建
1.解压hadoop文件
进入software目录中
cd /opt/software
解压hadoop压缩文件
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
2.配置hadoop环境变量
vi /etc/profile
在最下面添加
# HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存退出
更新/etc/profile
source /etc/profile
查看hadoop环境变量是否配置成功
hadoop version
将配置文件传输到hadoop103和104中
scp /etc/profile root@hadoop103:/etc/
scp /etc/profile root@hadoop104:/etc/
其他两台机器再更新一下
source /etc/profile
3.修改hadoop配置文件
cd /opt/module/hadoop-3.1.3/etc/hadoop/
修改core-site.xml
vi core-site.xml
在configuration内添加如下内容
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 root -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
</configuration>
修改hdfs-site.xml
vi hdfs-site.xml
在configuration内添加如下内容
<configuration>
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
修改yarn-site.xml
vi yarn-site.xml
在configuration内添加如下内容
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
</configuration>
修改mapred-site.xml
vi mapred-site.xml
在configuration内添加如下内容
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop102:19888</value>
</property>
</configuration>
修改hadoop-env.sh
vi hadoop-env.sh
修改export JAVA_HOME=/usr/local/jdk1.8.0_221
修改workers
vi workers
删除localhost,修改为
hadoop102
hadoop103
hadoop104
4.配置root启动
如果不是用的root则跳过这一步
进入sbin目录
cd /opt/module/hadoop-3.1.3/sbin/
修改start-dfs.sh和stop-dfs.sh
vi start-dfs.sh
vi stop-dfs.sh
在最顶部添加
HDFS_ZKFC_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=root
#HADOOP_SECURE_DN_USER=root
修改start-yarn.sh和stop-yarn.sh
vi start-yarn.sh
vi stop-yarn.sh
在最顶部添加
#HADOOP_SECURE_DN_USER=root
HDFS_DATANODE_SECURE_USER=root
YARN_NODEMANAGER_USER=root
YARN_RESOURCEMANAGER_USER=root
5.使用scp将hadoop分发到hadoop103和hadoop104上
scp -r /opt/module/hadoop-3.1.3/ root@hadoop103:/opt/module/
scp -r /opt/module/hadoop-3.1.3/ root@hadoop104:/opt/module/
6.启动集群
每台机器先进入hadoop目录中
cd /opt/module/hadoop-3.1.3/
格式化nam****enode
在hadoop102上
hdfs namenode -format
启动HDFS
在hadoop102上
sbin/start-dfs.sh
使用jps发现hadoop102上启动了namenode和datanode
启动Yarn
在hadoop103上
sbin/start-yarn.sh
启动历史服务器
在hadoop102上
bin/mapred --daemon start historyserver
每一台机器执行jps查看进程
hadoop102
hadoop103
hadoop104
7.访问web端
浏览器输入http://192.168.10.102:9870/
HDFS Web端
浏览器输入http://192.168.10.103:8088/
Yarn web端
历史服务器
浏览器输入http://192.168.10.102:19888/
如果上面的网页都能进入说明分布式集群搭建成功
8.关闭集群
在hadoop102上
bin/mapred --daemon stop historyserver
在hadoop103上
sbin/stop-yarn.sh
在hadoop102上
9.脚本文件
创建脚本文件
vi bin/myhadoop.sh
在脚本文件中输入
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop 集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop 集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
给该文件赋予权限
chmod 777 bin/myhadoop.sh
启动集群
myhadoop.sh start
关闭集群
myhadoop.sh stop
重新开启集群就看启动集群那里
可以自己写shell脚本来一键开启或关闭集群
各位同学配置完可以收藏一下,方便后续配置或更改
版权归原作者 树懒丁丁 所有, 如有侵权,请联系我们删除。