在CentOS上稳定运行HDFS(Hadoop分布式文件系统)需要遵循一系列步骤,并注意一些常见问题。以下是一个详细的指南:
安装Java
sudo yum install java-1.8.0-openjdk-devel
下载并解压Hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
配置Hadoop环境变量
编辑 /etc/profile.d/hadoop.sh
文件,添加以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source /etc/profile.d/hadoop.sh
配置Hadoop
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
格式化NameNode
hdfs namenode -format
启动HDFS
start-dfs.sh
验证HDFS状态
hdfs dfsadmin -report
权限问题
sudo chown -R hadoop:hadoop /usr/local/hadoop
防火墙设置
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8088/tcp
sudo firewall-cmd --reload
SELinux设置
setenforce 0 # 临时禁用SELinux
或者修改 /etc/selinux/config
文件,将 SELINUX=enforcing
改为 SELINUX=disabled
。时间同步
sudo yum install ntp -y
sudo systemctl start ntpd
sudo systemctl enable ntpd
SSH免密登录
ssh-keygen -t rsa
authorized_keys
文件中,实现免密登录。通过以上步骤,你应该能够在CentOS上成功安装和配置HDFS。如果在过程中遇到任何问题,请参考Hadoop官方文档或社区资源寻求帮助。