首页 对象存储 OSS 用户指南 数据湖管理 通过RootPolicy访问OSS-HDFS服务

通过RootPolicy访问OSS-HDFS服务

OSS-HDFS服务支持RootPolicy。您可以通过RootPolicy为OSS-HDFS服务设置自定义前缀,在无需修改原有访问hdfs://前缀作业的基础上,将作业直接运行在OSS-HDFS服务上。

前提条件

使用4.6.0及以上版本JindoSDK。下载地址,请参见GitHub

操作步骤

  1. 设置RootPolicy。

    您可以通过SetRootPolicy命令为指定Bucket注册自定义前缀访问地址,配置命令如下:

    jindo admin -setRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/

    以上命令涉及的各项参数说明如下:

    • <bucket_name>:填写已开通OSS-HDFS服务的Bucket名称。

    • <dls_endpoint>:开通OSS-HDFS服务所在地域对应的Endpoint,例如cn-hangzhou.oss-dls.aliyuncs.com

      如果您不希望在每一次使用RootPolicy相关命令时重复添加<dls_endpoint>选项,您可以选择以下任意方式在Hadoop的core-site.xml文件中添加配置项。

      • 方式一

        <configuration>
            <property>
                <name>fs.oss.endpoint</name>
                <value><dls_endpoint></value>
            </property>
        </configuration>
      • 方式二

        <configuration> 
         <property>
                <name>fs.oss.bucket.<bucket_name>.endpoint</name>
                <value><dls_endpoint></value>
            </property>
        </configuration>

        完成以上配置后,以上命令可以简化为以下形式:

        jindo admin -setRootPolicy oss://<bucket_name>/ hdfs://<your_ns_name>/
    • <your_ns_name>:自定义访问OSS-HDFS服务的nsname,支持任意非空字符串,例如test,当前版本仅支持根目录。

  2. 配置Access Policy发现地址和Scheme实现类。

  3. 您需要在Hadoop的core-site.xml文件中完成以下配置项。

    <configuration>
        <property>
            <name>fs.accessPolicies.discovery</name>
            <value>oss://<bucket_name>.<dls_endpoint>/</value>
        </property>
        <property>
            <name>fs.AbstractFileSystem.hdfs.impl</name>
            <value>com.aliyun.jindodata.hdfs.HDFS</value>
        </property>
        <property>
            <name>fs.hdfs.impl</name>
            <value>com.aliyun.jindodata.hdfs.JindoHdfsFileSystem</value>
        </property>
    </configuration>

    如果您需要为多个Bucket配置Access Policy发现地址和Scheme实现类,则多个Bucket之间需使用逗号,分隔。

  4. 验证是否已成功配置RootPolicy。

    hadoop fs -ls hdfs://<your_ns_name>/

    返回以下结果,说明已成功配置RootPolicy。

    drwxr-x--x   - hdfs  hadoop          0 2023-01-05 12:27 hdfs://<your_ns_name>/apps
    drwxrwxrwx   - spark hadoop          0 2023-01-05 12:27 hdfs://<your_ns_name>/spark-history
    drwxrwxrwx   - hdfs  hadoop          0 2023-01-05 12:27 hdfs://<your_ns_name>/tmp
    drwxrwxrwx   - hdfs  hadoop          0 2023-01-05 12:27 hdfs://<your_ns_name>/user
  5. 使用自定义前缀访问OSS-HDFS服务。

    重启Hive、Spark等服务后,您可以通过使用自定义前缀访问OSS-HDFS服务。

  6. (可选)RootPolicy其他用法。

    • 列举指定Bucket当前注册的所有前缀地址

      您可以通过listAccessPolicies命令列举指定Bucket当前注册的所有前缀地址。

      jindo admin -listAccessPolicies oss://<bucket_name>.<dls_endpoint>/
    • 删除指定Bucket当前注册的所有前缀地址

      您可以通过unsetRootPolicy命令删除指定Bucket当前注册的所有前缀地址。

      jindo admin -unsetRootPolicy oss://<bucket_name>.<dls_endpoint>/ hdfs://<your_ns_name>/

相关文档

关于RootPolicy相关命令的更多信息,请参见Jindo CLI使用指南

阿里云首页 对象存储 相关技术圈