本章介紹如何使用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>
說明
默認值修改后需重新掛載才可生效。
文檔內容是否對您有幫助?