15 分钟内,在 Kubernetes 上设置 Apache Pinot


15 分钟内,在 Kubernetes 上设置 Apache Pinot

文章插图
了解如何在 Kube.NETes 上安装 Pinot Control Plane,配置您的第一个 Pinot 集群,并深入了解控制平面功能 。【15 分钟内,在 Kubernetes 上设置 Apache Pinot】作为一名经验丰富的专业人士,我作为 Apache Druid k8s operator 的维护者获得了丰富的经验,并且与人合着并致力于各种 k8s operators/库 。通过我的经验,我认识到需要建立特定于应用程序的控制平面,以促进大数据在 Kubernetes 上的顺利运行 。
在我过去的角色中,我为 RillData 的 Druid、Startree 的 Pinot 和 Chistadata 的 Clickhouse 构建了 Kubernetes 控制平面 。在所有三个 OLAP 商店工作之后,我现在完全致力于我的最新企业 DataInfra,该公司专注于构建高效的控制平面,使数据能够在 Kubernetes 上无缝运行 。
15 分钟内,在 Kubernetes 上设置 Apache Pinot

文章插图
为什么 Pinot 的控制平面?我们相信 Kubernetes 可以作为任何应用程序的控制平面,包括那些具有数据和状态集的应用程序 。虽然 Helm 图表对配置管理很有用,但它们不维护应用程序的状态 。这就是我们基于 Kubernetes 操作符模式构建控制平面的原因,它充当您的应用程序需求和 Kubernetes 基础设施之间的桥梁 。
k8s 的 Pinot 控制平面专门设计用于改善运行 Apache Pinot 集群的用户体验 。作为一个分布式数据库,如果没有合适的工具,Pinot 很难在 Kubernetes 上运行 。我们的项目基于DSOI 规范,并使用Operator-Runtime库构建,以提供更加用户友好和 Kubernetes 友好的体验 。
本项目基于 Kubernetes 算子模式,但不限于此模式 。鉴于 Pinot 的复杂性,仅依靠 Kubernetes 运营商可能不足以有效管理其运营 。我们对该项目的愿景是创建一套全面的工具和实用程序,以实现 Pinot 在 Kubernetes 上的无缝部署和操作 。
安装 Pinot 控制平面 Pinot 控制平面支持基于Helm Chart 的部署 。要安装图表,请运行以下命令 。我们将使用 Makefile 命令来引导控制平面 。
  • Clone the Repo


  •  
  •  
  •  
git clone https://Github.com/datainfrahq/pinot-control-plane-k8s.git
 
  • 部署 Pinot 控制平面——以下命令在 pinot-control-plane 命名空间中使用 helm 部署控制平面 。
make helm-install-pinot-control-plane
 
  • 部署 Zookeeper Operator 和 Zookeeper — 以下命令需要几分钟才能完成 。它将在 zookeeper-operator 命名空间中部署 zookeeper operator,在 pinot 命名空间中部署 zk statefulset
make helm-install-zk-operator
  安装 Pinot Cluster导出 Kubernetes 存储类 。
export STORAGE_CLASS_NAME=standard
  • 安装 Pinot Cluster
envsubst < examples/00-pinot-basic/pinot-basic.yaml | kubectl Apply -f - -n pinot
安装 Kafka 集群并创建主题
  • 添加 Helm 仓库并安装 Kafka 集群
# Add Kafka
helm repo add kafka https://charts.bitnami.com/bitnami
# Deploy kafka
helm install -n pinot kafka kafka/kafka --set replicas=1,zookeeper.image.tag=latest
 
  •  Kafka Pod 启动并运行后,创建主题
# Add Kafka
helm repo add kafka https://charts.bitnami.com/bitnami
# Deploy kafka
helm install -n pinot kafka kafka/kafka --set replicas=1,zookeeper.image.tag=latest
 
创建 Pinot 模式
  • Pinot 控制平面支持模式的创建 。
kubectl apply -f examples/00-pinot-basic/pinotschema-basic.yaml -n pinot
创建比诺表
  • Pinot 控制平面支持创建表 。
kubectl apply -f examples/00-pinot-basic/pinottable-basic.yaml -n pinot
将数据提取到 Kafka
  • 将数据提取到 kafka 主题中
kubectl apply -f examples/00-pinot-basic/pinot-realtime-kafka.yaml
访问 Pinot 控制台
  • 通过端口转发控制器 pod 或 svc 访问 pinot 控制台 。
kubectl port-forward pinot-controller-controller-0 -n pinot 9000




    推荐阅读