首页新闻动态正文

-k8s应用[一]-spark-on-k8s【黑马大数据培训】

更新时间:2022年12月21日 18时25分28秒 来源:黑马程序员论坛

黑马中级程序员课程

步骤: 创建一个包含Spark应用程序的组件,可以部署在Kubernetes(即Docker容器)上让自己处于启动Spark工作的位置提交要在Kubernetes上运行的Spark应用程序在Kubernetes上运行Spark Shell 详细过程涉及更多一点。 以下是本指南涵盖的内容概述: Apache Spark作业和部署模式 驱动程序本身可以在启动环境的外部或内部运行(“客户端模式”与“集群模式”)。 获取 Apache Spark
[AppleScript] 纯文本查看 复制代码
wget http://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.6.tgz tar xvzf spark-2.4.0-bin-hadoop2.6.tgz cd spark-2.4.0-bin-hadoop2.6
创建 Spark Docker 镜像 下面代码 使用 ab6539763/xiaozuoquan仓库 在 Docker Hub
[AppleScript] 纯文本查看 复制代码
[root@master spark-2.4.0-bin-hadoop2.6]# export DOCKER_IMAGE=ab6539763/xiaozuoquan:spark-2.4.0-hadoop-2.6 [root@master spark-2.4.0-bin-hadoop2.6]# docker build -t $DOCKER_IMAGE -f kubernetes/dockerfiles/spark/Dockerfile . Sending build context to Docker daemon 256.2MB Step 1/15 : FROM openjdk:8-alpine ---> a3562aa0b991 Step 2/15 : ARG spark_jars=jars ---> Using cache ---> dd976e5ec7c2 Step 3/15 : ARG img_path=kubernetes/dockerfiles ---> Using cache ---> 51ea0992c098 Step 4/15 : ARG k8s_tests=kubernetes/tests ---> Using cache ---> a82f513cb245 Step 5/15 : RUN set -ex && apk upgrade --no-cache && apk add --no-cache bash tini libc6-compat linux-pam && mkdir -p /opt/spark && mkdir -p /opt/spark/work-dir && touch /opt/spark/RELEASE && rm /bin/sh && ln -sv /bin/bash /bin/sh && echo "auth required pam_wheel.so use_uid" >> /etc/pam.d/su && chgrp root /etc/passwd && chmod ug+rw /etc/passwd ---> Using cache ---> d23ff7efb7ef Step 6/15 : COPY ${spark_jars} /opt/spark/jars ---> Using cache ---> 08989bbc0bc2 Step 7/15 : COPY bin /opt/spark/bin ---> Using cache ---> c190400b4bfe Step 8/15 : COPY sbin /opt/spark/sbin ---> Using cache ---> 3afb65ed2ddc Step 9/15 : COPY ${img_path}/spark/entrypoint.sh /opt/ ---> Using cache ---> f8e4653fed2d Step 10/15 : COPY examples /opt/spark/examples ---> Using cache ---> 55f649559fb4 Step 11/15 : COPY ${k8s_tests} /opt/spark/tests ---> Using cache ---> 7487005d56ce Step 12/15 : COPY data /opt/spark/data ---> Using cache ---> 9999f9a6d47a Step 13/15 : ENV SPARK_HOME /opt/spark ---> Using cache ---> c62b3ee36171 Step 14/15 : WORKDIR /opt/spark/work-dir ---> Using cache ---> 306e7af338b2 Step 15/15 : ENTRYPOINT [ "/opt/entrypoint.sh" ] ---> Using cache ---> 501ddb9b656c Successfully built 501ddb9b656c Successfully tagged ab6539763/xiaozuoquan:spark-2.4.0-hadoop-2.6 [root@master spark-2.4.0-bin-hadoop2.6]# [root@master spark-2.4.0-bin-hadoop2.6]# docker push $DOCKER_IMAGE The push refers to repository [docker.io/ab6539763/xiaozuoquan] 211eade71ef8: Pushed 5260b5bec617: Pushed 64d5f2d08a3a: Pushed aee1e5aa69e9: Pushed ff17e3b7f9d4: Pushed b67f640657c6: Pushed
spark 应用使用自己的账户 spark-sa
[AppleScript] 纯文本查看 复制代码
[root@master ~]# kubectl create namespace spark1 namespace/spark1 created [root@master ~]# kubectl create serviceaccount spark-sa -n spark1 serviceaccount/spark-sa created [root@master ~]# kubectl create rolebinding spark-sa-rb --clusterrole=edit --serviceaccount=spark1:spark-sa -n spark1 rolebinding.rbac.authorization.k8s.io/spark-sa-rb created
运行Job样例 (集群模式) 设置k8s用户验证环境
[AppleScript] 纯文本查看 复制代码
[root@master ~]# export NAMESPACE=spark1 [root@master ~]# export SA=spark-sa [root@master ~]# export K8S_CACERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt [root@master ~]# export K8S_TOKEN=/var/run/secrets/kubernetes.io/serviceaccount/token [root@master ~]#
运行spark样例Job
[AppleScript] 纯文本查看 复制代码
bin/spark-submit --name sparkpi-1 \ --master k8s://https://kubernetes.default.svc.cluster.local:443 \ --deploy-mode cluster \ --class org.apache.spark.examples.SparkPi \ --conf spark.kubernetes.driver.pod.name=$DRIVER_NAME \ --conf spark.kubernetes.authenticate.submission.caCertFile=$K8S_CACERT \ --conf spark.kubernetes.authenticate.submission.oauthTokenFile=$K8S_TOKEN \ --conf spark.kubernetes.authenticate.driver.serviceAccountName=$SA \ --conf spark.kubernetes.namespace=$NAMESPACE \ --conf spark.executor.instances=3 \ --conf spark.kubernetes.container.image=$DOCKER_IMAGE \ local:///usr/local/spark/examples/jars/spark-examples_2.11-2.4.0.jar 1000

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 软件测试培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


分享到:
在线咨询 我要报名
和我们在线交谈!