工作日志——基于k8s搭建spark集群

使用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-工作日志——基于k8s搭建spark集群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值