在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其他节点以测试网络连通性。