本文主要介紹JindoFS的外部客戶端,以及一些典型的應用場景。
概述
JindoFS外部客戶端,主要是為E-MapReduce集群外部訪問JindoFS集群提供一種可行的方法。現在JindoFS外部客戶端只能訪問塊存儲模式下的JindoFS,不支持訪問緩存模式下的JindoFS。實際上,緩存模式兼容OSS原始語義,因此外部訪問僅需用普通OSS客戶端即可。
應用場景
JindoFS外部客戶端實現了Hadoop文件系統的接口,在用戶程序跟E-MapReduce JindoFS Namespace服務網絡相通的情況下, 用戶可以通過JindoFS外部客戶端去訪問JindoFS上存儲的數據, 但外部客戶端不能利用E-MapReduce JindoFS的數據緩存能力,相比E-MapReduce集群內部訪問JindoFS集群,性能有所損失。
配置外部客戶端
已配置JindoFS塊存儲模式的Namespace,詳情請參見JindoFS塊存儲模式。
-
獲取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