Hadoop本地模式和伪分布式模式安装部署

Hadoop本地模式和伪分布式模式安装部署

三种部署模式

在Hadoop中,支持三种部署模式:

  • Local (Standalone) Mode:本地模式
  • Pseudo-Distributed Mode:伪分布式模式
  • Fully-Distributed Mode:完全分布式模式

区别如下:

本地模式 伪分布式 完全分布式
部署节点 单节点 单节点 多节点
文件读取 Linux服务器 HDFS HDFS
适用场景 本地调试 开发环境 生产环境

本地模式

Local模式通常用于调试,不需要我们额外启动进程。直接运行相关jar包即可。

安装JDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 创建文件夹
[root@node01 opt]# mkdir /usr/java
## 解压到指定文件夹
[root@node01 opt]# tar -zxvf jdk-8u162-linux-x64.tar.gz-C /usr/java/
## 修正所属用户及用户组
[root@node01 opt]# cd /usr/java
[root@node01 opt]# chown -R root:root /usr/java/jdk1.8.0_162/
## 配置Java环境变量,末尾追加
[root@node01 opt]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_162
export PATH=$JAVA_HOME/bin:$PATH
## 使配置生效并查看
[root@node01 opt]# source /etc/profile
## 查看java相关信息
[root@node01 java]# which java
/usr/java/jdk1.8.0_162/bin/java
[root@node01 java]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

安装Hadoop

官网下载Hadoop稳定发行版本,解压缩到指定目录。

1
2
3
4
5
6
7
8
9
10
11
12
## 解压到指定路径
[root@node01 tools]# tar -zxvf hadoop-3.2.1.tar.gz -C /opt/
## 配置HADOOP_HOME,这里可以把bin和sbin全部配上,方便后续使用。末尾追加
[root@node01 tools]# vim /etc/profile
# HADOOP_HOME
export HADOOP_HOME=/opt/hadoop-3.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
## 使配置生效并查看
[root@node01 hadoop-3.2.1]# source /etc/profile
## 查看hadoop相关信息
[root@node01 hadoop-3.2.1]# hadoop version
Hadoop 3.2.1

WordCount测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 在Linux服务器上新建文件夹和文件,用于输入。注意:这里没有新建输出文件夹。
[root@node01 hadoop-3.2.1]# mkdir input
[root@node01 hadoop-3.2.1]# cd input/
[root@node01 input]# vim word.txt
## 输入相关words,空格分隔
[root@node01 input]# cat word.txt
Hello Spark
Hello Hadoop
Hello Java
Hello Flink
## 执行wc程序
[root@node01 input]# cd /opt/hadoop-3.2.1/
[root@node01 hadoop-3.2.1]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount input/ ./output
## 执行完成之后去输出文件路径查看相关结果
[root@node01 hadoop-3.2.1]# cat output/part-r-00000
Flink 1
Hadoop 1
Hello 4
Java 1
Spark 1

伪分布式模式安装部署

这里我们基于YARN进行Hadoop的伪分布式模式安装部署。

安装JDK

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 创建文件夹
[root@node02 opt]# mkdir /usr/java
## 解压到指定文件夹
[root@node02 opt]# tar -zxvf jdk-8u162-linux-x64.tar.gz-C /usr/java/
## 修正所属用户及用户组
[root@node02 opt]# cd /usr/java
[root@node02 opt]# chown -R root:root /usr/java/jdk1.8.0_162/
## 配置Java环境变量,末尾追加
[root@node02 opt]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_162
export PATH=$JAVA_HOME/bin:$PATH
## 使配置生效并查看
[root@node02 opt]# source /etc/profile
## 查看java相关信息
[root@node02 java]# which java
/usr/java/jdk1.8.0_162/bin/java
[root@node02 java]# java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)

免密登录

1
2
3
4
5
6
7
8
9
## 首先检查一下是否可以免密登录到localhost
[root@node02 hadoop-3.2.1]# ssh localhost
## 如果不能,进行免密ssh设置,三次回车生成公钥和密钥。生成的相关信息文件存储在根目录的.ssh/路径下
[root@node02 ~]# ssh-keygen -t rsa
## 拷贝密钥,第一次登录需要输入密码
[root@node02 ~]# ssh-copy-id localhost
## 再次进行免密登录检查
[root@node02 hadoop-3.2.1]# ssh localhost
Last login: Sat Mar 27 11:56:16 2021 from ::1

安装Hadoop

官网下载Hadoop稳定发行版本,解压缩到指定目录。

1
2
3
4
5
6
7
8
9
10
11
12
## 解压到指定路径
[root@node02 tools]# tar -zxvf hadoop-3.2.1.tar.gz -C /opt/
## 配置HADOOP_HOME,这里可以把bin和sbin全部配上,方便后续使用。末尾追加
[root@node02 tools]# vim /etc/profile
# HADOOP_HOME
export HADOOP_HOME=/opt/hadoop-3.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
## 使配置生效并查看
[root@node02 hadoop-3.2.1]# source /etc/profile
## 查看hadoop相关信息
[root@node02 hadoop-3.2.1]# hadoop version
Hadoop 3.2.1

修改配置文件

这里主要涉及到五个配置文件。文件位于/hadoop-3.2.1/etc/hadoop/下。

hadoop-env.sh

1
2
## 找到对应位置,配置JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_162

core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
<configuration>
    <property>
<!--指定HDFS文件系统URI -->
        <name>fs.defaultFS</name>
        <value>hdfs://node02:9000</value>
    </property>
<property>
<!--指定hadoop数据存储的临时目录-->
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-3.2.1/data</value>
    </property>
</configuration>

hdfs-site.xml

1
2
3
4
5
6
7
<configuration>
    <property>
     <!--设置副本数,这里是单节点,只能有1个副本-->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

mapred-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
<configuration>
<property>
<!--指定MapReduce程序运行在YARN上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--MapReduce应用程序的Class路径-->
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>

yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
<configuration>
<property>
<!--指定MR走shuffle-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--指定yarn相关环境变量-->
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>

集群启动

格式化HDFS文件系统(仅初次使用)

1
[root@node02 hadoop-3.2.1]# bin/hdfs namenode -format

修改脚本启动配置文件(仅限Hadoop3.x)

在Hadoop3.x版本中,如果以root用户启动,需要先修改相关脚本文件,不然会报错。

1
2
3
4
5
6
7
8
9
## 修改sbin/start-dfs.sh和sbin/stop-dfs.sh脚本文件,新增配置参数如下(注意:放在前面)
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
## 修改sbin/start-yarn.sh 和sbin/stop-yarn.sh脚本文件,新增配置参数如下(注意:放在前面)
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

启动HDFS和YARN相关进程

1
2
3
4
5
6
7
8
9
10
11
12
## 启动HDFS相关进程
[root@node02 hadoop-3.2.1]# ./sbin/start-dfs.sh
## 启动YARN相关进程
[root@node02 hadoop-3.2.1]# ./sbin/start-yarn.sh
## 启动成功之后查看相关进程
[root@node02 hadoop-3.2.1]# jps
4146 NameNode
5346 Jps
4884 ResourceManager
4517 SecondaryNameNode
5030 NodeManager
4316 DataNode

WebUI访问

访问NameNode的Web界面:http://localhost:9870/
注意:如果选用的是Hadoop3.x以下的版本,默认的端口号应该是50070
访问YARN的Web界面:http://localhost:8088/

WordCount测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
## 在HDFS上新建文件和文件夹(文件我们可以put上去)。注意:这里没有新建输出文件夹。
[root@node02 hadoop-3.2.1]# hadoop fs -mkdir /input
## 准备好word.txt,放到input下面
[root@node02 hadoop-3.2.1]# cat word.txt
Hello Spark
Hello Flink
Hello Hadoop
Hello Java
[root@node02 hadoop-3.2.1]# hadoop fs -put word.txt /input
## 执行wordcount示例
[root@node02 hadoop-3.2.1]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /input/ /output
## 查看输出结果
[root@node02 hadoop-3.2.1]# hadoop fs -cat /output/part-r-00000
Flink 1
Hadoop 1
Hello 4
Java 1
Spark 1

集群关闭

1
2
3
4
5
6
## 关闭yarn相关的守护进程
[root@node02 hadoop-3.2.1]# sbin/stop-yarn.sh
## 关闭hdfs相关的守护进程
[root@node02 hadoop-3.2.1]# sbin/stop-dfs.sh
## 或者使用stop-all.sh直接关闭所有进程。
[root@node02 hadoop-3.2.1]# sbin/stop-all.sh

参考资料

官网文档:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 henrrywan

请我喝杯咖啡吧~

支付宝
微信