伪分布式环境搭建

前言

本案例基于阿里云CentOS7,仅作hadoop伪分布式搭建的过程命令及技巧总结
word笔记(下载)

Java环境搭建


安装Java环境yum install java-1.8.0-openjdk-devel.x86_64
验证Java环境版本 java -version
查看Java安装地址 which javaalternatives --display java

  1. 解压hadoop安装包


安装包官网下载或者我的地址:
链接:https://124.221.138.245:32039/down/mD8mtZhm8DyP.gz
提取码:1234

  1. 解压hadoop安装包
    tar -zxvf hadoop-2.10.2-src.tar.gz

  2. 配置环境变量
    vim /etc/profile

1
2
export HADOOP_HOME = /home/Hanzl/app/hadoop-3.4.0-src  
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

验证环境变量
echo $HADOOP_HOME

Hadoop 伪分布式环境搭建

Hadoop 配置文件很多,都位于 $HADOOP_HOME/etc/hadoop 下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


下面简单的描述一下几个重要的配置文件:

hadoop-env.sh:运行 Hadoop 要用的环境变量。

core-site.xml:核心配置项,包括 HDFS、MapReduce 和 YARN 常用的 I/O 设置等。

hdfs-site.xml:HDFS 相关进程的配置项,包括 NameNode、SecondaryNameNode、DataNode 等。

yarn-site.xml:YARN 相关进程的配置项,包括 ResourceManager、NodeManager 等。

mapred-site.xml:MapReduce 相关进程的配置项。

slaves:从节点配置文件,通常每行 1 个从节点主机名。

log4j.properties:系统日志、NameNode 审计日志、JVM 进程日志的配置项。

Hadoop 的配置文件繁多,我们可采用最小配置(6 个配置文件),其余文件保留默认即可:

第 1 步:配置 hadoop-env.sh


第 2 步:配置 core-site.xml

1
2
3
4
5
6
7
8
9
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.9.2/tmp</value>
</property>

配置 fs.defaultFS 指定 Hadoop 所使用的文件系统的 URI(统一资源标识符),示例中的 URI 包含协议(HDFS)、NameNode 的 IP 地址(或者机器名)和端口(9000)。

配置 hadoop.tmp.dir 指定 Hadoop 运行时产生的临时文件的存储目录。

第 3 步:配置 hdfs-site.xml

1
2
3
4
5
6
7
8
9
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>localhost:50090</value>
</property>

配置 dfs.replication 指定数据副本的数量,由于是伪分布式形式,只有 1 个节点,所以这里设置为 1 即可。

配置 dfs.secondary.http.address 指定 Secondary Namenode 的地址和端口。

第 4 步:配置 mapred-site.xml
原文件名为“mapred-site.xml.template”,将其另存为“mapred-site.xml”以使其生效。
确认其内容如下:

1
2
3
4
5
6
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>


配置 mapreduce.framework.name 指定 MapReduce 运行在 yarn 上。

第 5 步:配置 yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>0.0.0.0:8088</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

配置 yarn.resourcemanager.hostname 指定 YARN 的 ResourceManager 的地址。 配置 yarn.nodemanager.aux-services 指定 shuffle 机制。

第 6 步:配置 slaves

1
localhost

配置集群中的从节点,一行一个机器名(或 IP 地址)。这里因为是伪分布式模式,所以 localhost 既是主节点,又是从节点。

后续操作

格式化文件系统。

在主节点 master 上执行命令“hdfs namenode -format”格式化 HDFS 文件系统。

hdfs namenode -format

执行成功后,会出现 core-site.xml 中 hadoop.tmp.dir 配置项指定的目录。

需要注意的是,格式化只需要一遍即可。如果格式化出错,修改相关配置后,需要先把 hadoop.tmp.dir 配置的目录删除,才能再次格式化。

启动 Hadoop 并验证。

1、首先启动 HDFS:
start-dfs.sh

输入root密码

通过输出可以看到 namenode、datanode 和 secondarynamenode 这 3 个进程已经启动了,而且提示了对应的日志文件(*_.out就是日志文件)。如果启动失败,可以去日志文件查看报错信息。

2、启动 YARN:
start-yarn.sh

3、验证 Hadoop 是否启动成功:
jps

Web 管理工具
HDFS Web UI http://NameNodeIP:50070
YARN Web UI http://ResourceManagerIP:8088

4、关闭
stop-yarn.sh

stop-dfs.sh