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,开发者可以很 ...
随机推荐
- OpenSSL学习笔记
SSL缺省只进行server端的认证,客户端的认证是可选的.以下是其流程图(摘自TLS协议). 加密算法介绍: 对称加密: DES:date encrption standard,56bit 3DES ...
- 重写equals()方法也要重写hashcode()方法
如果我们对equals方法进行了重写,建议一定要对hashCode方法重写,以保证相同的对象返回相同的hash值,不同的对象返回不同的hash值.
- js(jQuery)相关随笔
//获取所有name='id'.被选择的的多选框var idArr = $("input[type='checkbox'][name='id']:checked");//将这些多选 ...
- centos6安装系统时选包
date: 2018-06-05 11:44:06 1,系统:minimal 2,包组: Base System : Base.Compatibility libraries.Deb ...
- 【BZOJ1898】[Zjoi2005]Swamp 沼泽鳄鱼 矩阵乘法
[BZOJ1898][Zjoi2005]Swamp 沼泽鳄鱼 Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎 ...
- Spring---Bean使用外部属性文件
在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean 配置相分离 Spring 提供了 ...
- 一直深深困扰我的问题——hadoop 重启集群后,之前运行的job运行状态都丢失了
努力之后总是存在回报的,我花了三天时间终于找到了问题所在: 配置文件yarn-site.xml: <property> <name>yarn.resourcema ...
- 在Mac下使用ll,la,l
一: 用户目录下建立一个脚本“.bash_profile”,并输入以下内容即可: alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' 二: sou ...
- Ubuntu 下 chromium浏览器的标签乱码
最近使用ubuntu系统,安装了个chromium浏览器,标题不会乱码,不过标签乱码,火狐浏览器没有这个问题,强大的互联网告诉我是少字体的原因,执行下面的指令即可. sudo apt-get inst ...
- 权限认证与授权(Shrio 框架)
权限概述 认证: 系统提供的用于识别用户身份的功能, 通常登录功能就是认证功能; -- 让系统知道你是谁 授权: 系统授予用户可以访问哪些功能的证书. -- 让系统知道你能做什么! 常见的权限控制方式 ...