Hadoop集群搭建

Hadoop集群搭建

    • Hadoop集群简介
      • HDFS集群
      • YARN集群
    • Hadoop部署模式
    • Hadoop集群源码编译安装
      • 0.Hadoop源码编译
      • 1.集群角色规划
      • 2.服务器基础环境准备
        • 安装JDK1.8(安装OracleJDK8)
      • 3.创建Hadoop安装目录,上传Hadoop安装包
        • 解压安装包
      • 4.Hadoop安装包目录结构
      • 5.编辑Hadoop配置文件
        • Hadoop常用端口说明
        • 配置hadoop-env.sh
        • 配置core-site.xml
        • 配置hdfs-site.xml
        • 配置mapred-site.xml
        • 配置yarn-site.xml
        • 配置workers文件
        • 配置Hadoop安全参数
      • 6.分发Hadoop安装包
        • 使用xsync脚本优化同步
      • 7.配置Hadoop环境变量
        • 在master上配置Hadoop环境变量
        • 重新加载环境变量
        • 查看hadoop版本信息
        • 将修改后的`/etc/profile.d/hadoop.sh`同步到其他机器
      • 8.NameNode初始化(格式化)
    • Hadoop启动和关闭
      • 手动关闭角色
        • HDFS集群手动启动与关闭角色
        • YARN集群手动启动与关闭角色
      • 启动或停止历史服务器
        • 查看角色是否启动
        • Hadoop一键启动脚本
        • 查看日志
      • Haddop Web UI页面-HDFS集群
        • web-ui查看日志
        • 浏览文件系统
      • Haddop Web UI页面-YARN集群

Hadoop集群简介


HDFS集群

作用:分布式存储
主角色NameNode
从角色DataNode
主角色辅助角色SecondaryNameNode(相当于主角色NameNode的秘书)


YARN集群

作用:资源管理、调度
主角色ResourceManager
从角色NodeManager
Hadoop集群搭建_第1张图片

Hadoop集群搭建_第2张图片


Hadoop集群搭建_第3张图片


Hadoop集群搭建_第4张图片

Hadoop集群搭建_第5张图片


Hadoop部署模式

Hadoop集群搭建_第6张图片


Hadoop集群源码编译安装

https://www.cnblogs.com/snguo/p/16717947.html


0.Hadoop源码编译


1.集群角色规划

Hadoop集群搭建_第7张图片

服务器 运行角色
master namenode(HDFS主角色) datanode(HDFS从角色) resourcemanager(YARN主角色) nodemanager(YARN从角色)
node1 secondarynamenode(HDFS辅助角色) datanode(HDFS从角色) nodemanager(YARN从角色)
node2 datanode(HDFS从角色) nodemanager(YARN从角色)

2.服务器基础环境准备

  • 修改3台机器的主机名
# 其他节点修改成node1~2
hostnamectl  set-hostname master
  • 同步3台机器的/etc/hosts文件
  • 永久关闭3台机器的SELinux防火墙
# 临时关闭SELinux
setenforce  0

# 修改SELinux的状态为disabled
## sed "s/原字符串/替换字符串/" filename
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

# 禁止开机启动并现在关闭
systemctl disable --now firewalld
  • ssh免密3台机器(包括本机本机)
  • 保证集群内机器的时间同步
  • 集群内机器都要 安装oracle-JDK1.8(要卸载openjdk)

安装JDK1.8(安装OracleJDK8)

安装OracleJDK8
https://blog.csdn.net/omaidb/article/details/128634443

master安装好JDK后,将JDK程序和修改后的/etc/profile.d/jdk.sh同步到集群其他机器

# 将jdk程序同步到其他机器
scp -r /usr/java/ node1:/usr/
## 或使用xsync脚本同步到集群内机器
xsync /usr/java/

# 将修改后的/etc/profile同步到其他机器
scp /etc/profile.d/jdk.sh node1:/etc/profile.d
## 或使用xsync脚本同步到集群内机器
xsync /etc/profile.d/jdk.sh

Hadoop集群搭建_第8张图片


3.创建Hadoop安装目录,上传Hadoop安装包

# 集群内机器创建统一工作目录
# mkdir -p /data/hadoop/{data,tmp,namenode,src}
mkdir -p /export/{server,data,src}

## 软件安装路径
mkdir -p /export/server/

## 数据存储路径
mkdir -p /export/data/

## 安装包存放路径
mkdir -p /export/src/

解压安装包

# 上传安装包到/export/src/
scp hadoop-3.1.4-bin-snappy-Centos7.tar.gz node1:/export/src/

# 解压hadoop安装包到/export/server/
## -C 解压到指定路径
tar xvf hadoop-3.1.4-bin-snappy-Centos7.tar.gz -C /export/server/

4.Hadoop安装包目录结构

  • bin:存放对hadoop相关服务(hdfs、yarn、MapReduce)进行操作的脚本
  • etc:hadoop的配置文件目录,存放hadoop的配置文件
  • lib:存放hadoop的本地库(对数据进行压缩解压缩功能)
  • sbin:存放启动或停止hadoop相关服务的脚本
  • share:存放hadoop的依赖jar包、文档、官方案例。

5.编辑Hadoop配置文件

配置文件在/export/server/hadoop-3.1.4/etc/hadoop目录

# cd到hadoop目录
cd /export/server/hadoop-3.1.4/etc/hadoop

默认配置文件以-default结尾

  • core-default.xml:核心配置文件
  • hdfs-default.xml:hdfs配置文件
  • yarn-default.xml:yarn配置文件
  • mapred-default.xml:MapReduce配置文件

自定义配置文件以-site结尾

  • core-sit.xml:核心配置文件
  • hdfs-site.xml:hdfs配置文件
  • yarn-site.xml:yarn配置文件
  • mapred-site.xml:MapReduce配置文件

Hadoop常用端口说明

Hadoop集群搭建_第9张图片


配置hadoop-env.sh

Hadoop集群搭建_第10张图片

# 备份hadoop-env.sh
cp /export/server/hadoop-3.1.4/etc/hadoop/hadoop-env.sh{,.bak}

# 编辑hadoop-env.sh
vim /export/server/hadoop-3.1.4/etc/hadoop/hadoop-env.sh

配置内容

# 指定JAVA_HOME路径
export JAVA_HOME=jdk的安装目录

# 若SSH端口不是默认的22,需指定端口
# export HADOOP_SSH_OPTS="-p 1234"

# 设置用户以执行对应角色的shell命令
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODENAMEGER_USER=root

配置core-site.xml

https://blog.csdn.net/wjt199866/article/details/106473174

# 备份
cp /export/server/hadoop-3.1.4/etc/hadoop/core-site.xml{,.bak}

# 编辑core-site.xml
vim /export/server/hadoop-3.1.4/etc/hadoop/core-site.xml

配置内容如下

<configuration>

    
    <property>
        <name>fs.defaultFSname>
        <value>hdfs://master:8020value>
    property>

    
    <property>
        <name>hadoop.tmp.dirname>
        
        <value>/export/data/hadoop-3.1.4value>
    property>

    
    <property>
        <name>hadoop.http.staticuser.username>
        <value>rootvalue>
    property>

    
    <property>
        <name>fs.checkpoint.periodname>
        <value>3600value>
    property>

configuration>

配置hdfs-site.xml

# 备份hdfs-site.xml
cp /export/server/hadoop-3.1.4/etc/hadoop/hdfs-site.xml{,.bak}

# 编辑hdfs-site.xml
vim /export/server/hadoop-3.1.4/etc/hadoop/hdfs-site.xml

配置内容如下

<configuration>
    
    <property>
        <name>dfs.namenode.secondary.http-addressname>
        <value>node2:9868value>
    property>
configuration>

配置mapred-site.xml

# 备份mapred-site.xml
cp /export/server/hadoop-3.1.4/etc/hadoop/mapred-site.xml{,.bak}

# 编辑mapred-site.xml
vim /export/server/hadoop-3.1.4/etc/hadoop/mapred-site.xml

配置内容如下

<configuration>
    
    <property>
        <name>mapreduce.framework.namename>
        
        <value>yarnvalue>
    property>

    
    <property>
        <name>yarn.app.mapreduce.am.envname>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
    property>

    
    <property>
        <name>mapreduce.map.envname>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
    property>

    
    <property>
        <name>mapreduce.reduce.envname>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
    property>

   
    <property>
        <name>mapreduce.jobhistory.addressname>
        <value>hadoop102:10020value>
    property>

    
    <property>
        <name>mapreduce.jobhistory.webapp.addressname>
        <value>hadoop102:19888value>
    property>

configuration>

配置yarn-site.xml

# 备份yarn-site.xml
cp /export/server/hadoop-3.1.4/etc/hadoop/yarn-site.xml{,.bak}

# 编辑yarn-site.xml
vim /export/server/hadoop-3.1.4/etc/hadoop/yarn-site.xml

配置内容如下

<configuration>

    
    <property>
        <name>yarn.resourcemanager.hostnamename>
        <value>mastervalue>
    property>

    
    <property>
        <name>yarn.nodemanager.aux-servicesname>
        <value>mapreduce_shufflevalue>
    property>

    
    <property>
        <name>yarn.scheduler.minimum-allocation-mbname>
        <value>512value>
    property>

    
    <property>
        <name>yarn.scheduler.maximum-allocation-mbname>
        <value>2048value>
    property>

    
    <property>
        <name>yarn.nodemanager.vmem-pmem-rationame>
        <value>4value>
    property>

    
    <property>
        <name>yarn.log-aggregation-enablename>
        <value>truevalue>
    property>

  	
  	<property>
    		<name>yarn.log.server.urlname>
    		<value>http://hadoop102:19888/jobhistory/logsvalue>
		property>

		
		<property>
    		<name>yarn.log-aggregation.retain-secondsname>
    		<value>604800value>
    property>

configuration>

配置workers文件

配置从角色主机名或IP

# 备份yarn-site.xml
cp /export/server/hadoop-3.1.4/etc/hadoop/workers{,.bak}

# 编辑yarn-site.xml
vim /export/server/hadoop-3.1.4/etc/hadoop/workers

配置内容: 添加Hadoop集群机器主机名IP到该文件中

master
node1
node2
node3

配置Hadoop安全参数

https://support.huaweicloud.com/usermanual-mrs/admin_guide_000277.html


6.分发Hadoop安装包

通过scpmaster上的/export/server/目录同步到集群内其他机器
Hadoop集群搭建_第11张图片

# 登陆master
ssh master

# 复制安装包到node1 node2 node3
scp -r /export/server/hadoop-3.1.4 node1:/export/server/

## 复制到node2
scp -r /export/server/hadoop-3.1.4 node2:/export/server/

使用xsync脚本优化同步

https://blog.csdn.net/omaidb/article/details/121746997


7.配置Hadoop环境变量

Hadoop集群搭建_第12张图片


在master上配置Hadoop环境变量

vim /etc/profile.d/hadoop.sh

# 指定HADOOP_HOME路径
export HADOOP_HOME=/export/server/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重新加载环境变量

# 使新增的HADOOP变量生效
source /etc/profile

# 查看hadoop命令是否找到
which hadoop

查看hadoop版本信息

# 查看hadoop版本信息
cat /export/data/dfs/name/current

Hadoop集群搭建_第13张图片


将修改后的/etc/profile.d/hadoop.sh同步到其他机器

# 将修改后的/etc/profile同步到其他机器
scp /etc/profile.d/hadoop.sh node1:/etc/profile.d
scp /etc/profile.d/hadoop.sh node2:/etc/profile.d

8.NameNode初始化(格式化)

Hadoop集群搭建_第14张图片
Hadoop集群搭建_第15张图片


# 首次启动HDFS时,必需对其进行格式化操作
hdfs namenode -format

下图提示初始化成功了。


# 查看数据存储路径
ll /export/server/hadoop-3.1.4/dfs/name/
ll /export/server/hadoop-3.1.4/dfs/name/current

Hadoop集群搭建_第16张图片


Hadoop启动和关闭

# 启动hdoop服务
start-all.sh

手动关闭角色

Hadoop集群搭建_第17张图片


HDFS集群手动启动与关闭角色

# 整体启动或停止hdfs
## 启动hdfs
sbin/start-dfs.sh
## 关闭hdfs
sbin/stop-dfs.sh

# hdfs集群启动角色
hdfs --daemon start namenode|datanode|secondarynamenode

# hdfs关闭角色
hdfs --daemon stop namenode|datanode|secondarynamenode

YARN集群手动启动与关闭角色

# 整体启动或停止yarn
## 启动yarn
sbin/start-yarn.sh
## 停止yarn
sbin/stop-yarn.sh

# YARN启动NodeManger、ResourceManger角色
yarn --daemon start resourcemanager|nodemanager

# 关闭NodeManger、ResourceManger角色
yarn --daemon stop resourcemanager|nodemanager

启动或停止历史服务器

# 启动历史服务器(HistoryServer角色)
mapred --daemon start historyserver

# 关闭历史服务器(HistoryServer角色)
mapred --daemon stop historyserver

启动**datanode**时会自动创建**logs**目录
image.png


查看角色是否启动

# 使用jps查看启动的java进程
jps

Hadoop集群搭建_第18张图片


Hadoop一键启动脚本

  • start-all.sh一键启动所有角色
  • stop-all.sh一键关闭所有角色

Hadoop集群搭建_第19张图片


查看日志

# 日志所在目录
/export/server/hadoop-3.1.4/logs


Haddop Web UI页面-HDFS集群

webui界面地址 http://namenode_host:9870
Hadoop集群搭建_第20张图片


web-ui查看日志

Hadoop集群搭建_第21张图片


浏览文件系统

Hadoop集群搭建_第22张图片
Hadoop集群搭建_第23张图片


Haddop Web UI页面-YARN集群

webui界面地址 http://resourcemanager_host:8088

你可能感兴趣的:(Hadoop,hadoop,大数据,hdfs)