温馨提示×

centos如何连接hdfs

小樊
36
2026-10-03 11:34:42
栏目: 智能运维

在 CentOS 上连接 HDFS,通常有几种方式,取决于你是 作为客户端访问 HDFS,还是 在 CentOS 上部署 Hadoop 集群。下面按常见场景说明。


一、作为客户端连接已有 HDFS(最常见)

1. 环境准备

确保 CentOS 已安装:

  • JDK(Hadoop 依赖)
java -version

若未安装:

yum install -y java-1.8.0-openjdk

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.gz -C /opt

3. 配置 core-site.xml

编辑:

vi /opt/hadoop-3.3.6/etc/hadoop/core-site.xml

示例(连接 NameNode):

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://namenode-host:9000</value>
  </property>
</configuration>

替换 namenode-host 和端口(默认 9000 或 8020)


4. 使用 HDFS 命令

export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin

测试连接:

hdfs dfs -ls /

上传文件:

hdfs dfs -put localfile.txt /user/test/

下载文件:

hdfs dfs -get /user/test/file.txt ./

二、通过 HTTP / WebHDFS 访问(无需 Hadoop 客户端)

如果 HDFS 开启了 WebHDFS:

curl "http://namenode-host:9870/webhdfs/v1/?op=LISTSTATUS"

三、使用 Python 连接 HDFS(可选)

1. 安装 hdfs 库

pip install hdfs

2. 示例代码

from hdfs import InsecureClient

client = InsecureClient('http://namenode-host:9870', user='hadoop')
print(client.list('/'))

四、常见问题

1. 连接被拒绝

  • 防火墙未放行端口
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload

2. 无法解析主机

  • 配置 /etc/hosts
192.168.1.10 namenode-host

3. 权限错误

  • 指定用户:
hdfs dfs -put file.txt /user/hadoop/

如果你能补充说明:

  • ✅ 是 客户端连接 还是 搭建集群
  • ✅ HDFS 版本
  • ✅ 是否开启 Kerberos

我可以给你更精确的步骤。

0 踩