Uso de repositorios de metadatos externos en Azure HDInsight

Importante

El metastore predeterminado proporciona un nivel básico de Azure SQL Database con solo 5 DTU y 2 GB de tamaño máximo de datos (NO ACTUALIZABLE). Úselo solo con fines de control de calidad y pruebas. En el caso de las cargas de trabajo de producción o de gran volumen, se recomienda migrar a un metastore externo.

HDInsight permite tomar el control de los datos y metadatos con almacenes de datos externos. Esta característica está disponible para metastore de Apache Hive, metastore de Apache Oozie y bases de datos de Apache Ambari.

Apache Hive Metastore en HDInsight es una parte fundamental de la arquitectura de Apache Hadoop. Un metastore es el repositorio central de esquemas. El metastore lo usan otras herramientas de acceso de macrodatos, como Apache Spark, Interactive Query (LLAP), Presto o Apache Pig. HDInsight utiliza una base de datos de Azure SQL Database como Hive Metastore.

HDInsight Hive Metadata Store Architecture.

Hay dos formas de configurar una tienda de metadatos para los clústeres de HDInsight:

Tienda de metadatos predeterminada

De forma predeterminada, HDInsight crea una tienda de metadatos con cada tipo de clúster. Pero en vez de esto, puede especificar una tienda de metadatos personalizada. La tienda de metadatos predeterminada incluye las siguientes consideraciones:

  • Recursos limitados. Vea el aviso en la parte superior de la página.

  • No implica costes adicionales. HDInsight crea una tienda de metadatos con cada tipo de clúster sin ningún coste adicional para el usuario.

  • el metastore predeterminado forma parte del ciclo de vida del clúster. Al eliminar un clúster, también se eliminan la tienda de metadatos y los metadatos correspondientes.

  • El metastore predeterminado solo se recomienda para cargas de trabajo sencillas. Las cargas de trabajo que no requieren varios clústeres y no necesitan que los metadatos se conserven más allá del ciclo de vida del clúster.

  • El metastore predeterminado no se puede compartir con otros clústeres.

Tienda de metadatos personalizada

HDInsight también admite tiendas de metadatos personalizadas, que se recomiendan para clústeres de producción:

  • Especifique su propia instancia de Azure SQL Database como metastore.

  • El ciclo de vida de la metastore no está asociado a un ciclo de vida de los clústeres, por lo que puede crear y eliminar clústeres sin pérdida de metadatos. Los metadatos, como los esquemas de Hive, se conservarán incluso después de eliminar y volver a crear el clúster de HDInsight.

  • Una tienda de metadatos personalizada le permite adjuntar varios clústeres y tipos de clústeres a esa tienda de metadatos. Por ejemplo, una tienda de metadatos sencilla puede compartirse a través de clústeres de Interactive Query, Hive y Spark en HDInsight.

  • Se paga por el costo de un metastore (Azure SQL Database) de acuerdo con el nivel de rendimiento que seleccione.

  • Es posible escalar la tienda de metadatos según sea necesario.

  • El clúster y la tienda de metadatos externa deben estar hospedados en la misma región.

HDInsight Hive Metadata Store Use Case.

Creación y configuración de Azure SQL Database para la metastore personalizada

Debe crear o tener una instancia de Azure SQL Database antes de configurar un metastore de Hive personalizado para un clúster de HDInsight. Para más información, consulte Inicio rápido: Creación de una base de datos única en Azure SQL Database.

Al crear el clúster, el servicio HDInsight necesita conectarse al metastore externo y comprobar las credenciales. Configure las reglas de firewall de Azure SQL Database para permitir que los recursos y servicios de Azure accedan al servidor. Habilite esta opción en Azure Portal; para ello, seleccione Establecer el firewall del servidor. A continuación, seleccione No en Denegar acceso de red pública y en Permitir que los servicios y recursos de Azure accedan a este servidor para Azure SQL Database. Para más información, consulte Creación y administración de reglas de firewall de IP.

Los puntos de conexión privados para almacenes SQL solo se admiten en los clústeres creados con outbound ResourceProviderConnection. Para más información, consulte esta documentación.

set server firewall button.

allow azure services access.

Selección de una tienda de metadatos personalizada durante la creación del clúster

En cualquier momento, puede apuntar el clúster a una instancia de Azure SQL Database creada anteriormente. Para la creación de clústeres en el portal, se especifica la opción en Almacenamiento > Configuración de Metastore.

HDInsight Hive Metadata Store Azure portal.

Directrices para el metastore de Apache Hive

Nota

Use una tienda de metadatos personalizada siempre que sea posible para ayudarle a separar los recursos de proceso (el clúster de ejecución) y los metadatos (almacenados en la tienda de metadatos). Comience con el S2, que proporciona 50 DTU y 250 GB de almacenamiento. Si percibe un cuello de botella, puede escalar la base de datos.

  • Si tiene previsto que varios clústeres de HDInsight tengan acceso a datos separados, use una base de datos independiente para la tienda de metadatos en cada clúster. Si comparte una tienda de metadatos entre varios clústeres de HDInsight, entonces los clústeres utilizan los mismos metadatos y los mismos archivos de datos de usuario subyacentes.

  • Realice una copia de la tienda de metadatos personalizada periódicamente. Azure SQL Database genera las copias de seguridad automáticamente, pero el período de tiempo de retención de dichas copias de seguridad varía. Para más información, consulte más información sobre copias de seguridad automáticas de SQL Database.

  • Localice el metastore y el clúster de HDInsight en la misma región. Esta configuración proporcionará el máximo rendimiento y los cargos de salida de red más bajos.

  • Supervise el rendimiento y la disponibilidad del metastore mediante herramientas de supervisión de Azure SQL Database o registros de Azure Monitor.

  • Cuando se crea una versión posterior de Azure HDInsight en una base de datos de metastore personalizada ya existente, el sistema actualiza el esquema del metastore. La actualización es irreversible sin tener que restaurar la base de datos a partir de la copia de seguridad.

  • Si comparte una misma tienda de metadatos entre varios clústeres, asegúrese de que todos ellos cuentan con la misma versión de HDInsight. Diferentes versiones de Hive utilizan diferentes esquemas de base de datos de tienda de metadatos. Por ejemplo, no puede compartir una metastore entre los clústeres de las versiones Hive 2.1 y 3.1.

  • En HDInsight 4,0, Spark y Hive usan catálogos independientes para acceder a tablas de SparkSQL o Hive. Una tabla creada por Spark se hospeda en el catálogo de Spark. Una tabla creada por Hive se hospeda en el catálogo de Hive. Este comportamiento es diferente a HDInsight 3.6, donde Hive y Spark compartían el catálogo común. La integración de Hive y Spark en HDInsight 4.0 se basa en el conector de Hive Warehouse (HWC). HWC funciona como un puente entre Spark y Hive. Más información sobre el conector de Hive Warehouse.

  • En HDInsight 4.0, puede compartir el metastore entre Hive y Spark cambiando la propiedad metastore.catalog.default a Hive en el clúster de Spark, si así lo desea. Esta propiedad se encuentra en spark2-hive-site-override de las opciones avanzadas de Ambari. Es importante comprender que el uso compartido del metastore solo funciona para las tablas de Hive externas; no funcionará si tiene tablas de Hive o tablas ACID administradas o internas.

Actualización de la contraseña personalizada del metastore de Hive

Al usar una base de datos del metastore de Hive personalizada, tiene la posibilidad de cambiar la contraseña de la base de datos SQL. Si cambia la contraseña del metastore personalizado, los servicios de Hive no funcionarán hasta que actualice la contraseña en el clúster de HDInsight.

Para actualizar la contraseña del metastore de Hive:

  1. Abra la interfaz de usuario de Ambari.
  2. Haga clic en Services --> Hive --> Configs --> Database (Servicios > Hive > Configuraciones > Base de datos).
  3. Actualice los campos Database Password (Contraseña de la base de datos) a la nueva contraseña de la base de datos de SQL Server.
  4. Haga clic en el botón Prueba de conexión para asegurarse de que la nueva contraseña funcione.
  5. Haga clic en el botón Save (Guardar).
  6. Siga las indicaciones de Ambari para guardar la configuración y reiniciar los servicios necesarios.

Apache Oozie Metastore

Apache Oozie es un sistema de coordinación de flujos de trabajo que administra trabajos de Hadoop. Oozie es compatible con los trabajos de Hadoop para Apache MapReduce, Pig, Hive y otros. Oozie usa un metastore para almacenar los detalles sobre los flujos de trabajo. Para aumentar el rendimiento al usar Oozie, puede utilizar una base de datos de Azure SQL como almacén de metadatos personalizado. El metastore proporciona acceso a datos de trabajo de Oozie después de eliminar el clúster.

Para obtener instrucciones sobre cómo crear un Metastore de Oozie con Azure SQL Database, consulte este artículo sobre el uso de Apache Oozie para flujos de trabajo.

Actualización de la contraseña personalizada del metastore de Oozie

Al usar una base de datos del metastore de Oozie personalizada, tiene la posibilidad de cambiar la contraseña de la base de datos SQL. Si cambia la contraseña del metastore personalizado, los servicios de Oozie no funcionarán hasta que actualice la contraseña en el clúster de HDInsight.

Para actualizar la contraseña del metastore de Oozie:

  1. Abra la interfaz de usuario de Ambari.
  2. Haga clic en Services --> Oozie --> Configs --> Database (Servicios > Oozie > Configuraciones > Base de datos).
  3. Actualice los campos Database Password (Contraseña de la base de datos) a la nueva contraseña de la base de datos de SQL Server.
  4. Haga clic en el botón Prueba de conexión para asegurarse de que la nueva contraseña funcione.
  5. Haga clic en el botón Save (Guardar).
  6. Siga las indicaciones de Ambari para guardar la configuración y reiniciar los servicios necesarios.

Base de datos de Ambari personalizada

Para usar su propia base de datos externa con Apache Ambari en HDInsight, consulte Base de datos de Apache Ambari personalizada.

Pasos siguientes