在CentOS上安装Hadoop是一个涉及多个步骤的过程,包括环境准备、软件安装和配置等,以下是详细的安装步骤:
一、前期准备
1、硬件要求:确保有至少两台CentOS 7服务器(可以是虚拟机),每台服务器推荐有至少2 GB的内存和20 GB的硬盘空间。

2、网络配置:使用NET模式连接有线网络,并确保每台机器能通过主机名有效访问其他机器。
3、SSH配置:在所有节点上生成SSH密钥对,并配置免密登录,以便后续操作。
二、安装Java环境
Hadoop依赖Java环境,因此首先需要安装Java,执行以下命令安装OpenJDK:
sudo yum install y java1.8.0openjdkdevel
安装完成后,通过以下命令检查Java是否安装成功:
java version
三、下载并解压Hadoop
在所有节点上下载Hadoop的最新稳定版本,在Master节点上执行以下命令:
wget http://apache.claz.org/hadoop/common/hadoop3.3.4/hadoop3.3.4.tar.gz tar xzvf hadoop3.3.4.tar.gz sudo mv hadoop3.3.4 /usr/local/hadoop
四、配置Hadoop环境变量
编辑/etc/profile 文件,添加以下内容以设置Hadoop环境变量:

Hadoop environment variables export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后使配置生效:
source /etc/profile
五、配置Hadoop
1. 配置hadoopenv.sh
编辑$HADOOP_HOME/etc/hadoop/hadoopenv.sh 文件,设置Java环境变量:
export JAVA_HOME=/usr/lib/jvm/java1.8.0openjdk
2. 配置coresite.xml
编辑$HADOOP_HOME/etc/hadoop/coresite.xml 文件,添加以下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>3. 配置hdfssite.xml

编辑$HADOOP_HOME/etc/hadoop/hdfssite.xml 文件,添加以下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>4. 配置yarnsite.xml
编辑$HADOOP_HOME/etc/hadoop/yarnsite.xml 文件,添加以下内容:
<configuration>
<property>
<name>yarn.nodemanager.auxservices</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>5. 配置mapredsite.xml
将$HADOOP_HOME/etc/hadoop/mapredsite.xml.template 复制并重命名为mapredsite.xml,并添加以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>六、格式化HDFS并启动Hadoop集群
在Master节点上执行以下命令以格式化HDFS:
hdfs namenode format
然后启动Hadoop的NameNode和DataNode:
startdfs.sh startyarn.sh
七、验证集群状态
通过访问以下URL验证Hadoop集群是否成功启动:
NameNode的Web UI: [http://master:9870](http://master:9870)
ResourceManager的Web UI: [http://master:8088](http://master:8088)
| 步骤 | 命令或操作 | 描述 |
| 硬件准备 | 确保有至少两台CentOS 7服务器,每台服务器推荐有至少2 GB的内存和20 GB的硬盘空间 | 确保硬件满足Hadoop运行需求 |
| 网络配置 | 使用NET模式连接有线网络,并确保每台机器能通过主机名有效访问其他机器 | 确保网络通信正常 |
| SSH配置 | 在所有节点上生成SSH密钥对,并配置免密登录 | 便于后续无密码远程操作 |
| 安装Java | sudo yum install y java1.8.0openjdkdevel | 安装Java环境 |
| 下载并解压Hadoop | wget http://apache.claz.org/hadoop/common/hadoop3.3.4/hadoop3.3.4.tar.gz 等 | 获取Hadoop安装包并解压 |
| 配置Hadoop环境变量 | 编辑/etc/profile 文件,添加Hadoop环境变量 | 设置Hadoop环境变量 |
| 配置Hadoop | 编辑hadoopenv.sh、coresite.xml、hdfssite.xml、yarnsite.xml、mapredsite.xml 等文件 | 配置Hadoop相关参数 |
| 格式化HDFS并启动Hadoop集群 | hdfs namenode format、startdfs.sh、startyarn.sh | 初始化HDFS并启动Hadoop服务 |
| 验证集群状态 | 访问NameNode和ResourceManager的Web UI | 确认Hadoop集群运行状态 |
常见问题解答(FAQs)
Q1: Hadoop启动时出现“Permission denied”错误怎么办?
A1: 确保所有Hadoop相关的目录和文件都有正确的权限,特别是Hadoop的安装目录和HDFS的数据目录,应该具有适当的读写权限,可以使用chmod和chown命令来修改权限和所有权。
Q2: Hadoop集群中的节点无法相互通信怎么办?
A2: 检查网络配置,确保所有节点都能通过主机名相互访问,检查防火墙设置,确保没有阻止Hadoop所需的端口(如9000、8088等),如果问题仍然存在,可以尝试ping其他节点以测试网络连通性。
