../_images/kyuubi_logo.png

2. Getting Started With Kyuubi on kubernetes

2.1. Running kyuubi with helm

Helm is the package manager for Kubernetes,it can be used to find, share, and use software built for Kubernetes.

2.1.1. Get helm and Install

Please go to Install Helm page to get and install an appropriate release version for yourself.

2.1.2. Get Kyuubi Started

[Optional] Create namespace on kubernetes

cretate ns kyuubi

Get kyuubi started

helm install kyuubi-helm ${KYUUBI_HOME}/docker/helm -n ${namespace_name}

It will print variables and the way to get kyuubi expose ip and port.

NAME: kyuubi-helm
LAST DEPLOYED: Wed Oct 20 15:22:47 2021
NAMESPACE: kyuubi
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Get kyuubi expose URL by running these commands:
  export NODE_PORT=$(kubectl get --namespace kyuubi -o jsonpath="{.spec.ports[0].nodePort}" services kyuubi-helm-nodeport)
  export NODE_IP=$(kubectl get nodes --namespace kyuubi -o jsonpath="{.items[0].status.addresses[0].address}")
  echo $NODE_IP:$NODE_PORT

Using hive beeline

Using Hive Beeline to opening a connection.

Remove kyuubi

helm uninstall kyuubi-helm -n ${namespace_name}

Edit server config

Modify values.yaml under ${KYUUBI_HOME}/docker/helm:

# Kyuubi server numbers
replicaCount: 2

image:
  repository: apache/kyuubi
  pullPolicy: Always
  # Overrides the image tag whose default is the chart appVersion.
  tag: "master-snapshot"

server:
  bind:
    host: 0.0.0.0
    port: 10009
  conf:
    mountPath: /opt/kyuubi/conf

service:
  type: NodePort
  # The default port limit of kubernetes is 30000-32767
  # to change:
  #   vim kube-apiserver.yaml (usually under path: /etc/kubernetes/manifests/)
  #   add or change line 'service-node-port-range=1-32767' under kube-apiserver
  port: 30009

Get server log

List all server pods:

kubectl get po -n ${namespace_name}

The server pods will print:

NAME                             READY   STATUS    RESTARTS   AGE
kyuubi-server-585d8944c5-m7j5s   1/1     Running   0          30m
kyuubi-server-32sdsa1245-2d2sj   1/1     Running   0          30m

then, use pod name to get logs:

kubectl -n ${namespace_name} logs kyuubi-server-585d8944c5-m7j5s