本章介紹如何使用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>
說明
預設值修改後需重新掛載才可生效。