本文主要介绍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 块存储模式

  1. 获取Bigboot 程序包。

    在E-MapReduce集群内部 /usr/lib/bigboot-current路径下,获取Bigboot 程序包。

    说明 一般情况下,程序使用Native开发,若实际系统类型与E-MapReduce集群差别较大,相关的程序需重新编译,可以通过工单联系我们处理。
  2. 配置环境。

    设置环境变量BIGBOOT_HOME为程序安装根目录,将程序根目录下extlib的路径,添加到用户使用的大数据组件(Hadoop、Spark 等)的Classpath中。

  3. 从E-MapReduce集群内部拷贝配置文件/usr/lib/bigboot-current/conf/bigboot.cfg.external,到用户客户机上对应的安装目录conf/bigboot.cfg
  4. 配置Namespace Service。

    • client.namespace.rpc.port:配置JindoFS Namespace Service的监听端口。
    • client.namespace.rpc.address:配置JindoFS Namespace Service的监听地址。
      说明 默认E-MapReduce集群中的配置文件已经配置好这两项。
  5. 配置数据访问相关的配置项。

    • client.namespaces.{YourNamespace}.oss.access.bucket:配置OSS bucket选项。
    • client.namespaces.{YourNamespace}.oss.access.endpoint:配置OSS endpoint选项。
    • client.namespaces.{YourNamespace}.oss.access.key:配置OSS key选项。
    • client.namespaces.{YourNamespace}.oss.access.secret:配置OSS 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 = {YourOssKey}
      client.namespaces.test.oss.access.secret = {YourOssSecret}

配置验证

  • 通过以下命令,验证Namespace是否正确:
    hdfs dfs -ls jfs://test/
  • 通过以下命令,验证数据是否可以上传或者下载:
    hdfs dfs -put /etc/hosts  jfs://test/
    
    hdfs dfs -get jfs://test/hosts