Todos los productos
Search
Centro de documentos

E-MapReduce:Acceso a OSS-HDFS desde EMR Hive o Spark

Última actualización: Sep 04, 2026

Los clústeres de E-MapReduce (EMR) con versión 3.42 o posterior, o versión 5.8.0 o posterior, admiten OSS-HDFS (JindoFS) como almacén de datos. OSS-HDFS ofrece aceleración de caché y autenticación mediante Ranger, lo que mejora el rendimiento y simplifica la migración de HDFS en escenarios ETL de big data que utilizan Hive o Spark. Este tema describe cómo usar Hive o Spark en un clúster de EMR para acceder a los datos en OSS-HDFS.

Contexto

OSS-HDFS es un servicio de almacenamiento de lagos de datos nativo de la nube. Gracias a su gestión unificada de metadatos, es totalmente compatible con la interfaz del sistema de archivos HDFS y proporciona soporte integral para POSIX. Esto lo hace ideal para una amplia variedad de escenarios de computación de lagos de datos en big data e IA. Para obtener más información, consulte What is OSS-HDFS?.

Requisitos previos

Debe haber creado un clúster de EMR. Para obtener más información, consulte Create a cluster.

Procedimiento

  1. Step 1: Enable OSS-HDFS

  2. Step 2: Obtain the OSS-HDFS endpoint

  3. Step 3: Use OSS-HDFS in an EMR cluster

Paso 1: Habilitar OSS-HDFS

Habilite OSS-HDFS y otorgue los permisos de acceso obligatorios. Para obtener más información, consulte Enable OSS-HDFS.

Paso 2: Obtener el endpoint de OSS-HDFS

En la página

Overview

de su bucket en la consola de OSS, dentro de la sección

Access Domain Names

, copie el endpoint de la fila

HDFS Service

. Necesitará este endpoint para crear una tabla de Hive en

Step 3: Use OSS-HDFS in an EMR cluster

. El formato del endpoint es

<Bucket-name>.<region>.oss-dls.aliyuncs.com

.

Paso 3: Usar OSS-HDFS en un clúster de EMR

Nota

Este tema utiliza Hive como ejemplo para demostrar cómo operar con datos en OSS-HDFS. Puede seguir pasos similares para realizar las mismas operaciones con Spark.

  1. Inicie sesión en el clúster. Para obtener más información, consulte Log on to a cluster.

  2. Cree una tabla de Hive que apunte a OSS-HDFS.

    1. Ejecute el siguiente comando para ingresar a la línea de comandos de Hive.

      hive
    2. Ejecute el siguiente comando para crear una base de datos que apunte a OSS-HDFS.

      CREATE DATABASE if not exists dw LOCATION 'oss://<your-oss-hdfs-endpoint>/<path>';
      Nota
      • En el comando anterior,dw es el nombre de la base de datos,<path> es una ruta arbitraria y <your-oss-hdfs-endpoint> es el endpoint de OSS-HDFS que obtuvo en Step 2: Obtain the OSS-HDFS endpoint.

      • Este ejemplo utiliza el endpoint de OSS-HDFS como prefijo de ruta. Si desea apuntar a OSS-HDFS usando únicamente el nombre del bucket, puede configurar un endpoint a nivel de bucket o global. Para obtener más información, consulte Connect to OSS-HDFS from a non-EMR cluster.

    3. Ejecute el siguiente comando para usar la nueva base de datos.

      use dw;
    4. Ejecute el siguiente comando para crear una tabla en la nueva base de datos.

      CREATE TABLE IF NOT EXISTS employee(eid int, name String,salary String,destination String)
      COMMENT 'Employee details';
    5. Ejecute el siguiente comando para consultar la información de la tabla.

      desc formatted employee;

      Se devuelve el siguiente resultado. El campo

      Location

      muestra que la tabla apunta a una ruta en OSS-HDFS.

      # col_name              data_type               comment
      eid                     int
      name                    string
      salary                  string
      destination             string
      # Detailed Table Information
      Database:               dw
      Owner:                  root
      CreateTime:             Fri May 06 16:40:06 CST 2022
      LastAccessTime:         UNKNOWN
      Retention:              0
      Location:               oss://****.cn-hangzhou.oss-dls.aliyuncs.com/dw/employee
      Table Type:             MANAGED_TABLE
  3. Inserte datos en la tabla.

    Utilice la sentencia INSERT INTO para escribir datos en la tabla. Esta sentencia genera un trabajo de MapReduce.

    INSERT INTO employee(eid, name, salary, destination) values(1, 'John Doe', '100.0', '');
  4. Compruebe los datos de la tabla.

    SELECT * FROM employee WHERE eid = 1;

    El resultado incluye los datos que insertó.

    OK
    1       John Doe 100.0
    Time taken: 12.379 seconds, Fetched: 1 row(s)

Autorizar el clúster de EMR

Si su clúster de EMR no utiliza el rol de RAM de instancia predeterminado AliyunECSInstanceForEMRRole, debe otorgar permisos al clúster.

El rol de RAM de instancia AliyunECSInstanceForEMRRole está asociado con la política AliyunECSInstanceForEMRRolePolicy, que incluye el permiso oss:PostDataLakeStorageFileOperation de forma predeterminada. Por lo tanto, los clústeres que utilizan el rol predeterminado pueden acceder a OSS-HDFS sin necesidad de autorización adicional.