全文主要参考链接:如何在CentOS上安装Hadoop?详细步骤教程-HCRM博客
一、环境准备
在安装Hadoop前,需确保系统满足以下条件:
- 操作系统:CentOS 7或更高版本(推荐使用Minimal安装模式)。
- Java环境:Hadoop依赖Java运行,需安装JDK 1.8及以上版本。
- 用户权限:建议创建专用用户(如
hadoop
)进行操作,避免使用root账户。
1、卸载java
Hadoop运行依赖Java环境,我本身有环境,但由于我本地没有依赖Java的应用+后面配置文件时遇到问题,所以我直接选择卸了旧版重装,不需要卸载的直接跳过1
卸载旧的java
rpm -qa | grep java
# 卸载旧版本 Java 和相关数据包
sudo yum -y remove java-1.6.0-openjdk-*
sudo rpm -e --nodeps tzdata-java-2020a-1.el7.noarch
# 刷新配置文件
source /etc/profile
# 验证
java
java -version
卸载成功
2、安装java
# 查看系统是否已安装Java
java -version
# 若未安装,使用yum安装OpenJDK
sudo yum install -y java-1.8.0-openjdk-devel
# 配置环境变量
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> /etc/profile
执行source /etc/profile
使配置生效。
关于环境变量:/etc/profile和~/.bash_profile都是配置文件。其中/etc/profile作用于系统中的所有用户,~/.bash_profile作用于当前用户
3、创建hadoop用户
# 添加用户并设置密码
sudo useradd hadoop
# 要输入两次:首次+确认,可设为123456,不合规不用理
sudo passwd hadoop
# 赋予sudo权限(可选)
sudo usermod -aG wheel hadoop
二、Hadoop安装与配置
1、下载与解压hadoop
访问[Hadoop官网](https://hadoop.apache.org/)下载稳定版本(如3.3.6),通过命令行操作:
# 切换至hadoop用户
su - hadoop
# 下载并解压
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /home/hadoop/hadoop
2、配置环境变量
编辑~/.bashrc
文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/home/hadoop/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
执行source ~/.bashrc
使配置生效。
3、修改Hadoop配置文件
Hadoop的核心配置文件位于$HADOOP_HOME/etc/hadoop
目录,需调整以下文件:
core-site.xml(全局配置)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml(HDFS配置)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>
mapred-site.xml(MapReduce配置)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml(资源调度配置)
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>XXXX</value>
</property>
</configuration>
注意:属性yarn.application.classpath的value获取办法,命令行输入:hadoop classpath,用输出的值把XXXX替换。
参考链接:错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster-CSDN博客
4、配置SSH免密登录
Hadoop集群节点间需通过SSH通信,配置本地免密登录:
ssh-keygen -t rsa # 执行时一路回车即可
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 测试是否成功
ssh localhost
三、启动与验证
1、更改目录权限
sudo chown -R hadoop:hadoop /home/hadoop/hadoop/
sudo chmod -R 755 /home/hadoop/hadoop/
2、格式化HDFS
# 首次启动前需格式化文件系统
hdfs namenode -format
3、启动Hadoop集群
# 启动HDFS
start-dfs.sh
# 启动YARN
start-yarn.sh
4、查看进程
通过jps命令查看进程,确认NameNode
、DataNode
、ResourceManager
等是否正常运行。
5、访问Web界面
HDFS管理界面:http://服务器IP:9870
YARN管理界面:http://服务器IP:8088
6、运行测试任务
执行Hadoop自带的WordCount示例:
# 创建输入目录
hdfs dfs -mkdir /input
# 上传测试文件
hdfs dfs -put $HADOOP_HOME/LICENSE.txt /input
# 运行任务
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output
# 查看结果
hdfs dfs -cat /output/*
四、常见问题与解决建议
1、Java路径错误:确保JAVA_HOME
在hadoop-env.sh
中正确配置。
2、端口冲突:检查9870、9000、8088等端口是否被占用。
3、权限不足:Hadoop数据存储目录需赋予hadoop
用户所有权。
4、网络防火墙问题:
大功告成~