docker for spark
项目需求,有一个spark-streaming的程序,读kafka的数据,需要构建一个不使用hadoop的spark
以下建立的镜像参考网络,可以稍加修改就可以使用不同的版本。
可单独启动master,worker来构建一个standaline的集群。
也可以默认启动,启动后,构建的是一个master,两个worker的集群。
使用的文件如下:
start-spark spark-2.2.1-bin-hadoop2.7.tgz Dockerfile
#start-spark
#!/bin/bash if [[ "${1}" = 'master' ]]; then
# Start Spark Master
spark-class org.apache.spark.deploy.master.Master -h $(hostname) 2>&1 >/data/sparklog-server.log
elif [[ "${1}" = 'worker' ]]; then
# Start Spark Worker
spark-class org.apache.spark.deploy.worker.Worker spark://$2:7077 2>&1 >/data/sparklog.log
else
#start master and two workers
nohup spark-class org.apache.spark.deploy.master.Master -h $(hostname) 2>&1 >>/data/sparklog-server.log &
#sleep 5 to wait spark-server start
sleep 3
nohup spark-class org.apache.spark.deploy.worker.Worker $(tail -n 1 /etc/hosts |awk '{print $1}'):7077 2>&1 >/data/sparkwlog1.log &
nohup spark-class org.apache.spark.deploy.worker.Worker $(tail -n 1 /etc/hosts |awk '{print $1}'):7077 2>&1 >/data/sparkwlog2.log
exit 1
fi
Dockerfile
FROM openjdk:8-jre MAINTAINER shyaoxh@cn.ibm.com WORKDIR spark
COPY spark*.tgz ./
RUN tar zxf spark*.tgz && mv spark-2.2.1-bin-hadoop2.7/* ./ \
&& rm -fr spark-2.2.1-bin-hadoop2.7 && rm spark*.tgz EXPOSE 6066 7077 8080 8081 # Copy start script
COPY start-spark /usr/bin/start-spark
RUN chmod +x /usr/bin/start-spark ENV SPARK_HOME /spark
ENV PATH /spark/bin:$PATH
ENV PATH /spark/sbin:$PATH #volume /data
VOLUME /data #entrypoint
CMD ["start-spark","all"]
使用方法:
构建 docker build -t spark .
1.启动master
#start spark master
注意:--net 是我自己已经创建的一个桥接网络
docker run --rm -it --name spark_master -p 7077:7077 -p 8080:8080 --net loginsight -h spark_master spark start-spark master
2.启动worker
docker run --rm -it --net loginsight --name spark_worker1 spark start-spark worker $(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' spark_master)
3.默认启动
docker run --rm -it --name spark_master -p 7077:7077 -p 8080:8080 --net loginsight -h spark_master spark
docker for spark的更多相关文章
- 使用docker打造spark集群
前提条件:安装好了docker,见我的另一篇博客,Docker安装 有两种方式, Spark官方repo里,docker文件夹下的脚本.官方的这个脚本封装很薄,尽可能把必要的信息展示出来. AMPLa ...
- 利用docker搭建spark hadoop workbench
目的 用docker实现所有服务 在spark-notebook中编写Scala代码,实时提交到spark集群中运行 在HDFS中存储数据文件,spark-notebook中直接读取 组件 Spark ...
- Docker 搭建Spark 依赖singularities/spark:2.2镜像
singularities/spark:2.2版本中 Hadoop版本:2.8.2 Spark版本: 2.2.1 Scala版本:2.11.8 Java版本:1.8.0_151 拉取镜像: [root ...
- Docker 搭建Spark 依赖sequenceiq/spark:1.6镜像
使用Docker-Hub中Spark排行最高的sequenceiq/spark:1.6.0. 操作: 拉取镜像: [root@localhost home]# docker pull sequence ...
- docker on spark
从docker 仓库 pull 镜像 docker pull sequenceiq/spark:1.4.0 构建 docker 镜像 docker build –rm -t sequenceiq/sp ...
- 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)
上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...
- spark docker java kubernetes 获取cpu内核/线程数问题
升级服务从spark2.3.0-hadoop2.8 至 spark2.4.0 hadoop3.0 一日后导致spark streaming kafka消费数据积压 服务不是传统的部署在yarn上,而是 ...
- Docker中提交任务到Spark集群
1. 背景描述和需求 数据分析程序部署在Docker中,有一些分析计算需要使用Spark计算,需要把任务提交到Spark集群计算. 接收程序部署在Docker中,主机不在Hadoop集群上.与Spa ...
- Docker on YARN在Hulu的实现
这篇文章是我来Hulu这一年做的主要工作,结合当下流行的两个开源方案Docker和YARN,提供了一套灵活的编程模型,目前支持DAG编程模型,将会支持长服务编程模型. 基于Voidbox,开发者可以很 ...
随机推荐
- 目标检测YOLO算法-学习笔记
算法发展及对比: 17年底,mask-R CNN YOLO YOLO最大的优势就是快 原论文中流程,可以检测出20类物体. 红色网格-张量,在这样一个1×30的张量中保存的数据 横纵坐标中心点缩放到0 ...
- GCC命令基础
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点, 现在很多程序员都应用GCC,怎样才能更好的应用GCC. 目前,GCC可 ...
- Linux命令之乐--md5sum
md5sum命令用于生成和校验文件的md5值.它会逐位对文件的内容进行校验,它常用于检查文件的完整性. 读取文件的MD5值 [root@new ~]# md5sum /usr/local/sbin/* ...
- 第三篇:C++ 中的几种初始化
前言 阅读C++教材时,想必你听过复制初始化,直接初始化,值初始化这三个概念吧.笔者本人常将其混淆,遂在此记录下它们的具体含义以便日后查阅. 复制初始化( copy-initialization ) ...
- 设置eclipse中python脚本的编码格式
今天在运行python脚本时报如下错误: SyntaxError: Non-ASCII character '\xe5' in file D:\pythonlearn1\src\day01\direc ...
- Linux系统时间快8个小时
1.vi /etc/sysconfig/clock #编辑文件ZONE="Asia/Shanghai"UTC=false #设 ...
- 170421、maven自定义变量及属性
一.自定义变量 <!-- 全局属性配置 --> <properties> <project.build.name>tools</project.build.n ...
- SaltStack配置管理-LAMP状态设计
上一篇:SaltStack之Salt-ssh 配置文件模板 apache: pkg.installed: - name: httpd service.running: - name: httpd /e ...
- [linux][shell]负载均衡下多个服务器代码同步方案
说明: 服务器是腾讯的云服务器(腾讯用的是linux container),远程登陆云服务器需要使用代理,在服务器中不能访问外网,所以当时也就没有去想做svn 需求: 1. 把同样的代码同步到不同的服 ...
- 病毒侵袭---hdu2896(AC自动机)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2896 输入的字符是所有可见的ASCII码(共有127个)所以要注意一下: 把结果存到一个数组中,然后输 ...