当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

基于Hadoop生态的大多数大数据平台,普遍存在资源弹性不足,无法按需自动扩容、资源利用率低、资源隔离性差、系统管理困难,管理方式不统一等问题。而Kubernetes就能刚刚提到的这些问题。这样看来,大数据平台的容器化演进十分有意义。本篇就将大数据的众多组件拆开来,分析这些常用组件在Kubernetes的部署情况。

当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

文件存储系统

当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

HDFS主要包括Datanode,Namenode和Journalnode三个组件。在Kubernetes中进行部署时,由于Datanode需要存储HDFS中的数据,对磁盘要求非常高,所以在Kubernetes中部署时Datanode采用DaemonSet的方式进行部署,每个存储节点部署一个Datanode实例。而Namenode和Journalnode由于需要保持名称不变,在Kubernetes中采用StatefulSet的方式进行部署。

NoSQL数据库

当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

Hbase主要包括两种类型的节点,HMaster节点和HRegionServer节点。其中HMaster节点作为主节点,负责管理多个HRegionServer节点。HRegionServer节点作为worker节点,负责管理各个region。由于Hbase的实际数据存储在HDFS中,Hbase本身并不存储数据,所以HMaster和HRegionServer并不需要挂载磁盘。只是为了保持实例名称不变,HMaster和HRegionServer都采用StatefulSet的方式进行部署。

数据查询分析

当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

Hive主要包括hive-Server和metastore两个组件。其中hive-Server作为访问入口,可以按照在线服务一样使用Deployment进行部署。metastore因为需要保持名称不变,所以使用了StatefulSet的方式进行部署。

计算框架

当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

Spark是大数据领域比较早做容器化的一个组件。Spark从2.3版本支持原生的方式将任务跑在Kubernetes上。具体的实现原理如上图所示,通过spark-submit脚本向kube-apiserver提交创建请求,先创建spark的driver实例。然后driver实例按照任务执行需要的资源大小,向kube-apiserver发起请求,创建对应的executor实例,由executor实例来执行任务。Driver实例通过监听kube-apiserver中pod的信息,对executor实例的生命周期进行管理。

当大数据遇上Kubernetes 且看渗透大数据各组件的容器化

Flink与Spark类似,在其内核中直接对接了Kubernetes的kube-apiserver,以提高资源的使用效率。在Flink Client提交后,会先创建Flink Job Manager实例,然后再由Job Manager会调用Kubernetes的接口,根据任务的并行度来动态的创建对应的TaskManager实例。

通过对上面组件在Kubernetes的部署情况的分析,可以看到目前大部分的大数据组件都已经有项目来支持在Kubernetess上部署,并且借用Kubernetes不同类型的资源管理能力,就能实现对大数据组件的部署。大数据组件的容器化正在从尝试走向成熟。

文章部分素材来源:腾讯云原生

展开阅读全文

页面更新:2024-05-11

标签:容器   在线   数据   腾讯   节点   内核   磁盘   生命周期   组件   实例   名称   情况   方式   资源   平台

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top