在 CentOS 上“连接 HDFS 存储”通常有两种常见场景,我先说明,然后分别给出做法:
作为 HDFS 客户端(最常见)
在 CentOS 上安装 Hadoop 客户端,通过命令行访问已有的 HDFS 集群。
CentOS 挂载 HDFS 为本地文件系统
通过 hdfs-nfs 或 goofys / hadoop-fuse 等方式把 HDFS 挂载成本地目录。
下面分别说明。
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.tar.gz -C /opt/
ln -s /opt/hadoop-3.3.6 /opt/hadoop
vi ~/.bashrc
添加:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
source ~/.bashrc
编辑:
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)
hdfs dfs -ls hdfs://namenode-host:8020/
或:
hdfs dfs -put test.txt /
hdfs dfs -ls /
yum install fuse
$HADOOP_HOME/bin/hdfs fuse_dfs dfs://namenode:8020 /mnt/hdfs
yum install golang fuse
go install github.com/kahing/goofys@latest
挂载:
goofys hdfs://namenode:8020 /mnt/hdfs
hdfs dfs -chmod 777 /user
或配置:
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
/etc/hosts 添加 NameNode 主机映射| 方式 | 适用场景 |
|---|---|
| hdfs 命令行 | 运维、开发、批处理 |
| FUSE 挂载 | 需要本地路径访问 HDFS |
如果你能告诉我:
我可以给你完全贴合你环境的步骤。