本文主要介绍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