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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)