Docker images to:
Add the following services to your docker-compose.yml
to integrate a Spark master and Spark worker in your BDE pipeline:
version: '3'
services:
spark-master:
image: bde2020/spark-master:3.1.1-hadoop3.2
container_name: spark-master
ports:
- "8080:8080"
- "7077:7077"
environment:
- INIT_DAEMON_STEP=setup_spark
spark-worker-1:
image: bde2020/spark-worker:3.1.1-hadoop3.2
container_name: spark-worker-1
depends_on:
- spark-master
ports:
- "8081:8081"
environment:
- "SPARK_MASTER=spark://spark-master:7077"
spark-worker-2:
image: bde2020/spark-worker:3.1.1-hadoop3.2
container_name: spark-worker-2
depends_on:
- spark-master
ports:
- "8082:8081"
environment:
- "SPARK_MASTER=spark://spark-master:7077"
Make sure to fill in the INIT_DAEMON_STEP
as configured in your pipeline.
To start a Spark master:
docker run --name spark-master -h spark-master -e ENABLE_INIT_DAEMON=false -d bde2020/spark-master:3.1.1-hadoop3.2
To start a Spark worker:
docker run --name spark-worker-1 --link spark-master:spark-master -e ENABLE_INIT_DAEMON=false -d bde2020/spark-worker:3.1.1-hadoop3.2
Building and running your Spark application on top of the Spark cluster is as simple as extending a template Docker image. Check the template's README for further documentation.
The BDE Spark images can also be used in a Kubernetes enviroment.
To deploy a simple Spark standalone cluster issue
kubectl apply -f https://raw.githubusercontent.com/big-data-europe/docker-spark/master/k8s-spark-cluster.yaml
This will setup a Spark standalone cluster with one master and a worker on every available node using the default namespace and resources. The master is reachable in the same namespace at spark://spark-master:7077
.It will also setup a headless service so spark clients can be reachable from the workers using hostname spark-client
.
Then to use spark-shell
issue
kubectl run spark-base --rm -it --labels="app=spark-client" --image bde2020/spark-base:3.1.1-hadoop3.2 -- bash ./spark/bin/spark-shell --master spark://spark-master:7077 --conf spark.driver.host=spark-client
To use spark-submit
issue for example
kubectl run spark-base --rm -it --labels="app=spark-client" --image bde2020/spark-base:3.1.1-hadoop3.2 -- bash ./spark/bin/spark-submit --class CLASS_TO_RUN --master spark://spark-master:7077 --deploy-mode client --conf spark.driver.host=spark-client URL_TO_YOUR_APP
You can use your own image packed with Spark and your application but when deployed it must be reachable from the workers.One way to achieve this is by creating a headless service for your pod and then use --conf spark.driver.host=YOUR_HEADLESS_SERVICE
whenever you submit your application.
0.前言 知道我的兄弟朋友们可能知道,我最近工作中,我们老大叫我利用Docker构建大数据开发环境。今天真的十分开心,我利用Docker-Compose构建出Kafka-Spark-MySQL的云平台大数据开发环境,并利用自己撰写的spark streaming程序实现了实时数据的处理。 本篇文章主要介绍利用Docker-Compose构建出Spark的运行环境,和前面的Kafka和MySQL相似
此处的样例是参考别人的,之后自己整合一套可以使用的1+3模式的集群。spark镜像可以自行在docker hub选择自己想要的进行替换即可。 备注:此处未开启日志功能,在 WEB 界面上面找不到 log的,如需开启,可自行添加参数或自己进入容器手动修改。 可参考链接: 基于docker-compose安装hadoop 1+3模式集群. 1、docker-compose.yml: version:
docker-compose 部署spark集群(2.4版本) 在网上看到的docker spark镜像大多都是低版本的,而且jdk版本都低于8这个版本,以至于在提交应用的时候,运行失败! 而后我对spark镜像内的scala版本jdk版本spark版本进行升级后重新打包镜像。这里我打包成功后的各环境版本为: scala版本:2.11.12 jdk版本:HotSpot 1.8.0_111 spar
kafka的安装依赖于zookeeper,所以这里将通过docker-compose先安装zookeeper集群,并通过zkui作为可视化面板进行查看,然后安装单机kafka,并注册到zk集群上。同时,通过开源软件kafka-ui作为可视化面板进行监控和操作。 一、zookeeper与zk-ui的安装 version: '3' services: zk1: image: zookee
安装包 链接:https://pan.baidu.com/s/1WE4Cywsz4w3XHd0v1ObbzQ 提取码:5yh7 1、安装docker (1)上传docker安装包,本次上传至”/opt/”文件夹下 (2)cd /opt (3)执行tar xzvf docker-20.10.16.tgz (4)进入docker目录,将目录下的所有文件拷贝至”/usr/bin/” cd docker
CentOS下安裝docker-ce時docker-ce conflicts with 2:docker-1.13.1-75.git8633870.el7.centos.x86_64錯誤及解決辦法 前言 發生原因 錯誤訊息 解決辦法 重新安裝docker-ce 其它docker相關文章 前言 本文是筆者在照著docker官網INSTALL DOCKER CE (in CentOS)教學在CentO
一、docker-compose安装kafka及springboot整合kafka 二、docker-compose 这里有两个要注意的点 1.不用kafka-manager的原因是虚拟机重启后这个容器就无法工作了,日志会告诉你删除容器里的一个文件,没有找到解决方案,遂放弃 2.成功安装后用idea或其他应用程序访问连接不上或无法发送消息或无法监听,这个时候需要去windows配置主机映射,修改C
一、解决的问题 二、与虚拟机的比较 三、优势 四、使用场景 五、镜像与容器 参考资料 一、解决的问题 由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。 Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环
我检查了垃圾箱,里面没有ping
第一章 Docker介绍1 1.1 docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的\[Linux\]机器上,也可以实现\[虚拟化\]。容器是完全使用\[沙箱\]机制,相互之间不会有任何接口。 1.2 Docker是什么? Docker是一个程序运行、测试、交付的开放平台,Docker被设计为能够使你快速地交
推荐使用 Swoole 官方 Docker:https://github.com/swoole/docker-swoole
Docker Commands Commands Notes docker ps -a Show all containers on the system docker ps Show only currently running containers docker run <NAME> Creates & runs a docker container via an image docker i
环境准备 1. 下载镜像及配置文件 链接: https://pan.baidu.com/s/1hw0h1KUlhSirFBId6kh8mw 提取码: 1wng $ ls backend-0.0.8.tar.gz env.list grpc-go-greeting-0.1.tar.gz nginx-lb.conf nginx-perf.conf nginxplus-23-r1.tar.
本部分常用命令1. docker network docker network create docker network ls docker network inspect docker network rm // 将一个已经存在的容器加入到一个 docker 网络 docker network connect docker network disconnect2. 基本命令调试相关
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。