CentOS7搭建Hadoop3集群教程

一、集群环境说明

1、用VMware安装3台Centos7虚拟机

2、虚拟机配置:2C,2G内存,50G存储

3、集群架构设计

从表格中,可以看出,Hadoop集群,主要有2个模块服务,一个是HDFS服务,一个是YARN服务

二、搭建集群

1、安装3台Centos7虚拟机

安装教程:VMware安装Centos7详细教程及初始化配置

三台虚拟机固定IP:192.168.31.110、192.168.31.111、192.168.31.112

三台主机的hostname分别为,hadoop-master,hadoop-slave1,hadoop-slave2

因为3条机器相关配置类似,所以我们先在一台机器上操作完,然后将机器克隆2台即可。

克隆第一台机器master

首先从虚拟机快照中创建一个克隆,我们将先在这台机器(hadoop-master)上操作。

以下均在root用户下操作

修改主机名

bash 复制代码
vim /etc/hostname

hadoop-master

修改hosts文件

bash 复制代码
vim /etc/hosts

192.168.126.110	hadoop-master
192.168.126.111	hadoop-slave1
192.168.126.112	hadoop-slave2

修改ip地址

bash 复制代码
vim /etc/sysconfig/network-scripts/ifcfg-ens33

创建账号

创建hadoop账号,并设置密码为hadoop

bash 复制代码
useradd hadoop
echo hadoop|passwd --stdin hadoop;

配置hadoop账号root权限

bash 复制代码
visudo

末尾添加
hadoop    ALL=(ALL)       NOPASSWD:ALL

安装hadoop

hadoop 3.1.3下载地址:Apache Hadoop

创建两个目录并赋予权限,进入software目录,并将hadoop压缩包上传上去

bash 复制代码
mkdir /opt/module
mkdir /opt/software
chown hadoop:hadoop /opt/module
chown hadoop:hadoop /opt/software
cd /opt/software

切换到hadoop用户,并解压

bash 复制代码
su hadoop
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

回到root用户,配置环境变量

bash 复制代码
exit
cd /etc/profile.d/
 
vim hadoop.sh

#!/bin/bash
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

重新加载环境变量,这样新配置的hadoop环境变量才会生效
source /etc/profile

检查hadoop安装是否成

bash 复制代码
hadoop version

hadoop的4个自定义配置文件及workers配置

切换到hadoop用户,进入到hadoop安装目录

bash 复制代码
su hadoop
cd /opt/module/hadoop-3.1.3
core-site.xml
bash 复制代码
vim etc/hadoop/core-site.xml

配置内容

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoop-master:8020</value>
  <description>指定 NameNode 的地址</description>
</property>

<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-3.1.3/data</value>
  <description>指定 Hadoop 数据的存储目录</description>
</property>
</configuration>
hdfs-site.xml
bash 复制代码
vim etc/hadoop/hdfs-site.xml
XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
  <name>dfs.namenode.http-address</name>
  <value>hadoop-master:9870</value>
  <description>nn web 端访问地址</description>
</property>

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>hadoop-slave2:9868</value>
  <description>2 nn web 端访问地址</description>
</property>
</configuration>
mapred-site.xml
bash 复制代码
vim etc/hadoop/mapred-site.xml
XML 复制代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
	  <name>mapreduce.framework.name</name>
	  <value>yarn</value>
	  <description></description>
	</property>
	
	<property>
	  <name>mapreduce.jobhistory.address</name>
	  <value>hadoop-master:10020</value>
	  <description>历史服务器端地址</description>
	</property>
	
	<property>
	  <name>mapreduce.jobhistory.webapp.address</name>
	  <value>hadoop-master:19888</value>
	  <description>历史服务器 web 端地址</description>
	</property>
</configuration>
yarn-site.xml
bash 复制代码
vim etc/hadoop/yarn-site.xml
XML 复制代码
<?xml version="1.0"?>
<configuration>

  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>指定 MR 走 shuffle</description>
  </property>
  
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop-slave1</value>
    <description>指定 ResourceManager 的地址</description>
  </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>
    <description>系统环境变量的继承</description>
  </property>
  
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description>开启日志聚集功能</description>
  </property>
  
  <property>
    <description>设置日志聚集服务器地址</description>
    <name>yarn.log.server.url</name>
    <value>http://hadoop-master:19888/jobhistory/logs</value>
  </property>
  
  <property>
    <description>设置日志保留时间为 7 天, -1 表示不保存日志</description>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>

</configuration>
配置workers
bash 复制代码
vim etc/hadoop/workers
bash 复制代码
hadoop-master
hadoop-slave1
hadoop-slave2

克隆slave

关闭master,克隆slave1和slave2,并开机

分别修改主机名和ip地址

hadoop-slave1:192.168.126.111

hadoop-slave2:192.168.126.112

bash 复制代码
vim /etc/hostname

hadoop-slave1
bash 复制代码
vim /etc/sysconfig/network-scripts/ifcfg-ens33

slave2类同

配置ssh免密

登录master

配置免密登录slave1,slave2

bash 复制代码
su hadoop
cd							进入当前账号家目录
ssh-keygen					连续三次回车	

ssh-copy-id hadoop-master	复制公钥到master服务器
ssh-copy-id hadoop-slave1	复制公钥到slave1服务器
ssh-copy-id hadoop-slave2	复制公钥到slave2服务器

分别登录slave1,slave2执行以上操作

初始化启动

以下在master上执行

bash 复制代码
cd /opt/module/hadoop-3.1.3
hdfs namenode -format

启动hadoop

启动HDFS服务
bash 复制代码
cd /opt/module/hadoop-3.1.3
sbin/start-dfs.sh
访问web页:http://192.168.126.110:9870
启动YARN服务

登录slave1

bash 复制代码
ssh hadoop-slave1
cd /opt/module/hadoop-3.1.3
sbin/start-yarn.sh

访问页面:http://192.168.126.111:8088/

检查各个集群节点服务

bash 复制代码
jps

集群启动与停止

在master上

bash 复制代码
cd /opt/module/hadoop-3.1.3
sbin/start-dfs.sh
sbin/stop-dfs.sh

在slave1上

bash 复制代码
cd /opt/module/hadoop-3.1.3
sbin/start-yarn.sh
sbin/stop-yarn.sh

测试

bash 复制代码
mkdir /opt/module/hadoop-3.1.3/wcinput
cd /opt/module/hadoop-3.1.3/wcinput
vim word.txt
ss ss
cls cls
banzhang
bobo
yangge
bash 复制代码
hadoop fs -mkdir /input	
hadoop fs -put $HADOOP_HOME/wcinput/word.txt /input	
bash 复制代码
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

部分内容参考连接:https://blog.csdn.net/Brave_heart4pzj/article/details/138314373

相关推荐
小O_好好学22 分钟前
Linux帮助命令
linux·运维·服务器
MXsoft61824 分钟前
监控易监测对象及指标之:Kubernetes(K8s)集群的全方位监控策略
运维
怒放的生命.30 分钟前
电气自动化入门05:三相异步电动机的正反转点动控制电路
运维·自动化·电气自动化·电工基础
莫泽Morze34 分钟前
VMware安装rustdesk服务器
运维·服务器
jonssonyan1 小时前
稳了,搭建Docker国内源图文教程
运维·docker·容器
周湘zx1 小时前
k8s中的微服务
linux·运维·服务器·微服务·云原生·kubernetes
周湘zx3 小时前
k8s中的存储
linux·运维·云原生·容器·kubernetes
[听得时光枕水眠]3 小时前
【Docker】Docker上安装MySql8和Redis
运维·docker·容器
AI原吾3 小时前
解锁自动化新境界:KeymouseGo,让键盘和鼠标动起来!
运维·python·自动化·计算机外设·keymousego