文章目录
- 概述
- 下载
- 解压安装
- 伪分布式模式
- 配置hdfs
- 配置hadoop-env.sh
- ssh免密登录模式设置
- 初始化HDFS
- 启动hdfs
- 配置yarn
- 启动yarn
概述
该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本,所以有些配置,是可以不用做的,下面仅记录新增操作,其他操作参见其他文章Hadoop3.2.1安装-单机模式和伪分布式模式。
下载
https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/
下载hadoop-3.3.6.tar.gz版本
解压安装
tar -zxvf hadoop-3.3.6.tar.gz
修改环境变量
vi /etc/profile
增加以下内容:
# Hadoop Environment Variables
export HADOOP_HOME=/home/XXX/hadoop-3.3.6
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
# 刷新配置
source /etc/profile
到bin目录下,查看版本
./hadoop version
可以看到显示V3.3.6,配置安装成功,若直接以单机模式运行,到这里已经完成了安装。但是单机模式无法使用hdfs分布式文件系统功能。所以继续配置 伪分布式模式。
伪分布式模式
配置hdfs
etc/hadoop/core-site.xml文件配置:
<configuration>
<!-- 配置dataNode保存数据的位置 --><property><name>hadoop.tmp.dir</name><value>/home/XXX/hadoop-3.3.6/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:39000</value></property>
</configuration>
配置hdfs文件系统访问的默认根路径。
etc/hadoop/hdfs-site.xml文件配置:
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>/home/XXX/hadoop-3.3.6/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/home/XXX/hadoop-3.3.6/tmp/dfs/data</value></property><property><name>dfs.namenode.http-address</name><value>0.0.0.0:9870</value></property>
</configuration>
配置hadoop-env.sh
为了防止后续会奇怪的错误,建议这里将hadoop和java的环境变量在hadoop下的hadoop-env.sh文件中再配置一遍:
export HADOOP_HOME=/home/XXX/hadoop-3.3.6
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"export JAVA_HOME=/home/XXX/jdk1.8.0_201-amd64
ssh免密登录模式设置
参考hadoop3.2.1安装里的设置,这里需要使用hadoop用户操作。因为伪分布式是在一台机器上起了几个进程来模拟hadoop的运行角色,各进程间需要连接通信,所以要设置免密登录。
# 切换到hadoop用户
su hadoop
# 验证是否设置免密登录
ssh localhost
显示
Last login: Mon Dec 30 16:26:29 2024
则设置成功。
初始化HDFS
# 进入hadoop bin 目录执行
hdfs namenode -format
启动hdfs
在sbin目录修改start-dfs.sh,stop-dfs.sh脚本,在文件头部增加如下脚本:HDFS_DATANODE_USER=hadoopHADOOP_SECURE_DN_USER=hadoopHDFS_NAMENODE_USER=hadoopHDFS_SECONDARYNAMENODE_USER=hadoop
要以hadoop用户启动
su hadoop
# 进入sbin,启动dfs
./start-dfs.sh
# 关闭dfs
./stop-dfs.sh
# 查看启动状态
jps
网页访问
http://localhost:9870/
查看hdfs文件目录
http://localhost:9870/explorer.html
配置yarn
etc/hadoop/mapred-site.xml文件
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.application.classpath</name><value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value></property>
</configuration>
etc/hadoop/yarn-site.xml文件
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><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_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value></property>
</configuration>
启动yarn
./start-yarn.sh
网页查看
http://localhost:8088/
至此,伪分布式模式搭建完成。
hadoop启动后,进程id信息会被存到临时目录,会被系统定时清理,等到stop的时候会找不到进程信息,所以需要修改进程id存储路径,修改hadoop-env.sh 文件
export HADOOP_PID_DIR=/usr/local/hadoop/pids/