在CentOS上配置Hadoop分布式文件系统(HDFS)是一个相对复杂的过程,涉及多个步骤。以下是一个基本的配置指南,帮助你稳定配置HDFS集群:
首先,确保你的系统上安装了Java。你可以使用以下命令安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel -y
验证Java安装:
java -version
下载Hadoop安装包并解压到指定目录,例如 /opt/hadoop
:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /opt/
mv /opt/hadoop-3.3.4 /opt/hadoop
编辑 /etc/profile.d/hadoop.sh
文件,添加以下内容:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使环境变量生效:
source /etc/profile.d/hadoop.sh
编辑 $HADOOP_HOME/etc/hadoop/core-site.xml
文件,添加以下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://your_namenode_host:9000</value>
</property>
</configuration>
将 your_namenode_host
替换为你的NameNode主机名或IP地址。
编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml
文件,添加以下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
确保 /opt/hadoop/data/namenode
和 /opt/hadoop/data/datanode
目录存在,如果不存在,可以手动创建:
mkdir -p /opt/hadoop/data/namenode
mkdir -p /opt/hadoop/data/datanode
编辑 $HADOOP_HOME/etc/hadoop/yarn-site.xml
文件,添加以下内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
编辑 $HADOOP_HOME/etc/hadoop/mapred-site.xml
文件,添加以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在第一次启动HDFS之前,你需要格式化NameNode:
hdfs namenode -format
启动HDFS集群:
start-dfs.sh
检查HDFS是否正常运行:
hdfs dfsadmin -report
你应该能看到NameNode和DataNode的状态信息。
确保防火墙允许Hadoop使用的端口(默认是9000、50010、50020、50070、50075、50090):
firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --permanent --zone=public --add-port=50010/tcp
firewall-cmd --permanent --zone=public --add-port=50020/tcp
firewall-cmd --permanent --zone=public --add-port=50070/tcp
firewall-cmd --permanent --zone=public --add-port=50075/tcp
firewall-cmd --permanent --zone=public --add-port=50090/tcp
firewall-cmd --reload
为了方便集群管理,你可以配置SSH无密码登录:
ssh-keygen -t rsa
ssh-copy-id hadoop@your_namenode_host
将 your_namenode_host
替换为你的NameNode主机名或IP地址。
使用SCP命令同步配置文件到其他DataNode节点:
scp /etc/hadoop/core-site.xml hdfs-site.xml user@datanode:/etc/hadoop/
scp /etc/hadoop/hadoop-env.sh user@datanode:/etc/hadoop/
使用 hdfs dfs -ls /
命令检查文件系统状态,确保配置正确。
通过以上步骤,你应该能够在CentOS上成功配置HDFS集群。根据你的具体需求,可能还需要进行其他配置和调整。建议参考Hadoop官方文档进行详细配置。