Apache Kyuubi (Incubando)
Apache Kyuubi (Incubando)
¿Qué es Kyuubi?
Kyuubi es un servidor Thrift JDBC/ODBC multiinquilino distribuido para la gestión, el procesamiento y el análisis de datos a gran escala, creado sobre Apache Spark y diseñado para admitir más motores (es decir, Flink). Ha sido de código abierto por NetEase desde 2018. Nuestro objetivo es hacer de Kyuubi una herramienta “lista para usar” para almacenes de datos y lagos de datos.
Kyuubi proporciona una puerta de enlace de SQL puro a través de la interfaz Thrift JDBC/ODBC para que los usuarios finales manipulen datos a gran escala con motores Spark SQL preprogramados y extensibles. Este modelo “listo para usar” minimiza las barreras y los costos para que los usuarios finales usen Spark en el lado del cliente. En el lado del servidor, la arquitectura multiusuario de los motores y servidores Kyuubi proporciona a los administradores una forma de lograr el aislamiento de los recursos informáticos, la seguridad de los datos, la alta disponibilidad, la alta concurrencia de clientes, etc.
- Una API similar a HiveServer2
- Soporte de Spark para múltiples inquilinos
- Ejecutar Spark sin servidor
Usuarios objetivo
El objetivo de Kyuubi es hacerlo fácil y eficiente para anyone
para usar Spark (quizás otros motores pronto) y facilitar a los usuarios el manejo de big data como datos ordinarios. Aquí, anyone
significa que los usuarios no necesitan tener conocimientos técnicos de Spark, sino un lenguaje humano, solo SQL. A veces, las habilidades de SQL son innecesarias al integrar Kyuubi con Apache Superset, que admite visualizaciones y paneles enriquecidos.
En entornos típicos de producción de big data con Kyuubi, debe haber administradores de sistemas y usuarios finales.
- Administradores del sistema: un pequeño grupo está formado por expertos de Spark responsables de la implementación, configuración y ajuste de Kyuubi.
- Usuarios finales: concéntrese en sus propios datos comerciales, no en dónde se almacenan, cómo se computan.
Además, la comunidad Kyuubi optimizará continuamente todo el sistema con varias funciones, como el optimizador basado en el historial, el ajuste automático, la vista materializada, los dialectos SQL, las funciones, etc.
Escenarios de uso
Portar cargas de trabajo de HiveServer2 a Spark SQL
En entornos típicos de producción de big data, especialmente en los seguros, todos los servicios integrados administran listas de control de acceso para restringir el acceso a usuarios autorizados. Por ejemplo, Hadoop YARN divide los recursos informáticos en colas. Con las ACL de cola, puede identificar y controlar qué usuarios/grupos pueden realizar acciones en colas particulares. De manera similar, las ACL de HDFS controlan el acceso a los archivos HDFS al proporcionar una forma de establecer diferentes permisos para usuarios/grupos específicos.
Apache Spark es un motor de análisis unificado para el procesamiento de datos a gran escala. Proporciona un motor SQL distribuido, también conocido como Spark Thrift Server (STS), diseñado para ser perfectamente compatible con HiveServer2 y obtener un rendimiento aún mejor.
HiveServer2 puede identificar y autenticar a una persona que llama, y luego, si la persona que llama también tiene permisos para la cola YARN y los archivos HDFS, lo logra. De lo contrario, falla. Sin embargo, por un lado, STS es una única aplicación Spark. El usuario y la cola a la que pertenece STS se determinan de forma exclusiva al inicio. En consecuencia, STS no puede aprovechar los administradores de clústeres como YARN y Kubernetes para aislar y compartir recursos o controlar el acceso de las personas que llaman por parte del usuario único dentro de todo el sistema. Por otro lado, Thrift Server está acoplado en el proceso JVM del controlador Spark. Este arquitecto acoplado pone en alto riesgo la estabilidad del servidor y lo hace incapaz de manejar una alta simultaneidad de clientes o aplicar una alta disponibilidad, como el equilibrio de carga, ya que tiene estado.
Kyuubi amplía el uso de STS en un modelo multiinquilino basado en una interfaz unificada y se basa en el concepto de multiinquilino para interactuar con los administradores de clústeres para finalmente obtener la capacidad de compartir/aislar recursos y seguridad de datos. La arquitectura débilmente acoplada del servidor y el motor Kyuubi mejora drásticamente la concurrencia del cliente y la estabilidad del servicio en sí.
Soporte de DataLake/LakeHouse
La visión de Kyuubi es unificar el portal y convertirse en una plataforma de gestión de lagos de datos fácil de usar. Diferentes tipos de cargas de trabajo, como procesamiento ETL y análisis de BI, pueden ser compatibles con una plataforma, utilizando una copia de datos, con una interfaz SQL.
- Soporte de vista lógica a través de las API de metadatos de Kyuubi DataLake
- Compatibilidad con varios catálogos
- Soporte de autorización estándar de SQL para DataLake (próximamente)
Soporte nativo en la nube
Kyuubi puede implementar sus motores en diferentes tipos de Administradores de clústeres, como Hadoop YARN, Kubernetes, etc.
El ecosistema Kyuubi (presente y futuro)
La siguiente figura muestra nuestra visión del ecosistema Kyuubi. Algunos de ellos se han realizado, algunos en desarrollo y otros no serían posibles sin su ayuda.
Documentación en línea
Desde la incubación de Kyuubi 1.3.0, la documentación en línea de Kyuubi está alojada en https://kyuubi.apache.org/. Puede encontrar la documentación más reciente de Kyuubi en esta página web. Para versiones 1.2 y anteriores, consulte Readthedocs directamente.
Inicio rápido
¿Listo? Primeros pasos con Kyuubi.
contribuyendo
Colaborador a lo largo del tiempo
Aparte
El proyecto tomó su nombre de un personaje de un popular manga japonés: Naruto
. el personaje se llama Kyuubi Kitsune/Kurama
que es un zorro de nueve colas en la mitología.
Kyuubi
difundir el poder y el espíritu del fuego, que se utiliza aquí para representar el poderoso Apache Spark. Sus nueve colas representan el soporte de múltiples inquilinos de extremo a extremo de este proyecto.
Licencia
Este proyecto está autorizado bajo la Licencia Apache 2.0. Vea el archivo de LICENCIA para más detalles.