一、搭建过程
步骤:
1、准备安装环境
1、虚拟机装好CentOS 7系统,一共三个系统,分别命名为:node1、node2、node3
2、每个系统都卸载系统自带的openjdk
3、安装jdk1.8,并配置环境变量
4、设置IP
5、修改主机名
6、配置hosts文件
7、关闭防火墙
8、禁用selinux
9、设置SSH免密码登陆
10、最后设置完要重启系统
安装环境准备
https://blog.csdn.net/GeekDongHuang/article/details/122068325?spm=1001.2014.3001.5501
2、集群规划
2.1、设置每个节点的进程
Hadoop集群上有HDFS集群和YARN集群
HDFS集群有三个守护进程:
1、NameNode
2、SecondaryNameNode
3、DataNode
YARN集群有两个守护进程:
1、ResourceManager
2、NodeManager
2.2、HDFS集群规划
1、node1
1、NameNode
2、DataNode
2、node2
1、SecondaryNameNode
2、DataNode
3、node3
1、DataNode
2.3、YARN集群规划
1、node1
1、ResourceManager
2、NodeManager
2、node2
1、NodeManager
3、node3
1、NodeManager
3、集群安装
3.1、下载安装包
1、Hadoop3.3.1
下载地址:
https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
2、JDK1.8
下载地址:
https://www.oracle.com/java/technologies/downloads/
3.2、设置安装目录
1、压缩包存放目录
/export/software
2、解压包存放目录
/export/server
3.3、创建存放数据的data目录
# NameNode数据
mkdir -p /export/server/hadoop-3.3.1/data/namenode
# DataNode数据
mkdir -p /export/server/hadoop-3.3.1/data/datanode
3.4、配置环境变量
3.5、编辑配置文件
3.5.1 配置NameNode(core-site.xml)
在第19行下添加以下内容:
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1.itcast.cn:9820</value>
<description>配置NameNode的URL</description>
</property>
3.5.2 配置HDFS路径(hdfs-site.xml)
在第20行下添加以下内容:
<property>
<name>dfs.namenode.name.dir</name>
<value>/export/server/hadoop-3.3.1/data/namenode</value>
<description>NameNode存储名称空间和事务日志的本地文件系统上的路径</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/export/server/hadoop-3.3.1/data/datanode</value>
<description>DataNode存储名称空间和事务日志的本地文件系统上的路径</description>
</property>
3.5.3 配置YARN(yarn-site.xml)
在第18行下添加以下内容:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
<description>为每个容器请求分配的最小内存限制资源管理器(512M)</description>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
<description>为每个容器请求分配的最大内存限制资源管理器(4G)</description>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
<description>虚拟内存比例,默认为2.1,此处设置为4倍</description>
</property>
3.5.4 配置MapReduce(mapred-site.xml)
在第20行下添加以下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>执行MapReduce的方式:yarn/local</description>
</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>
3.5.5 workers文件
vim /export/server/hadoop-3.3.1/etc/hadoop/workers
# 删除第一行localhost,然后添加以下三行
node1.itcast.cn
node2.itcast.cn
node3.itcast.cn
3.5.6 修改hadoop.env环境变量
hadoop.env文件
vim /export/server/hadoop-3.1.4/etc/hadoop/hadoop-env.sh
修改第54行为:
export JAVA_HOME=/export/server/jdk1.8
3.5.7 配置环境变量
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.1
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:
source /etc/profile
3.5.8 分发配置好的Hadoop安装文件和环境变量
cd /export/server/
#复制文件夹到相应路径下的当前目录
scp -r hadoop-3.3.1 node2.itcast.cn:$PWD
scp -r hadoop-3.3.1 node3.itcast.cn:$PWD
#复制文件到相应路径
scp /etc/profile node2.itcast.cn:/etc
scp /etc/profile node3.itcast.cn:/etc
在每个节点上执行
source /etc/profile
3.5.9 格式化HDFS
首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的
cd /export/server/hadoop-3.3.1
bin/hdfs namenode -format itcast-hadoop
3.5.10 启动Hadoop集群
要启动Hadoop集群,需要启动HDFS和YARN两个集群。
3.5.11 启动HDFS集群
选择node1.itcast.cn节点启动NameNode节点
hdfs --daemon start namenode
在所有节点上启动DataNode
hdfs --daemon start datanode
启动Secondary NameNode
hdfs --daemon start secondarynamenode
3.5.12 启动YARN集群
选择node1.itcast.cn节点启动ResourceManager节点
yarn --daemon start resourcemanager
在所有节点上启动NodeManager
yarn --daemon start nodemanager
注意:如果在启动之后,有些服务没有启动成功,则需要查看启动日志,Hadoop的启动日志在每台主机的/export/server/hadoop-x.x.x/logs/目录,需要根据哪台主机的哪个服务启动情况去对应的主机上查看相应的日志,以下是node1主机的日志目录.
3.6 关闭Hadoop集群
3.6.1 关闭HDFS集群
# 关闭NameNode
hdfs --daemon stop namenode
# 每个节点关闭DataNode
hdfs --daemon stop datanode
# 关闭Secondary NameNode
hdfs --daemon stop secondarynamenode
3.6.2 关闭YARN集群
# 每个节点关闭ResourceManager
yarn --daemon stop resourcemanager
# 每个节点关闭NodeManager
yarn --daemon stop nodemanager
4 修改配置配置启动用户
4.1 HDFS集群一键脚本
cd /export/server/hadoop-3.3.1/sbin
编辑start-dfs.sh、stop-dfs.sh
在两个文件顶部添加以下内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
4.2 YARN集群一键脚本
start-yarn.sh、stop-yarn.sh
在两个文件顶部添加以下内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
4.3 一键启动
-- 一键启动HDFS、YARN
start-dfs.sh
start-yarn.sh
4.4 一键关闭
stop-dfs.sh
stop-yarn.sh
为了方便在windows上访问Hadoop,我们可以配置一个域名映射,就是以后我们只需要输入node1.itcast.cn,就会自动映射为对应的ip地址。
5 配置windows域名映射
1.以管理员身份打开C:\Windows\System32\drivers\etc目录下的hosts文件
2.在文件最后添加以下映射域名和ip映射关系
虚拟机内node1的IPv4地址 node1.itcast.cn node1
虚拟机内node2的IPv4地址 node2.itcast.cn node2
虚拟机内node3的IPv4地址 node3.itcast.cn node3
3.保存退出
4.测试映射是否生效
ping node1.itcast.cn
ping node2.itcast.cn
ping node3.itcast.cn
5.1 访问WebUI
NameNode:
http://node1.itcast.cn:9870
YARN:
http://node1.itcast.cn:8088