sql >> Base de Datos >  >> NoSQL >> HBase

HBase y Hive:mejor juntos

Esta entrada de blog se publicó en Hortonworks.com antes de la fusión con Cloudera. Es posible que algunos enlaces, recursos o referencias ya no sean precisos.

Las computadoras se están volviendo más inteligentes y nosotros no.

–Tim Berners Lee, desarrollador web

Google, Amazon y Netflix nos han condicionado. Como consumidores, esperamos aplicaciones inteligentes que predigan, sugieran y anticipen todos nuestros movimientos. Queremos que analicen las millones de posibilidades y sugieran solo algunas que se adapten a nuestras necesidades. Queremos aplicaciones que nos lleven en un viaje personalizado a través de un mundo de infinitas posibilidades.

Estos viajes personalizados requieren sistemas para almacenar y dar sentido a grandes volúmenes de datos en un tiempo aceptable. Este ha sido el punto fuerte de Hadoop desde el primer día.

Entregar el viaje también requiere que las aplicaciones se integren directamente con análisis profundos. Esto sigue siendo un desafío, ya que la mayoría de los sistemas operativos se ejecutan fuera de Hadoop, lo que coloca los datos operativos y los análisis en silos separados.

Tecnologías como Apache Hadoop YARN y Apache Slider están comenzando a romper estos silos. YARN brinda controles de aislamiento de recursos de Hadoop que hacen posible analizar en profundidad los datos de la aplicación en el lugar mientras brinda respuestas en un marco de tiempo aceptable. Y Apache Slider facilita la implementación de sistemas operativos de ejecución prolongada en Hadoop.

YARN es el centro arquitectónico de Hadoop que permite que múltiples motores de procesamiento de datos, como SQL interactivo, transmisión en tiempo real, ciencia de datos y procesamiento por lotes, manejen los datos almacenados en una sola plataforma, desbloqueando un enfoque completamente nuevo para el análisis. Esto proporciona una integración perfecta de los sistemas operativos y analíticos y una base sobre la cual la empresa puede construir una arquitectura de datos moderna (MDA).

El estado del arte en Hadoop

Actualmente, es posible combinar operaciones y análisis en Hadoop y, de hecho, vemos que muchos de nuestros clientes lo hacen.

Las piezas que necesitas ya están en Hadoop:

  • Apache HBase es la base de datos NoSQL para Hadoop y es excelente para actualizaciones rápidas y acceso a datos de baja latencia.
  • Apache Phoenix (iniciado por Salesforce) es una máscara de SQL para datos en HBase. Phoenix ya está investigando la integración con administradores de transacciones como Tephra (de Cask).
  • Apache Hive es el motor SQL de facto para Hadoop que proporciona el análisis SQL más profundo y admite patrones de consulta interactivos y por lotes. Consulte nuestra publicación reciente Stinger.Next para conocer avances como Hive LLAP.

Vemos a nuestros clientes usar estas partes hoy para crear aplicaciones con análisis profundo, por ejemplo, un patrón muy común que vemos incluye:

  • Utilizar HBase como almacén de datos operativos en línea para actualizaciones rápidas de datos importantes, como la partición actual por hora, día, etc.
  • Ejecución de consultas operativas directamente en HBase utilizando Apache Phoenix.
  • Envejecimiento de datos en tablas de HBase a Hive utilizando patrones ETL estándar.
  • Realización de análisis SQL profundos con Hive

Esto funciona, pero crea una serie de complejidades para los desarrolladores. Por ejemplo:

  • ¿Qué interfaz SQL debo usar y cuándo? ¿Utilizo Hive, que ofrece SQL profundo pero bajo TPS? ¿O uso Phoenix con alto TPS y SQL básico? ¿O uso ambos?
  • Si uso ambos, ¿cómo comparto datos entre Hive y HBase?
  • ¿Cómo ajusto mi clúster para que pueda ubicar HBase y Hive en el mismo lugar sin dejar de cumplir mis SLA?

Estas preguntas sugieren que se necesita una integración más profunda para simplificar la creación de aplicaciones con análisis profundos en Hadoop.

HBase y Hive:mejor juntos

¿Qué oportunidades existen para una integración más profunda? Actualmente, los clientes están reuniendo soluciones que aprovechan HBase, Phoenix, Hive, etc. para crear un sistema de circuito cerrado personalizado. para datos operativos y análisis SQL. Creemos que existe la oportunidad de proporcionar una integración lista para usar con facilidad de uso y capacidades adicionales, como transacciones, conmutación por error entre centros de datos, etc.

Hive, HBase y Phoenix tienen una comunidad de desarrolladores muy activa y se utilizan en producción en innumerables organizaciones. Estas son capacidades operativas sólidas y comprobadas que pueden ser la base y el futuro del procesamiento de transacciones en Hadoop.

Por lo tanto, utilizando el mismo enfoque que la exitosa Iniciativa Stinger, Hortonworks busca invertir más en estos proyectos centrales y generar impulso en lugar de abandonarlos y comenzar de nuevo. Planeamos invertir en mejoras que promuevan una experiencia operativa y analítica integrada a través de Hive y HBase estrechamente integrados. Esto aborda casos de uso reales e interesantes de una manera que preserva las inversiones y genera un valor real para los clientes.

Vemos cuatro áreas principales de desarrollo para ayudar a hacer realidad la visión de las aplicaciones inteligentes:

1. Una capa SQL unificada con Hive

Los desarrolladores que crean aplicaciones SQL no deberían tener que elegir entre diferentes soluciones SQL, cada una con sus propias fortalezas y debilidades. Visualizamos una capa SQL unificada, habilitada por el soporte de Hive para SQL:2011, que usa de forma transparente el motor apropiado basado en el patrón de acceso a la consulta.

Esta combinación proporciona un solo dialecto SQL y un solo conector. Los arquitectos de datos y los DBA pueden determinar dónde deben almacenarse los datos en función de los patrones de uso sin sobrecargar las aplicaciones de los usuarios con la necesidad de conectarse a varios sistemas.

2. Mejora de HBase como una tienda operativa

HBase está madurando rápidamente como una tienda operativa y podrá asumir cargas de trabajo cada vez más exigentes. El año pasado, HBase agregó una interfaz SQL, indexación secundaria y alta disponibilidad. Estas funciones continuarán madurando y, además, HBase agregará funciones de nivel empresarial adicionales, como transacciones de múltiples tablas, entre centros de datos y más.

Proyectos como Omid (Yahoo), Tephra (Cask), Trafodion (HP), etc. ofrecen diferentes formas de llevar las transacciones a HBase. Facebook ha desarrollado HydraBase, que permite transacciones entre centros de datos. Facebook ha probado HydraBase a escala y se está moviendo para que esté disponible en HBase de código abierto (ver HBASE-12259). A medida que estos sistemas maduren, HBase será capaz de soportar las cargas de trabajo más exigentes.

3. Catálogo de metadatos compartidos y administrador de transacciones

Los datos creados en HBase deberían verse automáticamente en Hive y viceversa. Esta capacidad hace que el intercambio de datos entre análisis y en línea sea completamente trivial. Un administrador de transacciones compartido permite que la nueva función ACID de Hive y las transacciones HBase de múltiples tablas funcionen juntas sin problemas.

4. Compatibilidad con cargas de trabajo mixtas habilitadas para YARN

Actualmente, los clientes suelen implementar HBase y Hive en clústeres separados. El desarrollo de un sistema de análisis de ciclo cerrado requiere una combinación efectiva de cargas de trabajo operativas y analíticas de manera multiusuario. Con YARN, podemos crear de manera efectiva un sistema único al aprovechar las primitivas de administración de carga de trabajo y aislamiento de recursos en YARN para admitir diferentes formas de acceso a los datos. Slider hace uso de estos cuando implementa HBase en YARN, mientras que Hive LLAP y Tez son aplicaciones nativas de YARN, lo que simplifica el proceso de ejecución de un sistema analítico de circuito cerrado de acuerdo con un SLA predecible.

Conclusión

Las empresas están utilizando tecnologías ya existentes disponibles en HDP, como Apache HBase, Apache Hive, Apache Phoenix, etc., para hacer frente a actualizaciones rápidas de datos y análisis actuales en una amplia gama de conjuntos de datos, todos almacenados en HDFS para efectuar un sistema de análisis de ciclo cerrado. . Esperamos aprovechar los mismos patrones de integración para brindar una experiencia fluida a los clientes al hacer que Apache HBase y Apache Hive sean mejores, mejor juntos, en lugar de nuevas tecnologías netas para que los usuarios las entiendan y las consuman.