温馨提示×

centos怎样连接hdfs存储

小樊
54
2026-10-09 08:26:12
栏目: 云计算

在 CentOS 上“连接 HDFS 存储”通常有两种常见场景,我先说明,然后分别给出做法:


一、场景说明

  1. 作为 HDFS 客户端(最常见)
    在 CentOS 上安装 Hadoop 客户端,通过命令行访问已有的 HDFS 集群。

  2. CentOS 挂载 HDFS 为本地文件系统
    通过 hdfs-nfs 或 goofys / hadoop-fuse 等方式把 HDFS 挂载成本地目录。

下面分别说明。


二、作为 HDFS 客户端连接(推荐)

1. 前置条件

  • 已有一个 HDFS 集群(NameNode 地址已知)
  • CentOS 已安装 Java(JDK 8 或 11)
java -version

2. 安装 Hadoop 客户端

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.tar.gz -C /opt/
ln -s /opt/hadoop-3.3.6 /opt/hadoop

3. 配置环境变量

vi ~/.bashrc

添加:

export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
source ~/.bashrc

4. 配置 HDFS 地址

编辑:

vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml

示例:

<configuration>
  <property>
    <name>dfs.namenode.rpc-address</name>
    <value>namenode-host:8020</value>
  </property>
</configuration>

(如有 HA,可配置 core-site.xml + hdfs-site.xml)

5. 测试连接 HDFS

hdfs dfs -ls hdfs://namenode-host:8020/

或:

hdfs dfs -put test.txt /
hdfs dfs -ls /

三、CentOS 挂载 HDFS 为本地目录(FUSE)

方法 1:使用 Hadoop 自带 FUSE(不推荐新集群)

yum install fuse
$HADOOP_HOME/bin/hdfs fuse_dfs dfs://namenode:8020 /mnt/hdfs

方法 2:使用 goofys(更稳,推荐)

yum install golang fuse
go install github.com/kahing/goofys@latest

挂载:

goofys hdfs://namenode:8020 /mnt/hdfs

四、常见问题

1. 报 Permission denied

  • HDFS 开启了权限
  • 解决:
hdfs dfs -chmod 777 /user

或配置:

<property>
  <name>hadoop.http.staticuser.user</name>
  <value>root</value>
</property>

2. 无法解析主机

  • /etc/hosts 添加 NameNode 主机映射

五、总结

方式 适用场景
hdfs 命令行 运维、开发、批处理
FUSE 挂载 需要本地路径访问 HDFS

如果你能告诉我:

  • 是否有现成 HDFS 集群
  • 是否要挂载为目录
  • Hadoop 版本

我可以给你完全贴合你环境的步骤。

0 踩