hadop集群搭建

admin 2024-9-26 211 9/26

环境

node1:192.168.73.129

node2:192.168.73.128

node3:192.168.73.127

1.基础环境(三台都要做)

1.修改主机名

vi /etc/hostname
node1 node2 node3 依次写入台之际的hostname文件然后 reboot重启

2.配置dns映射关系

192.168.73.127 node3 node3.xx.com
192.168.73.128 node2 node2.xx.com
192.168.73.129 node1 node1.xx.com

3.配置时间同步(用的阿里ntp)

yum install ntpdate -y
ntpdate ntp4.aliyun.com

4.关闭SElinux和防火墙

setenforce 0                   临时关闭
vim /etc/selinux/config      永久关闭 
SELINUX=disable          修改为disable

systemctl stop firewalld    防火墙

2.分发ssh免密登录(在node1执行)

ssh-keygen
ssh-copy-id node1.xx.com
ssh-copy-id node2.xx.com
ssh-copy-id node3.xx.com

3.在各节点安装jdk11

yum install java-11-openjdk-devel

vi /etc/profile.d/java.sh       (配置环境变量) export JAVA_HOME=/usr/lib/jvm/java-11-openjdk export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile.d/java.sh 生效环境变量

4.安装hadop

1创建统一工作目录

mkdir -p /hadop/server
mkdir -p /hadop/data
mkdir -p /hadop/softwares

2.上传解压tar包到server

rz
tar xzf hadoop-3.3.6.tar.gz

目录说明:

bin                  Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
etc                  Hadoop配置文件所在的目录
include          对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
libe              该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
libexec        各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbin            Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动关闭脚本。
share        Hadoop各个模块编译后的jar包所在的目录,官方自带示例。

3.编辑配置文件

1.hadop-env.sh

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
# 设置用户以执行对应角色 shell 命令
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

2.1core-site.xml

说明:

hadoop 的核心配置文件,有默认的配置项 core-default.xml。core-default.xml 与 core-site.xml 的功能是一样的,如果在 core-site.xml 里没有配置的属性,则会自动会获取 core-default.xml 里的相同属性的值。

vim  core-site.xml
<configuration>
<!-- 默认文件系统的名称。通过 URI 中 schema 区分不同文件系统。-->
<!-- file:///本地文件系统 hdfs:// hadoop分布式文件系统 gfs://。-->
<!-- hdfs 文件系统访问地址:http://nn_host:8020。-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
</property>
<!-- hadoop 本地数据存储目录 format 时自动生成 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/hadoop/data/hadop</value>
</property>
<!-- 在 Web UI 访问 HDFS 使用的用户名。-->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>
</configuration>

3.hdfs-site.xml

说明:

HDFS 的核心配置文件,主要配置 HDFS 相关参数,有默认的配置项 hdfs-default.xml。hdfs-default.xml 与 hdfs-site.xml 的功能是一样的,如果在 hdfs-site.xml 里没有配置的属性,则会自动会获取 hdfs-default.xml 里的相同属性的值。

<!-- 设定 SNN 运行主机和端口 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:9868</value>
</property>

4.mapred-site.xml

说明: 

MapReduce 的核心配置文件,Hadoop 默认只有个模板文件 mapred-site.xml.template,需要使用该文件复制出来一份 mapred-site.xml 文件。

<configuration>
<!-- mr 程序默认运行方式。yarn 集群模式 local 本地模式-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<!-- jobhistory 服务配置 注意 19888 是 web ui 访问端口 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>node1:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>node1:19888</value>
</property>
<!-- MR App Master 环境变量。-->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask 环境变量。-->
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask 环境变量。-->
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

5.yarn-site.xml

说明:

YARN 的核心配置文件

<!-- yarn 集群主角色 RM 运行机器。-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
</property>
<!-- NodeManager 上运行的附属服务。需配置成 mapreduce_shuffle,才可运行 MR 程序。-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>4</value>
</property>
<!-- 开启 yarn 日志聚集功能,收集每个容器的日志集中存储在一个地方 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>
<!-- 日志保留时间设置为一天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>86400</value>
</property>
<property>
  <name>yarn.log.server.url</name>
  <value>http://hadoop01:19888/jobhistory/logs</value>
</property>

6.workers

说明:

workers 文件里面记录的是集群主机名

node1.xx.com
node2.xx.com
node3.xx.com

5.分发安装包

scp -r hadoop-3.3.6/ root@node2.xx.com:/hadop/server/

6.三个节点同时配置hadop环境变量

vim /etc/profile
export HADOOP_HOME=/hadop/server/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

然后可以敲hadop验证一下

7.NameNode format(格式化操作)

说明:

1.首次启动 HDFS 时,必须对其进行格式化操作。format 本质上是初始化工作,进行 HDFS 清理和准备工作。

2.注意前面的配置文件是否有格式问题等。

hadop集群搭建

root@node1 data]# ll /hadoop/data/hadop/dfs/name/current
total 16
-rw-r--r--. 1 root root 399 Sep 25 14:44 fsimage_0000000000000000000
-rw-r--r--. 1 root root  62 Sep 25 14:44 fsimage_0000000000000000000.md5
-rw-r--r--. 1 root root   2 Sep 25 14:44 seen_txid
-rw-r--r--. 1 root root 218 Sep 25 14:44 VERSION

说明:

fsimage_0000000000000000000:这是文件系统镜像(File System Image),包含了HDFS的整个文件系统结构(如目录和文件元数据)的一个快照。
fsimage_0000000000000000000.md5:这是与fsimage文件对应的MD5校验和,用于验证文件完整性。
seen_txid:这个文件保存了NameNode最后一次启动后见到(即处理过)的最大事务ID。
VERSION:这个文件包含了与NameNode相关的各种版本和配置信息,比如Hadoop的版本号,布局版本等。

8.hadop集群启动和关闭

1.手动逐个进程启停(不常用)

HDFS:

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

YARN:

yarn --daemon start resourcemanager|nodemanager
yarn --daemon stop  resourcemanager|nodemanager

2.shell脚本启动停止

在主节点上使用官方自带shell脚本操作

HDFS:

start-dfs.sh

stop-dfs.sh

YARN:

 start-yarn.sh

  stop-yarn.sh

HADOP:

 start-all.sh

  stop-all.sh

启动后可以用jps看看进程信息查看是否启动成功

node1
[root@node1 ~]# jps
4613 Jps
4310 ResourceManager
3721 NameNode
4444 NodeManager
3853 DataNode

node2
[root@node2 ~]# jps
1185 Bootstrap
3819 NodeManager
3614 DataNode
3950 Jps

node3
2808 NodeManager
2908 Jps
2703 DataNode

9.添加dns映射,访问web界面

hadop集群搭建 hadop集群搭建

还有一个保存和提供完成的 MapReduce 作业的历史信息的服务。

#启动
mapred --daemon start historyserver

hadop集群搭建

10.注意事项:

1.java版本要注意适配。

2.主机名 dns映射关系要注意配置完好。

3.hadop配置文件比较多,每个配置文件要检查仔细。

4.防火墙最好先关闭,搭建好后访问无误再开启把相应的端口放行。

 

 

 

- THE END -

admin

9月26日15:17

最后修改:2024年9月26日
3

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论