hdfs文件系统挂载
阅读原文时间:2023年07月09日阅读:3

简要说明:

使用fuse将hdfs文件系统挂载远程服务器上,像使用nfs和glusterfs那样可以挂载共享存储

fuse可以编译安装或者通过CDH或ambari源yum安装
此处使用ambari
配置ambari官方源,然后就可以yum安装了

sudo wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.5/ambari.repo -O /etc/yum.repos.d/ambari.repo

sudo wget –nv http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.4.0/hdp.repo -O /etc/yum.repos.d/hdp.repo

sudo wget -nv http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.4.0/hdp.gpl.repo -O /etc/yum.repos.d/hdp.gpl.repo
yum install hadoop-hdfs-fuse -y

注意:安装fuse只需要在客户端(即需要挂载hdfs的服务器上安装). hadoop集群上不需要安装

hadoop下载地址

https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/

部署hadoop集群

略....
此处可以选在自己的安装方法.如:CDH,HDP,或者apache hadoop
就本文来说:hadoop集群地址:

hdfs://192.168.103.220:9000

配置环境变量


export LD_LIBRARY_PATH=/usr/hdp/2.6.4.0-91/usr/lib/:/usr/local/lib:/usr/lib:$LD_LIBRARY_PATH:$HADOOP_HOME/build/c++/Linux-amd64-64/lib:${JAVA_HOME}/jre/lib/amd64/server

echo "user_allow_other" >> /etc/fuse.conf

切换到hdfs用户
cd /usr/hdp/2.6.4.0-91/hadoop
./bin/hadoop-fuse-dfs hdfs://192.168.103.220:9000 /mnt

说明:hdfs://192.168.103.220:9000为需要挂载的hdfs目录,此处表示根,注意端口是否默认还是自定义。注意修改

[root@node1 hadoop]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda3 xfs 18G 15G 3.2G 83% /
devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs tmpfs 1.4G 9.7M 1.4G 1% /run
tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/sda1 xfs 97M 97M 96K 100% /boot
tmpfs tmpfs 283M 0 283M 0% /run/user/0
fuse_dfs fuse.fuse_dfs 36G 0 36G 0% /mnt
[root@node1 hadoop]#

注意权限
使用用户要和hdfs集群用户一致

这时候 在本地读写,在hdfs集群就可以看到数据来
本地:

[hadoop@node1 ~]$ cd /mnt/
[hadoop@node1 mnt]$ ls
test
[hadoop@node1 mnt]$ echo "aaa" >> test/a.txt
[hadoop@node1 mnt]$

集群:

[hadoop@k8s-node2 hadoop-2.7.3]$ ./bin/hadoop fs -cat /test/a.txt
11
111
111
111
222
111
aaa