本章介绍如何使用HDFS FUSE访问LindormDFS。
准备运行环境
安装JDK并设置JAVA_HOME,检查JDK版本:
$JAVA_HOME/bin/java -versionCentOS/RedHat
sudo yum install java-1.8.0-openjdk-devel -yUbuntu
sudo apt-get update sudo apt-get install openjdk-8-jdk -y
安装FUSE库:
CentOS/RedHat
sudo yum install fuse fuse-devel fuse-libs -yUbuntu
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.xml文件中需要修改的内容如下所示,其中${实例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>说明
默认值修改后需重新挂载才可生效。
该文章对您有帮助吗?