Sign inSign up

ayushtkn/hive-operator

By ayushtkn

Updated 3 months ago

Apache Hive Operator built upon Apache Hive-4.3.0-SNAPSHOT

Helm
0

196

ayushtkn/hive-operator repository overview

Install Zookeeper
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install zookeeper bitnami/zookeeper \
  --set replicaCount=1 --set auth.enabled=false \
  --set image.repository=bitnamilegacy/zookeeper \
  --set image.tag=3.9.3-debian-12-r21 \
  --set global.security.allowInsecureImages=true --wait
Install Postgres for HMS
helm install postgres bitnami/postgresql \
  --set auth.username=hive --set auth.password=hive123 \
  --set auth.database=metastore --wait

kubectl create secret generic hive-db-secret --from-literal=password=hive123
Install Storage (Ozone)
helm repo add ozone https://apache.github.io/ozone-helm-charts/
helm install ozone ozone/ozone --version 0.2.0 --wait
sleep 50
kubectl exec statefulset/ozone-om -- ozone sh volume create /s3v
kubectl exec statefulset/ozone-om -- ozone sh bucket create /s3v/hive
Install Hive
For Without AutoScaling Enabled
helm install hive oci://registry-1.docker.io/ayushtkn/hive-operator \
  --version 4.3.0-SNAPSHOT \
  --set operator.image.repository="ayushtkn/hive" \
  --set operator.image.tag="operator-4.3.0-SNAPSHOT" \
  --set cluster.image="ayushtkn/hive:4.3.0-SNAPSHOT" \
  --set cluster.database.type=postgres \
  --set cluster.database.url="jdbc:postgresql://postgres-postgresql:5432/metastore" \
  --set cluster.database.driver="org.postgresql.Driver" \
  --set cluster.database.username=hive \
  --set cluster.database.passwordSecretRef.name=hive-db-secret \
  --set cluster.database.passwordSecretRef.key=password \
  --set cluster.database.driverJarUrl="https://repo1.maven.org/maven2/org/postgresql/postgresql/42.7.5/postgresql-42.7.5.jar" \
  --set cluster.zookeeper.quorum="zookeeper:2181" \
  --set cluster.storage.coreSiteOverrides."fs\.defaultFS"="s3a://hive" \
  --set cluster.storage.coreSiteOverrides."fs\.s3a\.endpoint"="http://ozone-s3g-rest:9878" \
  --set-string cluster.storage.coreSiteOverrides."fs\.s3a\.path\.style\.access"=true \
  --set 'cluster.storage.envVars[0].name=HADOOP_OPTIONAL_TOOLS' \
  --set 'cluster.storage.envVars[0].value=hadoop-aws' \
  --set 'cluster.storage.envVars[1].name=AWS_ACCESS_KEY_ID' \
  --set 'cluster.storage.envVars[1].value=ozone' \
  --set 'cluster.storage.envVars[2].name=AWS_SECRET_ACCESS_KEY' \
  --set 'cluster.storage.envVars[2].value=ozone'
For with AutoScaling Enabled
  helm install hive oci://registry-1.docker.io/ayushtkn/hive-operator \
      --version 4.3.0-SNAPSHOT \
      --set operator.image.repository="ayushtkn/hive" \
      --set operator.image.tag="operator-4.3.0-SNAPSHOT" \
      --set cluster.image="ayushtkn/hive:4.3.0-SNAPSHOT" \
      --set cluster.database.type=postgres \
      --set cluster.database.url="jdbc:postgresql://postgres-postgresql:5432/metastore" \
      --set cluster.database.driver="org.postgresql.Driver" \
      --set cluster.database.username=hive \
      --set cluster.database.passwordSecretRef.name=hive-db-secret \
      --set cluster.database.passwordSecretRef.key=password \
      --set cluster.database.driverJarUrl="https://repo1.maven.org/maven2/org/postgresql/postgresql/42.7.5/postgresql-42.7.5.jar" \
      --set cluster.zookeeper.quorum="zookeeper:2181" \
      --set cluster.storage.coreSiteOverrides."fs\.defaultFS"="s3a://hive" \
      --set cluster.storage.coreSiteOverrides."fs\.s3a\.endpoint"="http://ozone-s3g-rest:9878" \
      --set-string cluster.storage.coreSiteOverrides."fs\.s3a\.path\.style\.access"=true \
      --set 'cluster.storage.envVars[0].name=HADOOP_OPTIONAL_TOOLS' \
      --set 'cluster.storage.envVars[0].value=hadoop-aws' \
      --set 'cluster.storage.envVars[1].name=AWS_ACCESS_KEY_ID' \
      --set 'cluster.storage.envVars[1].value=ozone' \
      --set 'cluster.storage.envVars[2].name=AWS_SECRET_ACCESS_KEY' \
      --set 'cluster.storage.envVars[2].value=ozone' \
      --set cluster.hiveServer2.autoscaling.enabled=true \
      --set cluster.metastore.autoscaling.enabled=true \
      --set cluster.autoSuspend.enabled=true \
      --set 'cluster.llapClusters[0].name=llap0' \
      --set 'cluster.llapClusters[0].autoscaling.enabled=true' \
      --set 'cluster.llapClusters[0].tezAm.autoscaling.enabled=true'
For With Multi Tenant Setup With Auto Scaling
helm install hive oci://registry-1.docker.io/ayushtkn/hive-operator \
      --version 4.3.0-SNAPSHOT \
      --set operator.image.repository="ayushtkn/hive" \
      --set operator.image.tag="operator-4.3.0-SNAPSHOT" \
      --set cluster.image="ayushtkn/hive:4.3.0-SNAPSHOT" \
      --set cluster.database.type=postgres \
      --set cluster.database.url="jdbc:postgresql://postgres-postgresql:5432/metastore" \
      --set cluster.database.driver="org.postgresql.Driver" \
      --set cluster.database.username=hive \
      --set cluster.database.passwordSecretRef.name=hive-db-secret \
      --set cluster.database.passwordSecretRef.key=password \
      --set cluster.database.driverJarUrl="https://repo1.maven.org/maven2/org/postgresql/postgresql/42.7.5/postgresql-42.7.5.jar" \
      --set cluster.zookeeper.quorum="zookeeper:2181" \
      --set cluster.storage.coreSiteOverrides."fs\.defaultFS"="s3a://hive" \
      --set cluster.storage.coreSiteOverrides."fs\.s3a\.endpoint"="http://ozone-s3g-rest:9878" \
      --set-string cluster.storage.coreSiteOverrides."fs\.s3a\.path\.style\.access"=true \
      --set 'cluster.storage.envVars[0].name=HADOOP_OPTIONAL_TOOLS' \
      --set 'cluster.storage.envVars[0].value=hadoop-aws' \
      --set 'cluster.storage.envVars[1].name=AWS_ACCESS_KEY_ID' \
      --set 'cluster.storage.envVars[1].value=ozone' \
      --set 'cluster.storage.envVars[2].name=AWS_SECRET_ACCESS_KEY' \
      --set 'cluster.storage.envVars[2].value=ozone' \
      --set cluster.hiveServer2.autoscaling.enabled=true \
      --set cluster.metastore.autoscaling.enabled=true \
      --set cluster.autoSuspend.enabled=true \
      --set-string 'cluster.llapClusterRouting=user:alice=llap0\,user:bob=llap1\,default=llap2' \
      --set 'cluster.llapClusters[0].name=llap0' \
      --set 'cluster.llapClusters[0].autoscaling.enabled=true' \
      --set 'cluster.llapClusters[0].tezAm.autoscaling.enabled=true' \
      --set 'cluster.llapClusters[1].name=llap1' \
      --set 'cluster.llapClusters[1].autoscaling.enabled=true' \
      --set 'cluster.llapClusters[1].tezAm.autoscaling.enabled=true' \
      --set 'cluster.llapClusters[2].name=llap2' \
      --set 'cluster.llapClusters[2].autoscaling.enabled=true' \
      --set 'cluster.llapClusters[2].tezAm.autoscaling.enabled=true'
Wait for HS2 to come up
kubectl wait --for=condition=Ready hivecluster/hive --timeout=300s
Open Beeline
kubectl exec -it deployment/hive-hiveserver2 -- beeline -u "jdbc:hive2://hive-hiveserver2:10001/;transportMode=http;httpPath=cliservice"

In case of Multi Tenant setup add -n alice for LLAP0 -n bob for LLAP1 and -n or exclude it for LLAP2 cluster

Tag summary

Content type

Helm

Digest

sha256:717bb48e6

Size

10.3 kB

Last updated

3 months ago

helm pull oci://registry-1.docker.io/ayushtkn/hive-operator --version 4.3.0-SNAPSHOT