CentOS 7/8 单机快速搭建 HDFS 实例教程
本教程在 CentOS 7/8 上以 Hadoop 3.3.x 为例,完成 HDFS 的单机部署与验证,包含端口、目录、权限与防火墙等关键细节,可直接照做并用于学习与测试环境。
一 环境准备
sudo yum install java-1.8.0-openjdk-devel -yjava -versionsudo useradd hadoop && sudo passwd hadoop,后续操作尽量使用 hadoop 用户执行(文件权限更清晰)。二 安装与配置 Hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gzsudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoopsudo vim /etc/profile.d/hadoop.shexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile.d/hadoop.shhadoop versionsudo mkdir -p /usr/local/hadoop/data/namenode
sudo mkdir -p /usr/local/hadoop/data/datanode
sudo mkdir -p /usr/local/hadoop/tmp
sudo chown -R hadoop:hadoop /usr/local/hadoop
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</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>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
三 启动与验证
hdfs namenode -formatstart-dfs.shjpshdfs dfs -mkdir /user/test
hdfs dfs -put /etc/hosts /user/test
hdfs dfs -ls /user/test
hdfs dfsadmin -report
stop-dfs.sh四 防火墙与端口放行
sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50020/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50075/tcp
sudo firewall-cmd --permanent --zone=public --add-port=50090/tcp
sudo firewall-cmd --reload
五 常见问题与优化建议
ssh-keygen -t rsa
ssh-copy-id hadoop@<namenode_host>