CentOS 7.9 单机安装 Hadoop 3.3.6
CentOS 7.9 单机安装 Hadoop 3.3.6
一、Hadoop 简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
二、Hadoop 单机安装
1、下载 Hadoop 安装文件
Hadoop 目前最新的版本为 3.3.6,下载地址如下:
https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/

2、安装 Hadoop
1)修改主机名
将主机名称改为 hadoop1,命令如下:
hostnamectl set-hostname hadoop1
修改后,使用如下命令查看主机名:
hostname

2)修改主机列表
修改 /etc/hosts 中的内容,增加如下配置:

3)上传安装包到指定目录
将 hadoop-3.3.6.tar.gz 上传到指定目录,如:/home/tools/ (根据实际情况,选择一个目录存放安装包)

4)解压到指定目录
将 hadoop-3.3.6.tar.gz 解压到 /home/hadoop/ 目录下(根据实际情况,选择安装目录),命令如下:
tar -zxvf hadoop-3.3.6.tar.gz -C /home/hadoop/

5)创建数据存储目录
命令如下:
mkdir -p /home/hadoop/hdfs/tmp /home/hadoop/hdfs/data /home/hadoop/hdfs/name

3、修改配置
1)修改环境变量
在 /etc/profile 文件内容最后,追加环境变量,命令如下:
vim /etc/profile
增加内容如下:
export HADOOP_HOME=/home/hadoop/hadoop-3.3.6
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

使用如下命令,使环境变量生效:
source /etc/profile
使用如下命令,验证环境变量是否生效:
echo $HADOOP_HOME

2)修改 hadoop-env.sh
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/hadoop-env.sh,设置 JAVA_HOME 和 HADOOP_HOME 变量。
通过如下命令,查询 JAVA_HOME 配置:
echo $JAVA_HOME

修改内容如下:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
export HADOOP_HOME=/home/hadoop/hadoop-3.3.6

设置 root 账户,修改内容如下:
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

3)修改 core-site.xml
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/core-site.xml,在 configuration 标签中,添加如下内容:
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9090</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdfs/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

4)修改 hdfs-site.xml
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/hdfs-site.xml,在 configuration 标签中,添加如下内容:
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,配置默认是3,应小于datanode机器数量</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
<description>将绑定IP改为0.0.0.0,而不是本地回环IP,这样,就能够实现外网访问本机的50070端口了</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

5)修改 mapre-site.xml
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/mapre-site.xml,在 configuration 标签中,添加如下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

6)修改 yarn-site.xml
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/yarn-site.xml,在 configuration 标签中,添加如下内容:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

7)格式化 HDFS
格式化 HDFS,命令如下:
hdfs namenode -format


8)关闭防火墙
关闭防火墙,命令如下:
systemctl stop firewalld
查看防火墙状态,命令如下:
systemctl status firewalld

4、启动 Hadoop
启动 Hadoop 服务,命令如下:
cd /home/hadoop/hadoop-3.3.6/sbin
./start-all.sh

注意:此时有报错信息:“localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).”
此时,需要配置免密登录。
生产私钥,命令如下(输入两次回车):
ssh-keygen -t rsa -P ""

复制授权秘钥,命令如下:
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

再次执行 ./start-all.sh,即可正常执行。

使用 jps 命令查看进程,效果如下(出现6个进程为正常):

5、访问 Hadoop 管理页面
1)http://Hadoop机器IP:50070/
http://Hadoop机器IP:50070/




2)http://Hadoop机器IP:8088/
http://Hadoop机器IP:8088/



浙公网安备 33010602011771号