博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工作日志——基于k8s搭建spark集群
阅读量:6972 次
发布时间:2019-06-27

本文共 2091 字,大约阅读时间需要 6 分钟。

使用k8s搭建spark集群

这几天尝试在k8s中搭建spark集群,踩了一些坑,跟大 家分享一下。

Spark的组件介绍可参考官方文档

大数据生态圈简介可参考这篇文章

基于k8s官方示例

具体参考github k8s

FAQ

镜像拉取问题

该方法需要访问gcr.io下载镜像(国内一般需要vpn),需要注意的是gcr.io/google_containers/spark:1.5.2_v1镜像不能使用index.tenxcloud.com/google_containers/spark替换,替换后拉取镜像时会出现“docker: filesystem layer verification failed”错误。

可将zeppelin-controller.yaml使用的镜像修改为index.tenxcloud.com/google_containers/zeppelin:v0.5.6_v1

webui service使用问题

文档中的kubectl proxy –port=8001指令只能监听127.0.0.1的代理请求,不适用于测试环境和虚拟机环境,因为使用的ip地址不是127.0.0.1。

此时使用kubectl proxy –port=8001 –address=\

pyspark示例运行错误

示例中的数据源存在问题,可使用本地文件运行,例如“sc.textFile(“/opt/spark/licenses/*”).map(lambda s: len(s.split())).sum()”

Zeppelin webui使用问题

同样只能通过localhost或127.0.0.1访问,可以通过将zeppelin service类型配置为NodePort。参考spark-20160427.zip中的zeppelin-service.yaml。

使用方法为:

使用zeppelin-service.yaml创建zeppelin service,可通过spec.ports.nodePort指定端口,不指定时为端口随机。

使用kubectl describe svc zeppelin|grep NodePort指令查看端口。

在浏览器中访问任意节点ip:NodePort访问zeppelin webui。

点击“Create new note”,输入Note Name。

在新页面中执行以下内容:

%pyspark

print sc.textFile("/opt/spark/licenses/*").map(lambda s: len(s.split())).sum()

该示例会统计zeppelin本地/opt/spark/licenses/目录下的所有文件的单词数量,几秒后会看到执行结果。

基于tenxcloud镜像库搭建

需要根据k8s源码中的examples/spark/下的yaml文件搭建,将所有yaml文件复制到工作目录下。

修改spark-master-controller.yaml和spark-worker-controller.yaml:

* spec.template.spec.containers.command均修改为“/start.sh”

* spec.template.spec.containers.images分别修改为index.tenxcloud.com/google_containers/spark-master:1.5.2_v1和index.tenxcloud.com/google_containers/spark-worker:1.5.2_v1

zeppelin-controller.yaml使用的镜像修改为index.tenxcloud.com/google_containers/zeppelin:v0.5.6_v1

修改完成后,按k8s官方示例的步骤启动即可。

简易的spark-driver

由于zeppelin镜像非常大,拉取会消耗很多时间。可以使用下面的spark-driver.yaml创建一个简易的spark-driver:

kind: ReplicationController

apiVersion: v1

metadata:

name: spark-driver

spec:

replicas: 1

selector:

component: spark-driver

template:

metadata:

labels:

component: spark-driver

spec:

containers:

- name: spark-driver

image: index.tenxcloud.com/google_containers/spark-driver:1.5.2_v1

resources:

requests:

cpu: 100m

创建后,使用kubectl exec <spark-driver-podname> -it pyspark即可访问。

本文转自CSDN-

转载地址:http://dcosl.baihongyu.com/

你可能感兴趣的文章
LOJ #2985. 「WC2019」I 君的商店
查看>>
CSS 基本知识
查看>>
多选框
查看>>
Switf与OC混合开发流程
查看>>
MySQL数据库----多表查询
查看>>
查看日志文件组状态信息+切换日志文件组+手动切换日志文件组+清空日志文件组+...
查看>>
【转】Netty系列之Netty高性能之道
查看>>
CAM350对比两个gerber之间的差异
查看>>
New Concept English three (56)
查看>>
for 循环
查看>>
lamp+nginx代理+discuz+wordpress+phpmyadmin搭建
查看>>
Hash(LCP) || 后缀数组 LA 4513 Stammering Aliens
查看>>
python全栈开发 * 进程之间的通信,进程之间数据共享 * 180726
查看>>
[HNOI2007]分裂游戏
查看>>
JSON数据传递
查看>>
Android Studio 小技巧(2):AS中Button文字默认大写的问题
查看>>
用Python将word文件转换成html(转)
查看>>
移动widget开发
查看>>
http协议相关参考资料
查看>>
牛客寒假6-B.煤气灶
查看>>