前言
Hadoop是一个开源的、可运行与Linux集群上的分布式计算平台,用户可借助Hadoop存有基础环境的配置(虚拟机安装、Linux安装等),Hadoop集群搭建,配置和测试。
一、虚拟机的安装
VMware (Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器、桌面虚拟化的解决方案。
使用的虚拟软件:VMware Workstation Pro 17
VMware 17许可证密钥是:MC60H-DWHD5-H80U9-6V85M-8280D
二、Linux系统安装
1.环境准备
VMware Workstation Pro 17
Centos7下载链接:Centos-7-DVD
FinalShell下载连接:FinalShell
JDK8:jdk-8u152-linux-x64.tar.gz
Hadoop3:hadoop-3.2.4.tar.gz
2.虚拟机安装
(1)新建虚拟机,选择典型
(2)选择安装光盘镜像(iso)
(3)虚拟机创建用户名密码
(4)虚拟机名称和位置
(5)指定磁盘容量
(6)虚拟机配置如下
点击完成就是漫长的等待~~~
三、修改网络配置
1.虚拟网络编辑器
(1)打开虚拟网络编辑器
点击编辑—>虚拟网络编辑器,进行网络编辑,点击更改配置
(2)修改子网IP和掩码
将VMnet8网络模式改为NET模式,并且将子网IP地址配置为192.168.88.0,将子网掩码设置为:255.255.255.0
2.更改本机的ip地址配置
在设置中选择网络和Internet,选择状态,高级网络设置,点击更改适配器选项
3.更改虚拟机的网络配置
(1)打开命令窗口
(2) 更改虚拟机的网络配置
使用命令切换到root用户下
[yy@localhost ~]$ su root
使用vim命令编辑ifcfg-ens33文件,编辑完成ESC退出,输入:wq 保存
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
将其中内容改为:BOOTPROTO --> dhcp 改成 static
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=d476bb38-7219-42b1-a12f-c97a86cca0ad
EVICE="ens33"
ONBOOT=yes
根据自己的IP地址更改下边的IP即可,其余的不用动
# IP 地址设置
IPADDR=192.168.88.111
# 子网掩码
NETMASK=255.255.255.0
# 或者使用CIDR表示法
PREFIX=24
# 默认网关
GATEWAY=192.168.88.2
# DNS 服务器设置
# 首选DNS服务器
DNS1=8.8.8.8
# 备用DNS服务器
DNS2=114.114.114.114
4. 更改主机名,添加主机映射名
[root@hadoop111 yy]# vim /etc/hostname
在hostname文件下先删除所有,在添加主机名:hadoop111
[root@hadoop111 yy]# vim /etc/hosts
在hosts文件下追加以下内容:
192.168.88.111 hadoop111
192.168.88.112 hadoop112
192.168.88.113 hadoop113
配置完ip地址和host文件名之后,输入reboot 重启虚拟机
5. 验证配置成功
使用ifconfig命令查看ip地址:
使用命令 ping www.baidu.com 查看是否可以连接外网,ctrl+c 退出ping命令
四、FinalShell配置
1.打开FinalShell
点击![](https://img-blog.csdnimg.cn/direct/364cab86b8b84ceeab2c05363cebef4d.png)打开,连接管理器
点击![](https://img-blog.csdnimg.cn/direct/046be601ab2742679da37effc1b12b8e.png)选择SSH连接,输入内容
确定后点击hadoop111
连接完成
五、Hadoop集群配置
1.配置sudo权限
配置yy用户具有的root权限,方便后期加sudo执行root权限命令
[root@hadoop111 yy]# vim /etc/sudoers
在文件下添加(注意添加位置): yy ALL=(ALL) NOPASSWD:ALL
2.卸载现有JDK
(1)查询是否安装 Java
[root@hadoop111 yy]# rpm -qa | grep java
(2)卸载该 JDK:
首先切换到root用户下,其次删除jdk
[root@hadoop111 yy]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
重启虚拟机:reboot
(3)创建文件夹
在/opt 目录下创建 module、software 文件夹
[yy@hadoop111 opt]$ sudo mkdir module
[yy@hadoop111 opt]$ sudo mkdir software
[yy@hadoop111 opt]$ ll
修改 module、software 文件夹的所有者
[yy@hadoop111 opt]$ sudo chown yy:yy module/ software/
[yy@hadoop111 opt]$ ll
立即关机
[yy@hadoop111 opt]$ sudo poweroff
(4)克隆虚拟机
使用模板机hadoop111 克隆出两台虚拟机)点击 创建完整克隆,依次克隆出来hadoop112,hadoop113
(5)修改虚拟机
修改hadoop112,hadoop113两个虚拟机的ip地址(vim /etc/sysconfig/network-scripts/ifcfg-ens33),主机名(vim /etc/hostname)
#分别在hadoop112 hadoop113 修改
[yy@hadooplll ~]$ su
Password:
[root@hadoop111 yy]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@hadoop11l yy]#vim/etc/hostname
IP地址分别改成192.168.88.112和192.168.88.113
主机名分别改hadoop112和hadoop113
3.配置JDK
(1)用 FinalShell工具
连接hadoop111将 JDK ,hadoop导入到opt 目录下面的 software 文件夹下面
点击“历史”旁边的![](https://img-blog.csdnimg.cn/direct/fdcac95b45bb4fa3b690e824cad2f927.png)上传
(2)解压jdk
解压 JDK 到/opt/module 目录下
[yy@hadoop111 software]$ tar -zxvf jdk-8u152-linux-x64.tar.gz -C /opt/module/
查看是否解压成功
[yy@hadoop111 software]$ ls /opt/module/
jdk1.8.0_152
(3) 配置 JDK 环境变量
先获取 JDK 路径
[yy@hadoop111 jdk1.8.0_152]$ pwd
/opt/module/jdk1.8.0_152
进入到profile.d文件下,新建my_path.sh配置文件
[yy@hadoop111 jdk1.8.0_152]$ cd /etc/profile.d/
[yy@hadoop111 profile.d]$ sudo vim my_path.sh
在文件下添加以下内容:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_152
export PATH=$PATH:$JAVA_HOME/bin
(4)测试
让修改后的文件生效
[yy@hadoop111 profile.d]$ source /etc/profile
测试 JDK 是否安装成功
[yy@hadoop111 profile.d]$ java -version
java version "1.8.0_152"
注意:重启(如果 java -version 可以用就不用重启)
[yy@hadoop111 jdk1.8.0_152]$ sudo reboot
4.配置Hadoop
(1)解压hadoop
进入到 Hadoop 安装包路径下
[yy@hadoop111 profile.d]$ cd /opt/software/
解压安装文件到/opt/module 下面
[yy@hadoop111 software]$ tar -zxvf hadoop-3.2.4.tar.gz -C /opt/module/
查看是否解压成功
[yy@hadoop111 software]$ ls /opt/module/
hadoop-3.2.4 jdk1.8.0_152
获取 Hadoop 安装路径
[yy@hadoop111 hadoop-3.2.4]$ pwd
/opt/module/hadoop-3.2.4
(2)环境变量配置
进入到profile.d文件下,修改my_path.sh配置文件
[yy@hadoop111 hadoop-3.2.4]$ sudo vim /etc/profile.d/my_path.sh
在my_path.sh添加以下内容:
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.2.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(2)测试
让修改后的文件生效
[yy@hadoop111 hadoop-3.2.4]$ source /etc/profile
测试是否安装成功
[yy@hadoop111 hadoop-3.2.4]$ hadoop version
Hadoop 3.2.4
注意:重启(如果 Hadoop 命令不能用再重启)
[yy@hadoop111 hadoop-3.2.4]$ sudo reboot
5.配置hosts文件和ssh免密登录
(1)生成密钥文件(四次回车)
ssh-keygen -t rsa
(2)复制公钥文件
注意:接收方需先开机
在hadoop111上执行,先输入yes,后输入对应主机的密码,多台虚拟机配置操作相同
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
在虚拟机hadoop112,hadoop113都需要执行,保证三台主机都能够免密登录
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop02
(3)查看是否成功免密登录
6.分发jdk与hadoop
(1)使用scp安全拷贝
将配置好的jdk,hadoop分发给hadoop112,hadoop113.
[yy@hadoop111 module]$ scp -r jdk1.8.0_152/ yy@hadoop112:/opt/module/
[yy@hadoop111 module]$ scp -r jdk1.8.0_152/ yy@hadoop113:/opt/module/
[yy@hadoop111 module]$ scp -r hadoop-3.2.4/ yy@hadoop112:/opt/module/
[yy@hadoop111 module]$ scp -r hadoop-3.2.4/ yy@hadoop113:/opt/module/
(2)创建xsync脚本
实现分发功能
[yy@hadoop111 ~]$ mkdir bin
[yy@hadoop111 ~]$ cd bin/
[yy@hadoop111 bin]$ vim xsync
在xsync文件下添加如下内容:
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop111 hadoop112 hadoop113
do
echo ============ $host =============
#3. 遍历所有目录,逐个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
修改脚本 xsync 具有执行权限
[yy@hadoop111 bin]$ chmod 777 xsync
·使用xsync同步分发
[yy@hadoop111 ~]$ xsync bin/
(3)分发环境变量配置文件
每台需要输入两遍root密码
[yy@hadoop111 ~]$ sudo ./bin/xsync /etc/profile.d/my_path.sh
在hadoop112、hadoop113上执行:
[yy@hadoop112 ~]$ source /etc/profile
[yy@hadoop113 ~]$ source /etc/profile
六、配置文件
首先使用命令进入到hadoop文件夹下:
[yy@hadoop111 ~]$ cd /opt/module/hadoop-3.2.4/etc/hadoop/
1.core-site.xml配置
[yy@hadoop111 hadoop]$ vim core-site.xml
在core-site.xml添加内容为:
<configuration>
<!-- 指定Name Node的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop111:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.2.4/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为yy -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>yy</value>
</property>
</configuration>
2.yarn-site.xml配置
[yy@hadoop111 hadoop]$ vim yarn-site.xml
在yarn-site.xml添加如下内容:
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop112</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://hadoop111:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
<name>yarn.aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
3.hdfs-site.xml配置
[yy@hadoop111 hadoop]$ vim hdfs-site.xml
在hdfs-site.xml添加如下内容:
<configuration>
<!-- nn web端访问地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop111:9870</value>
</property>
<!-- 2nn web端访问地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop113:9868</value>
</property>
</configuration>
4.mapred-site.xml配置
[yy@hadoop111 hadoop]$ vim mapred-site.xml
在mapred-site.xml添加如下内容:
<configuration>
<!-- 指定MapReduce程序运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop111:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop111:19888</value>
</property>
</configuration>
5.workers配置
[yy@hadoop111 hadoop]$ vim workers
在workers修改为如下内容:
hadoop111
hadoop112
hadoop113
6.分发配置文件
将配置好的文件分发给hadoop112,hadoop113
[yy@hadoop111 hadoop]$ xsync /opt/module/hadoop-3.2.4/etc/hadoop/
在去hadoop103、hadoop104上查看配置情况
七.Hadoop集群测试
1.启动集群
(1)初始化集群
仅第一次启动
[yy@hadoop111 hadoop-3.2.4]$ hdfs namenode -format
在hadoop111上启动hdfs:
[yy@hadoop111 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop111 hadoop-3.2.4]$ sbin/start-dfs.sh
在hadoop112上启动yarn:
[yy@hadoop112 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop112 hadoop-3.2.4]$ sbin/start-yarn.sh
在hadoop111上启动historyserver:
[yy@hadoop111 hadoop-3.2.4]$ bin/mapred --daemon start historyserver
(2)查看集群进程
使用jps命令查看进程
注意:一个不能少
(3)web界面
** 关闭防火墙(所有虚拟机都要操作)**
systemctl stop firewalld #关闭防火墙
systemctl disable firlewalld #关闭防火墙开机启动
在网页查看HDFS的namendoe:http://hadoop111:9870
在网页查看YERN的resourcemanager: http://hadoop112:8088
2.关闭集群
(1)初始化集群
在hadoop111上关闭historyserver:
[yy@hadoop111 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop111 hadoop-3.2.4]$ bin/mapred --daemon stop historyserver
在hadoop112上关闭yarn:
[yy@hadoop112 ~]$ cd /opt/module/hadoop-3.2.4/
[yy@hadoop112 hadoop-3.2.4]$ sbin/stop-yarn.sh
在hadoop111上关闭hdfs:
[yy@hadoop111 hadoop-3.2.4]$ sbin/stop-dfs.sh
(2)查看集群进程
使用jps命令查看进程
版权归原作者 我要吃蛋糕 所有, 如有侵权,请联系我们删除。