Getting Started With Kyuubi on kubernetes#

Running kyuubi with helm#

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

Get helm and Install#

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

Get Kyuubi Started#

[Optional] Create namespace on kubernetes#

create 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-svc)
  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