Apache Kyuubi (Incubating), una puerta de enlace distribuida y multiinquilino para servir SQL sin servidor en Lakehouse. Este artículo es una introducción a kyuubi, presenta la instalación y el uso básicos de Kyuubi y utiliza el motor Spark como ejemplo para describir cómo enviar la primera tarea Spark SQL.
También puede leer el artículo "Análisis comparativo completo de Kyuubi y Spark ThriftServer" para comprender las similitudes y diferencias entre Kyuubi y Spark ThriftServer.
Descarga del paquete de instalación
Vaya a la siguiente página para descargar el paquete de instalación de kyuubi: https://kyuubi.apache.org/releases.html . A continuación se toma la versión de incubación 1.5.0 como ejemplo.
mkdir /data && cd /data
wget https://dlcdn.apache.org/incubator/kyuubi/kyuubi-1.5.0-incubating/apache-kyuubi-1.5.0-incubating-bin.tgz
tar zxvf apache-kyuubi-1.5.0-incubating-bin.tgz
ln -s apache-kyuubi-1.5.0-incubating-bin kyuubi
Dado que aquí utilizamos el motor Spark, también necesitamos descargar el paquete de instalación de Spark.
cd /data
wget https://www.apache.org/dyn/closer.lua/spark/spark-3.2.1/spark-3.2.1-bin-hadoop3.2.tgz
tar zxvf spark-3.2.1-bin-hadoop3.2.tgz
ln -s spark-3.2.1-bin-hadoop3.2 spark
Modificar archivo de configuración
cd conf
cp spark-env.sh.template spark-env.sh
vim chispa-env.sh
Establecer HADOOP_CONF_DIR
exportar HADOOP_CONF_DIR=/etc/hadoop/conf
Pruebe si las tareas de chispa se pueden enviar al hilo
bin/spark-submit --master yarn --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.12-3.2.1.jar
Obtenga los siguientes resultados
Modificación del archivo de configuración
Modificar archivo de configuración
cd /data/kyuubi
cd conf
cp kyuubi-defaults.conf.template kyuubi-defaults.conf
cp kyuubi-env.sh.template kyuubi-env.sh
cp log4j2.properties.template log4j2.properties
Para conocer los parámetros de configuración de los archivos anteriores, consulte: https://kyuubi.apache.org/docs/latest/deployment/settings.html
A continuación se toma HDP 3.1.4 como ejemplo.
El contenido de kyuubi-env.sh es el siguiente
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
export SPARK_HOME=/data/spark
export HADOOP_CONF_DIR=/etc/hadoop/conf
export KYUUBI_JAVA_OPTS="-Xmx6g -XX:+UnlockDiagnosticVMOptions -XX:ParGCCardsPerStrideChunk=4096 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseCondCardMark -XX:MaxDirectMemorySize=1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Xloggc:./logs/kyuubi-server-gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=5M -XX:NewRatio=3 -XX:MetaspaceSize=512m"
export KYUUBI_BEELINE_OPTS="-Xmx2g -XX:+UnlockDiagnosticVMOptions -XX:ParGCCardsPerStrideChunk=4096 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+UseCondCardMark"
El contenido de kyuubi-defaults.conf es el siguiente
kyuubi.ha.zookeeper.quorum hadoop1:2181,hadoop2:2181,hadoop3:2181
spark.master yarn
No es necesario modificar el archivo log4j2.properties.
Iniciar kyuubi
bin/kyuubi start
Puedes ver que kyuubi ha sido iniciado.
Utilice beeline para conectarse a kyuubi
bin/beeline -u "jdbc:hive2://hadoop1:2181,hadoop2:2181,hadoop3:2181/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi" -n hdfs
conseguir
Ver interfaz de usuario de YARN