本章介绍如何使用HDFS FUSE访问LindormDFS。
准备运行环境
安装JDK并设置JAVA_HOME,检查JDK版本:
$JAVA_HOME/bin/java -version
CentOS/RedHat
sudo yum install java-1.8.0-openjdk-devel -y
Ubuntu
sudo apt-get update sudo apt-get install openjdk-8-jdk -y
安装FUSE库:
CentOS/RedHat
sudo yum install fuse fuse-devel fuse-libs -y
Ubuntu
sudo apt-get update sudo apt-get install fuse libfuse-dev -y
下载FUSE客户端
基于开源hadoop-2.7.7版本的FUSE客户端:下载链接。
安装FUSE客户端
解压客户端安装包,并跳转至解压后的目录。
tar -zxf ldfs-fuse-2.7.tar.gz cd ldfs-fuse-2.7
修改
etc/hadoop/hdfs-site.xml
文件,hdfs-site.xm
l文件中需要修改的内容如下所示,其中${实例ID}
需要替换为真实的实例ID。<configuration> <property> <name>dfs.nameservices</name> <value>${实例ID}</value> </property> <property> <name>dfs.client.failover.proxy.provider.${实例ID}</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <property> <name>dfs.ha.namenodes.${实例ID}</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.${实例ID}.nn1</name> <value>${实例ID}-master1-001.lindorm.rds.aliyuncs.com:8020</value> </property> <property> <name>dfs.namenode.rpc-address.${实例ID}.nn2</name> <value>${实例ID}-master2-001.lindorm.rds.aliyuncs.com:8020</value> </property> </configuration>
创建挂载目录并授权。
sudo mkdir /ldfs_fuse sudo chown $(whoami):$(whoami) /ldfs_fuse
挂载至已创建的目录。
/bin/bash bin/mount_to.sh /ldfs_fuse
查看FUSE盘。
df -h
(可选)卸载FUSE盘。
fusermount -u /ldfs_fuse
常用操作示例
写文件:
echo 'test' > /ldfs_fuse/test
读文件:
cat /ldfs_fuse/test
删除文件:
rm -f /ldfs_fuse/test
重要
HDFS FUSE挂载后的数据盘仅支持顺序写,不支持随机写。
更多操作
FUSE默认文件副本数为3,您可以通过修改配置文件etc/hadoop/hdfs-site.xml
来更改默认值。例如以下代码更改副本数为2:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
说明
默认值修改后需重新挂载才可生效。