k8s与docker与大数据环境的构建工作

Posted finalnarcissus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s与docker与大数据环境的构建工作相关的知识,希望对你有一定的参考价值。

大数据环境与docker

在使用CDH构建在k8s上的时候遇到了异常困难的问题,其检查机制会将解析主机的IP作为目标容器的IP,导致两者无法正常安装部署,只能放弃已经做好的容器镜像,之后在不断的寻找中终于到了可以达到预期目标的方法。

首先是找到了Spark的两个容器镜像:

    https://hub.docker.com/r/bde2020/spark-master
    https://hub.docker.com/r/gettyimages/spark

其中big-data-europe/docker-spark已经可以直接部署在k8s上面,但我们想要构建大数据的环境仅仅有spark是不足的,但深入了解后,发现big-data-europe中已经有许多已经被制作好的容器,仅需组合就可以很方便的使用。

使用方法在页面也很详细,构建文件也在github中,只需要对几个脚本文件进行了解,即可清楚整体的构建流程,也能很方便的组合自己的环境。其中所有镜像在https://hub.docker.com/u/bde2020。

大数据组件的融合

我组合环境的时候使用的是gettyimages/docker-spark与big-data-europe的Hadoop、Hive、HBase,其次还自己做了一个包含Sqoop工具的datanode节点。

这套构建方法目前来看已经已经可以承担目标预期的任务,在构建过程中也遇到了很多障碍:

1. 其中spark镜像中包含的jars包远比标准版本的要少,需要手动放入hive等包,为了避免缺少,需要将相应版本的jar包全部放入;
2. 版本问题,各组件之间的版本需要匹配;
3. spark中的spark的conf目录可以与hive的hive-site.xml建立联系,方便互通,同时也需要做一些调整;
4. env文件仅需合并,并调整方可。

大数据环境从docker到k8s

然后是从docker-compose文件开始构建k8s文件,这个主要是在同事的帮助下,需要注意以下几个问题:

    1. 服务需要将几个关键镜像添加NodePort,端口开放足够
    2. 创建容器的顺序问题,开启的顺序差异将导致容器是否能正常启动,如果启动失败,一般rc也将自动重新创建容器,如果还不行则需要手动删除,rc会自动重构。

以上是关于k8s与docker与大数据环境的构建工作的主要内容,如果未能解决你的问题,请参考以下文章

docker容器与大数据组件的冲突点

用k8s构建生产环境下应用服务

基于gitlab+docker+k8s打造自动化构建部署流程

Docker和云计算的关系是啥?

Docker 与 K8S学习笔记—— 容器的操作(上篇)

skywalking—docker镜像构建k8s部署