当前位置:   article > 正文

Hadoop3.3.0集群搭建(CentOS7)

hadoop3.3.0

Hadoop集群搭建


文章目录


搭建环境

以下为搭建Hadoop集群所需要的环境:
VMware Workstation
Xshell
Xftp
Nodepad++
CentOS 7
hadoop-3.3.0
jdk-1.8
所需软件,可到官网进行下载


一、安装VMware虚拟机

1.1安装虚拟机

	安装目录没有中文字符,没有空格
  • 1

1.2配置网关

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1.3修改windows的网卡信息

在这里插入图片描述

第3步的192.168.88.x改为192.168.240.x 即与WMware设置的相同即可
  • 1

二、安装CentOS

2.1模拟硬件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2关联centos镜像

在这里插入图片描述
在这里插入图片描述

2.3安装centos镜像

主机名自己设置即可
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


三、连接xshell


四、连接nodepad++


五、使用nodepad++修改linux的网卡配置信息

文件目录:/etc/sysconfig/network-scripts/ifcfg-ens32

在这里插入图片描述

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="ens32"
UUID="3b3f9a3b-a378-41d9-bb5e-fdeca47539a7"
DEVICE="ens32"
ONBOOT="yes"

IPADDR="192.168.240.151"
GATEWAY="192.168.240.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
DNS2="114.114.114.114"
IPV6_PRIVACY="no"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

修改完成后重启网卡服务,加载新的配置文件

systemctl restart network
  • 1

重启完成后要重新连接xshell与nodepad++


六、关闭防火墙

查看防火墙状态

systemctl status firewalld
  • 1

关闭防火墙

systemctl stop firewalld
  • 1

禁止开机启动

systemctl disable firewalld
  • 1

七、添加用户组并给予权限

添加hadoop用户组

groupadd hadoop
  • 1

添加hadoop01用户

useradd -g hadoop hadoop01
  • 1

注意:这里的用户名可以自主更改

设置密码

passwd hadoop01
  • 1

给予权限

chmod 660 /etc/sudoers
  • 1

将 hadoop 用户添加到 sudoers 文件中:

vi /etc/sudoers
  • 1

在打开的文本编辑器中找到下面这一行:

root    ALL=(ALL:ALL) ALL
  • 1

在这一行下面添加一行,以授予 hadoop2112034222 用户执行 sudo 命令的权限,如下所示:

hadoop01 ALL=(ALL) ALL
  • 1

然后保存并关闭文件,并以 hadoop 用户身份重新登录系统即可。

reboot
  • 1

八、在虚拟机中创建两个目录

这里是新建的Hadoop用户而不是root用户

软件包放置的目录:

mkdir software    
  • 1

软件安装的目录:

mkdir server     
  • 1

九、克隆虚拟机

要建立克隆两台机器

克隆虚拟机时,要将被克隆的主机关机

在这里插入图片描述

要建立完整克隆

在这里插入图片描述
在这里插入图片描述


十、配置MAC地址

分别为克隆的两台主机配置MAC地址

在这里插入图片描述


十一、分别修改三台主机的ip地址、主机名与映射

11.1配置IP地址

打开配置文件

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens32
  • 1

将hadoop02与hadoop03的ip分别改为
192.168.240.152
192.168.240.153

在这里插入图片描述

重启网卡

systemctl restart network
  • 1

查看IP地址

ifconfig
  • 1

11.2配置主机名

分别编辑每台虚拟机的hostname文件,直接填写主机名,保存退出即可。

sudo vi /etc/hostname
  • 1

第一台主机主机名为: hadoop01
第二台主机主机名为:hadoop02
第三台主机主机名为: hadoop03

11.3 配置每台虚拟机的映射

分别编辑每台虚拟机的hosts文件,在原有内容的基础上,填下以下内容:
注意:不要修改文件原来的内容,三台虚拟机的配置内容都一样。

sudo vi /etc/hosts
  • 1

添加内容如下:

192.168.240.151 hadoop01
192.168.240.152 hadoop02
192.168.240.153 hadoop03
  • 1
  • 2
  • 3

效果如图

在这里插入图片描述

重新启动三台主机


十二、配置免密登录

12.1三台主机生成公钥和私钥

在三台机器执行以下命令,生成公钥与私钥

ssh-keygen -t rsa
  • 1

执行该命令之后,按下三个回车即可,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
默认保存在/home/hadoop01/.ssh

在这里插入图片描述在这里插入图片描述

12.2拷贝公钥到同一台机器

三台机器将拷贝公钥到第一台机器

三台机器执行命令:

ssh-copy-id hadoop01
  • 1

在执行该命令之后,需要输入yes和hadoop01的密码:

在这里插入图片描述

12.3复制第一台机器的认证到其他机器

将第一台机器的公钥拷贝到其他机器上

在第一台机器上指行以下命令

scp /home/hadoop01/.ssh/authorized_keys hadoop02:/home/hadoop01/.ssh
scp /home/hadoop01/.ssh/authorized_keys hadoop03:/home/hadoop01/.ssh
  • 1
  • 2

执行命令时,需要输入yes和对方的密码

12.4测试免密登录

可以在任何一台主机上通过ssh 主机名命令去远程登录到该主机,输入exit退出登录
例如:在hadoop01机器上,免密登录hadoop02机器,在hadoop01上输入:

ssh hadoop02
  • 1

效果如下:

在这里插入图片描述
注意:这里是不需要输入密码的,如果需要输入密码,则表明你的免密登录设置的有问题


十三、配置java

13.1使用xftp上传jdk压缩包

在hadoop01 进入 /home/hadoop01/software目录上传 jdk-8u241-linux-x64.tar.gz

cd software
  • 1

13.2解压jdk

解压压缩包到sever目录下:

 tar -zxvf jdk-8u241-linux-x64.tar.gz -C ~/server
  • 1

查看解压后的目录,目录中有 jdk1.8.0_241 为 jdk 解压的目录

13.3配置环境变量

打开/etc/profile 配置文件,将下面配置拷贝进去。
export 命令用于将 shell 变量输出为环境变量

sudo vi /etc/profile
  • 1

通过键盘上下键 将光标拉倒最后面

然后输入 i, 将以下下内容输入即可

#set Javasource
export JAVA_HOME=/home/hadoop01/server/jdk1.8.0_241
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  • 1
  • 2
  • 3
  • 4
  • 5

按esc键 然后 :wq 保存退出即可

重新加载环境变量:

source /etc/profile
  • 1

将环境配置加入到/.bashrc

cat /etc/profile >> ~/.bashrc
  • 1

#远程ssh执行需要设置~/.bashrc的环境变量。
#非登入shell按如下顺序加载配置文件:1:/etc/bashrc 2:~/.bashrc

13.4验证jdk是否安装成功

java -version
  • 1

出现以下内容即成功:

[hadoop01@hadoop01 ~]$ java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
  • 1
  • 2
  • 3
  • 4

十四、配置hadoop

14.1使用xftp上传hadoop压缩包

在hadoop01 进入 /home/hadoop01/software目录上传 hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

cd software
  • 1

14.2解压hadoop

解压压缩包到sever目录下:

tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz -C ~/server
  • 1

查看解压后的目录,目录中有hadoop-3.3.0 为 hadoop解压的目录

14.3配置环境变量

打开/etc/profile 配置文件,将下面配置拷贝进去。

sudo vi /etc/profile
  • 1

通过键盘上下键 将光标拉倒最后面

然后输入 i, 将以下下内容输入即可

#set HadoopSource
export HADOOP_HOME=/home/hadoop01/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3

按esc键 然后 :wq 保存退出即可

重新加载环境变量:

source /etc/profile
  • 1

将环境配置加入到/.bashrc

cat /etc/profile >> ~/.bashrc
  • 1

14.4验证是否安装成功

whereis hdfs
  • 1

出现以下内容即配置成功:

[hadoop01@hadoop01 ~]$ whereis hdfs
hdfs: /home/hadoop01/server/hadoop-3.3.0/bin/hdfs /home/hadoop01/server/hadoop-3.3.0/bin/hdfs.cmd
  • 1
  • 2

14.5修改hadoo配置文件

配置文件在 /home/hadoop01/server/hadoop-3.3.0/etc/hadoop 目录下

以下配置根据需要添加

14.5.1core-site.xml

/home/hadoop01/server/hadoop-3.3.0/ 目录下创建tmp文件夹

cd server/hadoop-3.3.0/

mkdir tmp
  • 1
  • 2
  • 3

配置文件内容:

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop01/server/hadoop-3.3.0/tmp</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>hadoop01</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

14.5.2hdfs-site.xml

<!-- 设置SNN进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop02:9868</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

14.5.3yarn-site.xml

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop01</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>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop01:19888/jobhistory/logs</value>
</property>

<!-- 保存的时间7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

14.5.4mapred-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务器端地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>hadoop01:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>hadoop01: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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

14.5.5workers

删除原有内容,添加以下内容:

hadoop01 
hadoop02 
hadoop03
  • 1
  • 2
  • 3

十五、分发文件到其他节点

15.1分发server下的所有文件到其他节点

scp -r /home/hadoop01/server hadoop01@hadoop02:/home/hadoop01/
scp -r /home/hadoop01/server hadoop01@hadoop03:/home/hadoop01/
  • 1
  • 2

15.2分发环境配置文件

scp ~/.bashrc hadoop02:~/.bashrc
scp ~/.bashrc hadoop03:~/.bashrc
  • 1
  • 2

分别在hadoop02与hadoop03中输入以下代码,是环境变量生效:

source ~/.bashrc
  • 1

十六、格式化namenode

输入以下命令:

hdfs namenode -format
  • 1

十七、启动hadoop

17.1启动hdfs

start-dfs.sh
  • 1

17.2启动yarn

start-yarn.sh
  • 1

17.3开启historyserver

mapred --daemon start historyserver
  • 1

17.4一键启动

start-all.sh
  • 1

17.5单个节点启动

[hadoop01@hadoop01 server]# hdfs --daemon start namenode
[hadoop01@hadoop01 server]# hdfs --daemon start datanode
[hadoop01@hadoop01 server]# yarn --daemon start resourcemanager
[hadoop01@hadoop01 server]# yarn --daemon start nodemanager
[hadoop01@hadoop01 server]# mapred --daemon start historyserver	   
  • 1
  • 2
  • 3
  • 4
  • 5
[hadoop01@hadoop02 ~]# hdfs --daemon start secondarynamenode
[hadoop01@hadoop02 ~]# yarn --daemon start nodemanager
[hadoop01@hadoop02 ~]# hdfs --daemon start datanode
  • 1
  • 2
  • 3
[hadoop01@hadoop03 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop03 ~]# hdfs --daemon stop datanode
  • 1
  • 2

十八、测试

18.1查看进程

[hadoop01@hadoop01 ~]$ jps
30210 DataNode
30661 NodeManager
30524 ResourceManager
30047 NameNode
31695 Jps
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
[hadoop01@hadoop02 ~]$ jps
29762 DataNode
30306 Jps
29976 NodeManager
29883 SecondaryNameNode
  • 1
  • 2
  • 3
  • 4
  • 5
[hadoop01@hadoop03 ~]$ jps
29595 NodeManager
29471 DataNode
29903 Jps
  • 1
  • 2
  • 3
  • 4

18.2HDFS界面

http://192.168.240.151:

在这里插入图片描述

18.3YARN界面

http://192.168.240.151:8088

在这里插入图片描述

18.4MR界面

http://192.168.240.152:9868

在这里插入图片描述

18.5historyserver

http://192.168.240.151:19888

在这里插入图片描述


十九、关闭hadoop

19.1关闭hdfs

stop-dfs.sh
  • 1

19.2关闭yarn

stop-yarn.sh
  • 1

19.3关闭historyserver

mapred --daemon stop historyserver
  • 1

19.4一键关闭

stop-all.sh
  • 1

19.5单个节点逐个关闭

[hadoop01@hadoop01 server]# hdfs --daemon stop namenode
[hadoop01@hadoop01 server]# hdfs --daemon stop datanode
[hadoop01@hadoop01 server]# yarn --daemon stop resourcemanager
[hadoop01@hadoop01 server]# yarn --daemon stop nodemanager
[hadoop01@hadoop01 server]# mapred --daemon stop historyserver	   
  • 1
  • 2
  • 3
  • 4
  • 5
[hadoop01@hadoop02 ~]# hdfs --daemon stop secondarynamenode
[hadoop01@hadoop02 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop02 ~]# hdfs --daemon stop datanode
  • 1
  • 2
  • 3
[hadoop01@hadoop03 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop03 ~]# hdfs --daemon stop datanode
  • 1
  • 2

总结

本文尽量详细的向大家展示了Hadoop集群环境的搭建流程,旨在帮助新手以最快的时间成功搭建Hadoop集群。
如有问题,欢迎评论!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/911142
推荐阅读
相关标签
  

闽ICP备14008679号