SmartData 3.1.x版本支持改写Jindo HDFS客户端级别的路径,以减少集群迁移时修改路径的工作量。例如,通过将HDFS地址重写至OSS地址,方便您迁移HDFS中的数据至OSS后,无需改动业务逻辑中的数据地址,即可访问数据。

使用限制

仅支持Hadoop 2.x版本,不支持Hadoop 3.x版本。

开启路径改写功能

  1. 进入SmartData服务。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,单击集群服务 > SmartData
  2. 单击配置页签。
  3. 服务配置区域,单击smartdata-site页签。
  4. 服务配置区域,单击右侧的自定义配置
  5. 新增配置项对话框中,添加Keyfs.hdfs.implValuecom.aliyun.emr.fs.hdfs.JindoHdfsShimsFileSystem的配置项。
    add-fs
  6. 单击确定
  7. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框中,输入执行原因,开启自动更新配置
    3. 单击确定

改写配置路径

  1. 进入SmartData服务。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,单击集群服务 > SmartData
  2. 单击配置页签。
  3. 服务配置区域,单击smartdata-site页签。
  4. 服务配置区域,单击右侧的自定义配置
  5. 新增配置项对话框中,添加如下两个配置项。
    参数 描述 参数值
    fs.jindo.shim.path-rewrite.<RULE-NAME>.source 路径重写的挂载点。
    • HA集群

      hdfs://emr-cluster/<osspath>

    • 非HA集群

      hdfs://<your_hostname>:9000/<osspath>

      说明 <your_hostname>您可以通过SSH登录主节点,执行hostname命令获取,SSH登录主节点详情请参见登录集群
    fs.jindo.shim.path-rewrite.<RULE-NAME>.target 您实际访问的路径。 oss://<your_bucket>/<testpath>

    RULE-NAME需要您自定义。

  6. 单击确定
  7. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框中,输入执行原因,开启自动更新配置
    3. 单击确定

示例

HA集群,在smartdata-site页签,添加如下参数后,您访问hdfs://emr-cluster/osspath时实际访问的是oss://jindo-bucket/<testpath>的数据。
参数 参数值
fs.jindo.shim.path-rewrite.testrule.source hdfs://emr-cluster/osspath
fs.jindo.shim.path-rewrite.testrule.target oss://jindo-bucket/<testpath>
您可以通过SSH登录集群的主节点,执行如下命令,查看改写情况。
hadoop fs -ls /
通过如下信息,看到osspath已经挂载在根目录下。demo