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

相关推荐
江华森7 小时前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜1 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode3 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220704 天前
如何搭建本地yum源(上)
运维
大树887 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠7 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质7 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工7 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智7 天前
ARP代理--工作原理
运维·网络·arp·arp代理