天天看點

使用 Fuse-DFS 挂載檔案存儲HDFS版一 目的二 準備工作三 配置 Fuse-DFS四 使用 Fuse-DFS

一 目的

本文檔主要介紹如何使用 Fuse-DFS 工具實作檔案存儲HDFS版在本地檔案系統的映射。Fuse-DFS 工具在檔案存儲HDFS版上使用時需要額外的配置,詳細操作步驟請參見章節:

配置 Fuse-DFS

二 準備工作

  1. 開通檔案存儲HDFS版服務并建立檔案系統執行個體和挂載點,詳情請參見: HDFS快速入門
  2. 在 Hadoop 叢集所有節點上安裝JDK。版本不能低于1.8。
  3. 建議您使用的 Hadoop 版本不低于2.7.2,本文檔中使用的 Hadoop 版本為 Apache Hadoop 2.8.5。
  4. 在 Hadoop 叢集中配置好檔案存儲HDFS版執行個體,詳情請參見: 挂載檔案系統。
  5. 下載下傳與 Hadoop 叢集版本相同的 Hadoop 源碼包。下載下傳位址: 官方連結

三 配置 Fuse-DFS

Fuse-DFS 是 Hadoop 項目自帶的一個功能子產品,提供了使用 FUSE(使用者空間中的檔案系統)在 UNIX 檔案系統上映射 HDFS 的功能,在官方提供的 Hadoop 預編譯版本中不包含 Fuse-DFS的功能子產品,如需使用該功能需要手動編譯該功能子產品并添加到 Hadoop 用戶端中。Fuse-DFS 官方介紹文檔請參見:

MountableHDFS
  1. 在 Hadoop 用戶端上安裝依賴并載入 FUSE 子產品

執行如下指令

yum -y install fuse fuse-devel fuse-libs
modprobe fuse      
  1. 解壓 Hadoop 源碼包
tar -zxf hadoop-2.8.5-src.tar.gz      
  1. 修改代碼并編譯

在使用 fuse-dfs 挂載檔案存儲HDFS版到本地檔案系統時,會将挂載點位址的字首 "dfs://" 修改為 "hdfs://" ,導緻挂載失敗,是以需要修改代碼重新編譯,操作如下。

vim hadoop-2.8.5-src/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/fuse-dfs/fuse_options.c
将 #define NEW_HDFS_URI_LOCATION "hdfs://" 修改為 #define NEW_HDFS_URI_LOCATION "dfs://"      
使用 Fuse-DFS 挂載檔案存儲HDFS版一 目的二 準備工作三 配置 Fuse-DFS四 使用 Fuse-DFS

執行以下指令僅編譯 Hadoop 源碼中的

hadoop-hdfs-project

子產品下的

hadoop-hdfs-native-client

子子產品

cd hadoop-2.8.5-src/
mvn clean package -pl hadoop-hdfs-project/hadoop-hdfs-native-client -Pnative -DskipTests      

注意:不同的 Hadoop 版本中子子產品的

hadoop-hdfs-native-client

命名及位置可能不同 。在 Hadoop 2.7.x 版本中該子產品包含在

hadoop-hdfs-project/hadoop-hdfs

子子產品中,Hadoop 2.8.x 及之後的版本都在子產品

hadoop-hdfs-project

下。

将編譯出來的 fuse-dfs 拷貝到 Hadoop 用戶端的 bin 目錄下。

cp hadoop-2.8.5-src/hadoop-hdfs-project/hadoop-hdfs-native-client/target/main/native/fuse-dfs/fuse_dfs  ${HADOOP_HOME}/bin      
  1. Hadoop 用戶端配置環境變量
vim /etc/profile
export OS_ARCH=amd64
export LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/${OS_ARCH}/server:${HADOOP_HOME}/lib/native
export CLASSPATH=$CLASSPATH:`${HADOOP_HOME}/bin/hadoop classpath --glob`      
  1. 重新整理環境變量
source /etc/profile      

四 使用 Fuse-DFS

  1. 建立目錄
mkdir /mnt/dfs_mount      
  1. 挂載檔案存儲HDFS版到本地目錄
fuse_dfs dfs://f-xxxxx.cn-xxx.dfs.aliyuncs.com:10290/ /mnt/dfs_mount      

其中,dfs://f-xxxxx.cn-xxx.dfs.aliyuncs.com:10290 為檔案存儲HDFS版的挂載點,請根據您的實際情況替換。

檢視映射到本地的目錄

使用 Fuse-DFS 挂載檔案存儲HDFS版一 目的二 準備工作三 配置 Fuse-DFS四 使用 Fuse-DFS
  1. 驗證
cd /mnt/dfs_mount
mkdir fuse_test
echo "hello dfs" > fuse_test/fuse.txt      

在檔案存儲HDFS版上檢視建立的檔案 fuse.txt

使用 Fuse-DFS 挂載檔案存儲HDFS版一 目的二 準備工作三 配置 Fuse-DFS四 使用 Fuse-DFS
  1. 解除安裝挂載目錄
fusermount -u /mnt/dfs_mount      

注意事項:用戶端重新開機之後需要您重新挂載檔案存儲HDFS版到本地,建議您配置開機自動挂載。

了解更多關于檔案存儲HDFS版的産品資訊,歡迎通路

https://www.aliyun.com/product/alidfs

如果您對檔案存儲HDFS版有任何問題,歡迎釘釘掃描以下二維碼加入檔案存儲HDFS版技術交流群。

使用 Fuse-DFS 挂載檔案存儲HDFS版一 目的二 準備工作三 配置 Fuse-DFS四 使用 Fuse-DFS