本文主要介紹JindoFS的外部客戶端,以及一些典型的應用情境。
概述
JindoFS外部客戶端,主要是為E-MapReduce叢集外部存取JindoFS叢集提供一種可行的方法。現在JindoFS外部客戶端只能訪問Block Storage模式下的JindoFS,不支援訪問緩衝模式下的JindoFS。實際上,緩衝模式相容OSS原始語義,因此外部存取僅需用普通OSS用戶端即可。
應用情境
JindoFS外部客戶端實現了Hadoop檔案系統的介面,在使用者程式跟E-MapReduce JindoFS Namespace服務網路相通的情況下, 使用者可以通過JindoFS外部客戶端去訪問JindoFS上儲存的資料, 但外部客戶端不能利用E-MapReduce JindoFS的資料緩衝能力,相比E-MapReduce叢集內部訪問JindoFS叢集,效能有所損失。
配置外部客戶端
已配置JindoFSBlock Storage模式的Namespace,詳情請參見JindoFSBlock Storage模式。
擷取Bigboot程式包。
在E-MapReduce叢集內部/usr/lib/bigboot-current路徑下,擷取Bigboot程式包。
說明 一般情況下,程式使用Native開發。配置環境。
設定環境變數BIGBOOT_HOME為程式安裝根目錄,將程式根目錄下ext和lib的路徑,添加到使用者使用的巨量資料元件(Hadoop或Spark等)的Classpath中。
- 從E-MapReduce叢集內部拷貝設定檔/usr/lib/bigboot-current/conf/bigboot.cfg.external,到使用者客戶機上對應的安裝目錄conf/bigboot.cfg。
配置Namespace Service。
client.namespace.rpc.port:配置JindoFS Namespace Service的監聽連接埠。client.namespace.rpc.address:配置JindoFS Namespace Service的監聽地址。說明 預設E-MapReduce叢集中的設定檔已經配置好這兩項。
配置資料訪問相關的配置項。
client.namespaces.{YourNamespace}.oss.access.bucket:配置OSS bucket選項。client.namespaces.{YourNamespace}.oss.access.endpoint:配置OSS endpoint選項。client.namespaces.{YourNamespace}.oss.access.key:配置OSS的AccessKey ID。client.namespaces.{YourNamespace}.oss.access.secret:配置OSS的AccessKey Secret。說明 其中{YourNamespace}為外部客戶端要訪問的Namespace的名稱,本文Namespace的名稱以test為例。配置樣本如下。
client.namespace.rpc.port = 8101 client.namespace.rpc.address = {RPC_Address} client.namespaces.test.oss.access.bucket = {YourOssBucket} client.namespaces.test.oss.access.endpoint = {YourOssEndpoint} client.namespaces.test.oss.access.key = {YourOssAccessKeyID} client.namespaces.test.oss.access.secret = {YourOssAccessKeySecret}
配置驗證
驗證如下資訊:
- 通過以下命令,驗證Namespace是否正確。
hdfs dfs -ls jfs://test/ - 通過以下命令,驗證資料是否可以上傳或者下載。
hdfs dfs -put /etc/hosts jfs://test/ hdfs dfs -get jfs://test/hosts