赞
踩
本文是不久前 Kylin on Kubernetes 在 eBay 的实践的进阶篇!主要讲述了当前 Kylin 在 eBay 的架构,以及迁移到 Kubernetes 后的使用情况,同时详细讲解了 Kylin 迁移到 Kubernetes 的完整方案和实践的技术细节。
*文末有福利,不要错过哦?
Kylin 在 eBay 内部概况和架构
目前 eBay 内部有 36 个业务部门在使用 Kylin ,主要概况如下:kylin-all | 既能构建又能查询 |
kylin-query | 只用于查询 |
kylin-job | 只用于构建 |
Kylin on K8s 实践
1 Kylin on K8s 所需镜像 在迁移到 Kubernetes 之前需要构建所需镜像,我们现在 主要把镜像拆成两部分,分别是 hadoop-client 和 Kylin 本身 。 I. hadoop-client 镜像文件 上图是 hadoop-client 的镜像文件。从左边的目录结构中可以看到,其中包括 conf,hdp-clients 以及 Dockerfile。 conf 目录 此目录底下是配置文件,由于 hadoop-client 的配置文件比较稳定,基本没有改动的需求,因此我们直接将配置文件打包在镜像里面。 如果是经常需要改动的配置文件,建议把配置文件放在 Config Map 或者 Secrets 里,与镜像分离会更好一些。 hdp-clients 目录 此目录中是我们事先下载好的 hdp-client 的包。这样构建镜像会更快,如果对这种事先下载的方式有顾虑,可以采用在 Dockerfile 里通过 wget 下载的方式。 Dockerfile 文件 文件具体内容如上图右半部分所示。它是基于 centos 的镜像来构建的,会安装一些 Kylin 需要的 Hadoop 组件,包括 Hadoop, HBase, Hive, Spark 和 Zookeeper。 II. Kylin 镜像文件 上图展示的是 Kylin 的镜像文件。Kylin 镜像文件的目录分为 Kylin 源码,脚本目录和 Dockerfile。 将 Kylin 源码事先放在目录下面可以使镜像构建得更快,并且这样构建得到的镜像会比在线拉取源代码再解压后构建得到的镜像更小。 bin 目录下的脚本分别是:启动程序 bootstrap.sh, Kubernetes 探针检查脚本 check-liveness 和 check-readiness,定时清理日志的脚本 clean-log。 经过我们的测试,这样构建得到的 Kylin 镜像上传到 Docker Hub 后,大小大约是 1.2G。 为了能够更快地下载镜像,我们会尽量把改动不频繁的部分放在前面, 这样在 pull 镜像的时候,只需要下载最上层改动过 layer 而不需要下载之前相同的 layer,可以更快让镜像被 pull 下来。 除了以上的两个主要的镜像之外,其他用到的 ecosystem 的 Docker image 地址为以下:docker build -t {url}/{folder}/{image-name}:{image-version}
Push docker images:
docker logindocker push {url}/{folder}/{image-name}:{image-version}
下图为 eBay 内部的 docker hub 上 Kylin 相关的所有镜像,包括 ecosystem 的镜像,Kylin 以及 hadoop-client 镜像。
2 部署 Kylin on K8s 服务
准备好所需镜像,就可以开始在 Kubernetes 上搭建 Kylin 服务了。下方列举了 Kubernetes 的一些概念,在之后创建 Kylin 的服务时候会用到。
Kubernetes Objects:
展望
下面是我们对 Kylin on k8s 未来的展望以及希望做出的改进 :他们都在用 Apache Kylin
eBay | 腾讯 | 滴滴 | 小米 | 美团 | 百度 | 携程Strikingly | 斗鱼 | 银联 | 京东 | 思科 | 一点资讯58集团 | 汽车之家 | 中国移动 | 网易游戏 | 搜狐满帮集团 | 好买财富 | 特来电 | 439 9 | OLX 集团微医 | 马蜂窝 | 唯品会 | 贝壳找房 | 麻袋财 富 | 绿城 点击「 阅读原文 」获取 Meetup PPT~Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。