1. 安装JDK1.8
官网下载安装包,上传至服务器,解压tar包
txt
http://planetone.online/downloads/java/jdk/jdk-8u221-linux-x64.tar.gz
上传安装包至服务器并解压到指定目录:
txt
tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/module/
2. 配置java环境变量、生效
编辑 /etc/profile
文件,加入以下内容:
shell
vi /etc/profile
shell
export JAVA_HOME=/opt/module/jdk1.8.0_221
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3. 把上述环境变量添加到/etc/profile中并生效
shell
source /etc/profile
4. 检测Java版本:
shell
java -version
一、Hadoop 简介
Hadoop是一个由Apache基金会开发的开源分布式系统框架,旨在让用户能够轻松开发分布式应用程序,而无需深入了解底层的分布式细节。它能够充分利用集群计算的能力,进行高效的存储和处理大规模数据。
Hadoop框架的核心组件之一是HDFS(Hadoop Distributed File System),一个为大数据存储设计的分布式文件系统。HDFS具有高容错性,可以在低成本硬件上部署,并能提供高吞吐量的数据访问,特别适合处理超大数据集的应用场景。与传统的文件系统不同,HDFS放宽了POSIX文件系统的要求,支持流式数据访问,能够更高效地读写大规模数据。
Hadoop的核心设计理念包含两个主要组成部分:
- HDFS:为大规模数据集提供可靠的存储。
- MapReduce:为这些数据提供高效的计算能力。
通过HDFS和MapReduce的结合,Hadoop能够处理海量的数据存储与计算任务,广泛应用于大数据处理、分析和存储等领域。
二、Hadoop 单机安装
1、下载 Hadoop 安装文件
Hadoop 目前最新的版本为 3.3.6 ,下载地址如下:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/
2、安装 Hadoop
修改主机名
将主机名称改为 hadoop1,命令如下:
bash
hostnamectl set-hostname hadoop1
修改后,使用如下命令查看主机名:
bash
hostname
修改主机列表
修改 /etc/hosts 中的内容,增加如下配置:
上传安装包到指定目录
将 hadoop-3.3.6.tar.gz 上传到指定目录,如:/home/tools/ (根据实际情况,选择一个目录存放安装包)
解压到指定目录
将 hadoop-3.3.6.tar.gz 解压到 /home/hadoop/ 目录下(根据实际情况,选择安装目录),命令如下:
shell
tar -zxvf hadoop-3.3.6.tar.gz -C /home/hadoop/
创建数据存储目录
shell
mkdir -p /home/hadoop/hdfs/tmp /home/hadoop/hdfs/data /home/hadoop/hdfs/name
3、修改配置
修改环境变量
在 /etc/profile 文件内容最后,追加环境变量,命令如下:
shell
vim /etc/profile
增加内容如下:
shell
export HADOOP_HOME=/home/hadoop/hadoop-3.3.6
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
使用如下命令,使环境变量生效:
shell
source /etc/profile
使用如下命令,验证环境变量是否生效:
shell
echo $HADOOP_HOME
修改 hadoop-env.sh
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/hadoop-env.sh,设置 JAVA_HOME 和 HADOOP_HOME 变量。
通过如下命令,查询 JAVA_HOME 配置:
shell
echo $JAVA_HOME
修改内容如下:
shell
export JAVA_HOME=/opt/module/jdk1.8.0_221
export HADOOP_HOME=/home/hadoop/hadoop-3.3.6
设置 root 账户,修改内容如下:
shell
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
修改 core-site.xml
core-site.xml 文件用于配置 Hadoop 的核心组件,尤其是与 HDFS 的连接和文件系统相关的设置。
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/core-site.xml,在 configuration 标签中,添加如下内容:
重要配置项:
fs.defaultFS
:指定 Hadoop 使用的文件系统,通常设置为 HDFS。hadoop.tmp.dir
:指定 Hadoop 的临时目录,用于存储临时数据。hadoop.proxyuser.root.hosts
和hadoop.proxyuser.root.groups
:这两个配置允许用户root
代理执行某些操作。
shell
<!-- 指定 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>
修改 hdfs-site.xml
hdfs-site.xml 文件用于配置 HDFS 的特性和行为,包括数据存储和副本设置。
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/hdfs-site.xml,在 configuration 标签中,添加如下内容:
重要配置项:
dfs.replication
:指定 HDFS 中文件的副本数。dfs.namenode.name.dir
:指定 NameNode 的元数据存储目录。dfs.datanode.data.dir
:指定 DataNode 存储数据块的目录。dfs.http.address
:指定 NameNode Web UI 的访问地址dfs.permissions
:启用或禁用 HDFS 的权限检查。
shell
<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>
修改 mapred-site.xml
mapred-site.xml 文件用于配置 MapReduce 的框架和作业执行相关的设置。
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/mapred-site.xml,在 configuration 标签中,添加如下内容:
重要配置项:
mapreduce.framework.name
:指定 MapReduce 使用的计算框架。- 指定 MapReduce 任务由 YARN 管理和执行。对于 YARN 集群,
mapreduce.framework.name
必须设置为yarn
。
shell
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改 yarn-site.xml
yarn-site.xml 文件用于配置 YARN(Yet Another Resource Negotiator)相关的设置,包括资源管理和调度。
修改/home/hadoop/hadoop-3.3.6/etc/hadoop/yarn-site.xml,在 configuration 标签中,添加如下内容:
重要配置项:
yarn.nodemanager.aux-services
:指定 YARN NodeManager 附加的服务:配置 NodeManager 使用mapreduce_shuffle
服务,支持 MapReduce Shuffle 阶段。yarn.resourcemanager.address
:指定 ResourceManager 的地址:hadoop1:8032
表示 ResourceManager 监听的地址和端口号。
shell
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
格式化 HDFS
shell
hdfs namenode -format
4、启动 Hadoop
启动 Hadoop 服务
shell
cd /home/hadoop/hadoop-3.3.6/sbin
shell
./start-all.sh
注意:此时有报错信息:"localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)."此时,需要配置免密登录。
生产私钥,命令如下(输入两次回车):
shell
ssh-keygen -t rsa -P ""
复制授权秘钥,命令如下:
shell
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
再次执行
shell
./start-all.sh
即可正常执行。使用 jps 命令查看进程,效果如下(出现6个进程为正常):