【hadoop】Hadoop 3.3.4 集群安装及简单使用
创始人
2024-03-26 22:07:03
0

目录

    • 环境信息
    • 1. 准备
      • 1.1 服务器规划
      • 1.2 主机名及hosts文件修改
        • 1.2.1 hostname修改
        • 1.2.2 hosts文件修改
      • 1.3 创建hadoop用户(建议)
      • 1.4 为hadoop用户添加sudo权限
      • 1.5 互信免密登录
      • 1.6 快速文件同步(可选)
    • 2. 安装
      • 2.1 下载并安装jdk
      • 2.2 下载并安装hadoop
        • 2.2.1 下载完成后放置到需要安装的目标目录并解压
        • 2.2.2 配置环境变量
    • 3. 配置hadoop并启动
      • 3.1 配置文件说明
      • 3.2 core-site.xml
      • 3.3 hdfs-site.xml
      • 3.4 yarn-site.xml
      • 3.5 mapred-site.xml
      • 3.6 workers
      • 3.7 格式化NameNode
      • 3.8 启动hdfs
      • 3.9 启动yarn
      • 3.10 配置历史服务器mapred-site.xml
      • 3.11 配置日志聚集(yarn-site.xml)
    • 4. 测试
      • 4.1 创建文件夹并上传文件
      • 4.2 查看
      • 4.3 下载
      • 4.4 删除
      • 4.5 yarn任务提交
    • 5. 常用端口清单
    • 6. 常用命令清单
      • 6.1 集群启停
        • 6.1.1 HDFS
        • 6.1.1 yarn
      • 6.2 按模块
        • 6.2.1 HDFS组件
        • 6.2.1 YARN组件
      • 6.3 历史服务器

环境信息

JDK: 1.8

Hadoop: 3.3.4

Linux: Centos7.5

防火墙状态: 关闭

1. 准备

下载地址:Index of /apache/hadoop/common/hadoop-3.3.4 (tsinghua.edu.cn)

1.1 服务器规划

HDFS的NameNode和SecondaryNameNode 不可安装在同一台主机

YARN的ResourceManager不要和HDFS的NameNode和SecondaryNameNode 安装在同一台主机(资源平衡考虑)

主机名ip用途
centos7-hadoop-130192.168.1.130HDFS:NameNode+DataNode
YARN: NodeManager
centos7-hadoop-131192.168.1.131HDFS:DataNode
YARN: NodeManager + ResourceManager
centos7-hadoop-132192.168.1.132HDFS:SecondaryNameNode + DataNode
YARN: NodeManager

1.2 主机名及hosts文件修改

使用root用户完成以下操作

1.2.1 hostname修改

分别修改三台服务的hostname文件,写入对应主机名

vim /etc/hostname

1.2.2 hosts文件修改

建议客户机(后续测试使用)也同样配置,window x64 hosts文件位置C:\Windows\System32\drivers\etc\hosts

192.168.1.130 centos7-hadoop-130
192.168.1.131 centos7-hadoop-131
192.168.1.132 centos7-hadoop-132

效果如下(以centos7-hadoop-130为例):
在这里插入图片描述

1.3 创建hadoop用户(建议)

三台规划的机器上均执行此操作

这里不建议直接使用root用户

#创建hadoop用户
useradd hadoop
#设置hadoop用户密码
passwd hadoop
#连续两次输入要设置的hadoop用户密码即可

1.4 为hadoop用户添加sudo权限

三台规划的机器上均执行此操作

此步骤的目的是在需要特殊权限时可方便使用

#修改文件
vim /etc/sudoers
#添加用户

修改效果如下:
在这里插入图片描述

NOPASSWD:ALL 表示无需密码即可切换root用户,一般不建议这么搞

参考:[linux]sudo的简单设置-CSDN博客

1.5 互信免密登录

三台规划的机器上均执行此操作,完成三个节点中任意节点到其他节点均可免密

参考: 【linux】ssh免密登录-CSDN博客

1.6 快速文件同步(可选)

基于sync的文件同步

参考: [rsync] 基于rsync的同步_-CSDN博客

本此使用脚本参考

#!/bin/bash#判断参数
if [ $# -lt 1 ]
thenecho 请传入要同步的文件
exit;
fi
#要同步的目标服务器清单
for host in centos7-hadoop-130 centos7-hadoop-131 centos7-hadoop-132
#for host in 192.168.1.2 192.168.1.3 192.168.1.4
doecho ==================== $host ====================#向下遍历所有目录,依次发送for file in $@do#获取父目录,用于创建不存在的目录pdir=$(cd -P $(dirname $file); pwd)#获取当前文件的名称fname=$(basename $file)#创建目录,如果这一步里对应的服务器没有进行免密设置,则需要输入密码ssh -p 50022 $host "mkdir -p $pdir"#执行同步,如果这一步里对应的服务器没有进行免密设置,则需要输入密码echo "rsync -av -e 'ssh -p 50022' $pdir/$fname hadoop@$host:$pdir"rsync -av -e 'ssh -p 50022' $pdir/$fname hadoop@$host:$pdirdone
done

2. 安装

三台规划的机器上均执行此操作,如无特殊说明,使用hadoop用户操作

2.1 下载并安装jdk

2.2 下载并安装hadoop

下载地址:Index of /apache/hadoop/common/hadoop-3.3.4 (tsinghua.edu.cn)

2.2.1 下载完成后放置到需要安装的目标目录并解压

这里以放置在/app目录下为例

mkdir -p /app
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xvf hadoop-3.3.4.tar.gz 

在这里插入图片描述

目录说明:

文件夹说明
bin相关服务的操作脚本
etc配置文件目录
libhadoop本地库
sbin启、停等相关脚本
share依赖包、文档、示例

2.2.2 配置环境变量

使用root用户操作

像配置JAVA_HOME一样配置HADOOP_HOME,值为Hadoop安装的根目录

#HADOOP的根目录
export HADOOP_HOME=/app/hadoop-3.3.4  
export PATH=$PATH:$HADOOP_HOME/bin  
export PATH=$PATH:$HADOOP_HOME/sbin

以上内容可配置到/etc/profile文件中,亦可在/etc/profile.d/下创建.sh的脚本单独放置,前提是/etc/profile文件包含如下内容:

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; doif [ -r "$i" ]; thenif [ "${-#*i}" != "$-" ]; then . "$i"else. "$i" >/dev/nullfifi
done

生效配置

source /etc/profile

3. 配置hadoop并启动

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

hadoop集群工作时会通过ssh通讯,如果ssh默认不是22端口则通过修改 文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh指定ssh连接时的配置选项.

添加配置

export SPARK_SSH_OPTS="-p 50022"

在这里插入图片描述

3.1 配置文件说明

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认 配置值时,才需要修改自定义配置文件,更改相应属性值。

  • 默认配置文件:
配置文件所在 jar 包中的位置参考文件位置
[core-default.xml]$HADOOP_HOME/share/hadoop/common/hadoop-common-3.3.4.jar/core-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml
[hdfs-default.xml]$HADOOP_HOME/share/hadoop/hdfs/hadoop-hdfs-3.3.4.jar/hdfs-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
[yarn-default.xml]$HADOOP_HOME/share/hadoop/yarn/hadoop-yarn-common-3.3.4.jar/yarn-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
[mapred-default.xml]$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.4.jar/mapred-default.xml$HADOOP_HOME/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
  • 自定义配置文件:
    $HADOOP_HOME/etc/hadoop 这个路径下core-site.xml、 hdfs-site.xml、 yarn-site.xml、 mapred-site.xml 、workers五个配置文件用户可以根据项目需求重新进行修改配置。

3.2 core-site.xml

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/core-site.xml

configuration节点下增加如下配置

    fs.defaultFShdfs://centos7-hadoop-130:8020hadoop.tmp.dir/app/datahadoop.http.staticuser.userhadoop

在这里插入图片描述

[

3.3 hdfs-site.xml

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/hdfs-site.xml

configuration节点下增加如下配置

    dfs.namenode.http-addresscentos7-hadoop-130:9870dfs.namenode.secondary.http-addresscentos7-hadoop-132:9868

在这里插入图片描述

3.4 yarn-site.xml

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/yarn-site.xml

configuration节点下增加如下配置

    yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.resourcemanager.hostnamecentos7-hadoop-131yarn.nodemanager.env-whitelistJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME

在这里插入图片描述

3.5 mapred-site.xml

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/mapred-site.xml

查询classpath作为yarn.application.classpath对应的value

hadoop classpath

在这里插入图片描述

configuration节点下增加如下配置

	mapreduce.framework.nameyarnyarn.application.classpath/app/hadoop-3.3.4/etc/hadoop:/app/hadoop-3.3.4/share/hadoop/common/lib/*:/app/hadoop-3.3.4/share/hadoop/common/*:/app/hadoop-3.3.4/share/hadoop/hdfs:/app/hadoop-3.3.4/share/hadoop/hdfs/lib/*:/app/hadoop-3.3.4/share/hadoop/hdfs/*:/app/hadoop-3.3.4/share/hadoop/mapreduce/*:/app/hadoop-3.3.4/share/hadoop/yarn:/app/hadoop-3.3.4/share/hadoop/yarn/lib/*:/app/hadoop-3.3.4/share/hadoop/yarn/*

在这里插入图片描述

3.6 workers

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/workers

删除原有的一条localhost记录

增加集群的主机清单,如下内容:

centos7-hadoop-130
centos7-hadoop-131
centos7-hadoop-132

在这里插入图片描述

3.7 格式化NameNode

在centos7-hadoop-130上执行格式化命令,使用hadoop用户执行

仅在首次启动集群前执行一次,多次执行会导致重复生成namenode的集群id,当namenode和datanode的集群id不一致时将导致整个集群报错。重新格式化namenode前应停止namenode和datanode进程,并删除data和log目录,必要时/tmp相关进程信息文件也应删除。

格式化命令:

hdfs namenode -format

在这里插入图片描述

3.8 启动hdfs

entos7-hadoop-130 使用hadoop用户启动hdfs

启动命令:

cd $HADOOP_HOME
sbin/start-dfs.sh 

启动完成进程信息
在这里插入图片描述

注: NodeManager进程在yarn启动后出现

访问NameNode:http://192.168.1.130:9870/
在这里插入图片描述

访问SecondaryNameNode http://192.168.1.132:9868/
在这里插入图片描述

3.9 启动yarn

entos7-hadoop-131 使用hadoop用户启动yarn

启动命令:

cd $HADOOP_HOME
sbin/start-yarn.sh

启动完成进程信息
在这里插入图片描述

访问:http://192.168.1.131:8088/
在这里插入图片描述

查看132节点进程信息
在这里插入图片描述

3.10 配置历史服务器mapred-site.xml

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/mapred-site.xml

configuration节点下增加如下配置

	mapreduce.jobhistory.addresscentos7-hadoop-130:10020
mapreduce.jobhistory.webapp.addresscentos7-hadoop-130:19888

在这里插入图片描述

启动历史服务器

mapred --daemon start historyserver

进程信息
在这里插入图片描述

访问: http://centos7-hadoop-130:19888/jobhistory/
在这里插入图片描述

3.11 配置日志聚集(yarn-site.xml)

三台机器均执行此配置(可使用1.6中的rsync进行同步),使用hadoop用户

path:$HADOOP_HOME/etc/hadoop/yarn-site.xml

configuration节点下增加如下配置

	yarn.log-aggregation-enabletrueyarn.log.server.urlhttp://centos7-hadoop-13:19888/jobhistory/logsyarn.log-aggregation.retain-seconds604800

在这里插入图片描述

重启yarn和历史服务器

cd $HADOOP_HOME
#停止yarn  centos7-hadoop-131 上执行
sbin/stop-yarn.sh
#停止历史服务器 centos7-hadoop-130 上执行
mapred --daemon stop historyserve
# 启动yarn  centos7-hadoop-131 上执行
sbin/start-yarn.sh
# 启动历史服务器  centos7-hadoop-130 上执行
mapred --daemon start historyserve

提交测试任务

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /input.txt /output00.txt

访问历史服务器:http://centos7-hadoop-130:19888/jobhistory
在这里插入图片描述
查看日志:
在这里插入图片描述
在这里插入图片描述

4. 测试

4.1 创建文件夹并上传文件

hadoop fs -ls /
hadoop fs -mkdir /test
hadoop fs -put node.tar.gz /test/
hadoop fs -put a.txt /

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

4.2 查看

hadoop fs -ls /
hadoop fs -ls /test

在这里插入图片描述

4.3 下载

hadoop fs -get /a.txt
hadoop fs -get /test/node.tar.gz

在这里插入图片描述

4.4 删除

hadoop fs -rm -r -f /test
hadoop fs -rm /a.tx

在这里插入图片描述

4.5 yarn任务提交

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /input.txt /output.txt

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

5. 常用端口清单

对比下hadoop2.x 与hadoop3.x 端口清单

端口用处Hadoop2.xHadoop3.x
NameNode 内部通信端口8020 / 90008020 / 9000/9820
NameNode HTTP UI500709870
MapReduce 查看执行任务端口80888088
历史服务器通信端口1988819888

6. 常用命令清单

6.1 集群启停

6.1.1 HDFS

#启动
$HADOOP_HOME/sbin/start-dfs.sh
#停止
$HADOOP_HOME/sbin/stop-dfs.sh

6.1.1 yarn

#启动
$HADOOP_HOME/sbin/start-yarn.sh
#停止
$HADOOP_HOME/sbin/stop-yarn.sh

6.2 按模块

6.2.1 HDFS组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

6.2.1 YARN组件

yarn --daemon start/stop resourcemanager/nodemanager

6.3 历史服务器

mapred --daemon stop historyserver
mapred --daemon start historyserver

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
AWSECS:哪种网络模式具有... 使用AWS ECS中的awsvpc网络模式来获得最佳性能。awsvpc网络模式允许ECS任务直接在V...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...