在 CentOS 上“集成 HDFS”一般有几种常见场景,下面按最常见、最实用的方式给你讲清楚,你可以根据用途对号入座。
目标:在 CentOS 上执行
hdfs dfs命令、跑 MapReduce / Spark / Flink 等
yum install -y java-1.8.0-openjdk-devel
java -version
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt
vi /etc/profile
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
cd $HADOOP_HOME/etc/hadoop
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<name>hdfs://namenode-host:9000</name>
</property>
</configuration>
hdfs dfs -ls /
✅ 这样就完成了 CentOS 集成 HDFS 客户端
NameNode / DataNode
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/data</value>
</property>
hdfs namenode -format
start-dfs.sh
像本地磁盘一样用 HDFS
yum install -y fuse hadoop-hdfs-fuse
hadoop-fuse-dfs dfs://namenode:9000 /mnt/hdfs
cd /mnt/hdfs
ls
⚠️ 性能一般,适合读多写少
hadoop-clientpip install hdfsfrom hdfs import InsecureClient
client = InsecureClient('http://namenode:9870')
client.list('/')
| 问题 | 原因 |
|---|---|
| Permission denied | 用户不一致 |
| Cannot connect | 防火墙 / 端口 |
| UnknownHost | /etc/hosts 未配 |
systemctl stop firewalld
我可以直接给你一套可执行的配置清单。