计算机开发环境:腾讯云云服务器 CentOS 7.6 64位 root用户
基础环境准备:
- Hadoop由JAVA开发,安装配置Hadoop之前需要安装配置JDK,可参考JDK安装配置。
- Hadoop监听某些端口,需要将这些端口开放,此处直接关闭防火墙,可参考CentOS防火墙相关操作
- 配置ssh免密登录,可参考Hadoop伪分布式集群ssh免密码登录
Hadoop下载
访问北京理工大学镜像网站下载或者键入wget命令下载
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
Hadoop解压
键入解压命令,路径自定义
tar -zxf hadoop-3.2.1.tar.gz -C ../software
查看目录检验解压文件
配置环境变量
此处直接配置在root用户下
打开root用户根目录下的隐藏文件.bashrc
vim /root/.bashrc
在.bashrc中输入以下设定配置环境变量
# Hadoop
export HADOOP_HOME=/root/software/hadoop-3.2.1 #路径与自定义路径一致
export PATH=$HADOOP_HOME/bin:$PATH
使得.bashrc文件修改生效
source /root/.bashrc
查看Hadoop版本
hadoop version
出现类似如下信息表示配置成功
Hadoop运行文件配置
共有五个配置文件需要相关信息设定以支持Hadoop运行
配置文件位于/root/software/hadoop-3.2.1/etc/hadoop
,Hadoop根目录下的ect/hadoop
配置文件一:hadoop-env.sh
配置 hadoop 运行时依赖的 java 环境
将JDK路径添加至该文件,与先前JDK环境配置保持一致,随后保存退出
# JDK
export JAVA_HOME=/root/software/jdk-14.0.2 #路径与自定义路径一致
配置文件二:core-site.xml
配置 hadoop 运行过程中临时文件存放的路径及 hdfs 通信方式
将以下代码进行相关修改后粘贴至该文件,随后保存退出
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://sunshine:9000</value> <!--sunshine为本机的hostname,9000为端口号,终端键入hostname可查看hostname-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/software/hadoop-3.2.1/tmp</value> <!--临时文件目录,与自定义路径保持一致-->
</property>
</configuration>
配置文件三:hdfs-site.xml
配置 hdfs 运行时存放的 name 空间元数据和 data 数据块路径
将以下代码进行相关修改后粘贴至该文件,随后保存退出
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/root/software/hadoop-3.2.1/tmp/dfs/name</value> <!--name 空间元数据文件夹-->
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/software/hadoop-3.2.1/tmp/dfs/data</value> <!--data 数据块文件夹-->
</property>
<property>
<name>dfs.replication</name> <!--上传至hdfs文件的副本数,包括本身,由于此处采用本机伪分布,则值设定为1-->
<value>1</value>
</property>
</configuration>
配置文件四:yarn-site.xml
配置 yarn 资源管理相关信息
将以下代码进行相关修改后粘贴至该文件,随后保存退出
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name> <!--主机名-->
<value>sunshine</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>5</value>
</property>
</configuration>
配置文件五:mapred-site.xml
配置 mapreduce 相关所需资源
将以下代码进行相关修改后粘贴至该文件,随后保存退出
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name> <!--内存配置,自定义设定,此处为1G-->
<value>1024</value>
</property>
Hadoop namenode 初始化
键入初始化命令
hadoop namenode -format
出现如下实例表明namenode初始化成功
启动Hadoop
Hadoop主要的五个进程:namenode、datanode、secondarynamenode、resourcemanager、nodemanager,其中namenode、datanode、secondarynamenode由hdfs提供,resourcemanager、nodemanager由yarn提供。
在目录/root/software/hadoop-3.2.1/sbin
下,包含了各个进程的启动和关闭文件
start-all.sh和stop-all.sh分别可以启动全部进程和结束全部进程,键入命令启动全部进程
./start-all.sh
随后华丽报错如下
报错说明没问题,如果在root用户下安装配置Hadoop会出现上述问题,需要额外配置操作,非root用户不需要,操作如下,详细可参考。
在目录/root/software/hadoop-3.2.1/sbin
下
对于start-dfs.sh
和stop-dfs.sh
文件,文件顶部粘贴加入以下配置信息
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
对于start-yarn.sh
和stop-yarn.sh
文件,文件顶部粘贴加入以下配置信息
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
随后重新启动
./start-all.sh
Web端查看
链接如下,ip更改为Hadoop部署机器ip,端口默认9870。
http://119.75.217.110:9870/dfshealth.html#tab-overview