Apache Kyuubi (Incubating), um gateway distribuído e multilocatário para servir SQL sem servidor em Lakehouse. Este artigo é um artigo introdutório ao kyuubi. Ele apresenta a instalação básica e o uso do Kyuubi e usa o mecanismo Spark como exemplo para descrever como enviar a primeira tarefa Spark SQL.
Você também pode ler o artigo "Análise comparativa abrangente de Kyuubi e Spark ThriftServer" para entender as semelhanças e diferenças entre Kyuubi e Spark ThriftServer.
Download do pacote de instalação
Vá para a página a seguir para baixar o pacote de instalação do kyuubi: https://kyuubi.apache.org/releases.html . O seguinte usa a versão de incubação 1.5.0 como exemplo.
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
Como estamos usando o mecanismo spark aqui, também precisamos baixar o pacote de instalação do 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 arquivo de configuração
cd conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
Definir HADOOP_CONF_DIR
exportar HADOOP_CONF_DIR=/etc/hadoop/conf
Teste se as tarefas do Spark podem ser enviadas ao Yarn
bin/spark-submit --master yarn --class org.apache.spark.examples.SparkPi ./examples/jars/spark-examples_2.12-3.2.1.jar
Obtenha os seguintes resultados
Modificação do arquivo de configuração
Modificar arquivo de configuração
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 parâmetros de configuração dos arquivos acima, consulte: https://kyuubi.apache.org/docs/latest/deployment/settings.html
O seguinte toma HDP 3.1.4 como exemplo
O conteúdo de kyuubi-env.sh é o seguinte
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"
O conteúdo de kyuubi-defaults.conf é o seguinte
kyuubi.ha.zookeeper.quorum hadoop1:2181,hadoop2:2181,hadoop3:2181
spark.master yarn
O arquivo log4j2.properties não precisa ser modificado.
Comece kyuubi
bin/kyuubi start
Você pode ver que o kyuubi foi iniciado
Use Beeline para se conectar à Kyuubi
bin/beeline -u "jdbc:hive2://hadoop1:2181,hadoop2:2181,hadoop3:2181/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi" -n hdfs
pegar
Ver IU do YARN