1、创建Dockerfile文件,内容如下

# 基础镜像,包括jdk
FROM openjdk:8u131-jre-alpine #作者
LABEL maintainer "tony@163.com" #用户
USER root #编码 ENV LANG=C.UTF-8 \
TZ=Asia/Shanghai #下载到时候安装spark需要的工具 RUN apk add --no-cache --update-cache bash curl tzdata wget tar \
&& cp /usr/share/zoneinfo/$TZ /etc/localtime \
&& echo $TZ > /etc/timezone #设置工作目录 WORKDIR /usr/local #拷贝 当下载过慢时先下载到本地在拷贝
# COPY spark-2.4.0-bin-hadoop2.7.tgz /usr/local #下载spark RUN wget "http://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz" \
&& tar -vxf spark-* \
&& mv spark-2.4.0-bin-hadoop2.7 spark \
&& rm -rf spark-2.4.0-bin-hadoop2.7.tgz #设定spark的home ENV SPARK_HOME=/usr/local/spark \
JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk \
PATH=${PATH}:${JAVA_HOME}/bin:${SPARK_HOME}/bin #暴露端口,8080 6066 7077 4044 18080 EXPOSE 6066 8080 7077 4044 18080 #工作目录 WORKDIR $SPARK_HOME CMD ["/bin/bash"]

2、在Dockerfile所在目录下构建镜像

docker build -t spark:v2.4.0 .

3、启动主节点

docker run -itd --name spark-master -p : -p : -p : -h spark-master spark:v2.4.0 ./bin/spark-class org.apache.spark.deploy.master.Master

4、启动从节点

docker run -itd --name spark-worker -P -h spark-worker --link spark-master spark:v2.4.0 ./bin/spark-class org.apache.spark.deploy.worker.Worker spark://spark-master:7077

5、浏览器访问

http://192.168.75.142:8081/

6、启动spark-shell客户端

docker exec -it 99306051a9d4 ./bin/spark-shell

其中 99306051a9d4 是 spark-master 的容器ID

7、spark-shell测试

scala> val file = sc.textFile("/usr/local/spark/bin/beeline")
file: org.apache.spark.rdd.RDD[String] = /usr/local/spark/bin/beeline MapPartitionsRDD[] at textFile at <console>: scala> val words = file.flatMap(line => line.split(" ")).map(word => (word,)).reduceByKey((a,b) => a+b)
words: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[] at reduceByKey at <console>: scala> words.collect
res0: Array[(String, Int)] = Array(($CLASS,), (Software,), (Unless,), (this,), (starting,), (under,), (The,), (limitations,),
("$0")"/find-spark-home,1), (Figure,1), (express,1), (contributor,1), (#,20), (WITHOUT,1), ("AS,), (#!/usr/bin/env,), (See,), (License.,),
(for,), (fi,), (software,), (IS",1), (obtain,1), (ANY,1), (SPARK_HOME,1), (out,1), (required,1), (2.0,1), (OR,1), (file,3), (the,9), (-o,1),
(licenses,1), (not,1), (either,1), (if,2), (posix,2), (source,1), (Apache,2), (then,1), ("License");,1), (language,1), (License,3), (Enter,1),
(permissions,1), (WARRANTIES,1), (license,1), (by,1), (];,1), ("$(dirname,), (an,), ([,), (agreed,), (Version,), (implied.,), (KIND,,),
(is,), ((the,), (exec,), ("${SPARK_HOME}",), (agreements.,), (on,), (You,), (one,)...
scala>

docker使用Dockerfile搭建spark集群的更多相关文章

  1. 使用Docker搭建Spark集群(用于实现网站流量实时分析模块)

    上一篇使用Docker搭建了Hadoop的完全分布式:使用Docker搭建Hadoop集群(伪分布式与完全分布式),本次记录搭建spark集群,使用两者同时来实现之前一直未完成的项目:网站日志流量分析 ...

  2. 如何基于Jupyter notebook搭建Spark集群开发环境

    摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...

  3. 实验室中搭建Spark集群和PyCUDA开发环境

    1.安装CUDA 1.1安装前工作 1.1.1选取实验器材 实验中的每台计算机均装有双系统.选择其中一台计算机作为master节点,配置有GeForce GTX 650显卡,拥有384个CUDA核心. ...

  4. 从0到1搭建spark集群---企业集群搭建

    今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群. 一.下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hado ...

  5. 搭建spark集群

    搭建spark集群 spark1.6和hadoop2.61.准备hadoop环境:2.准备下载包:3.解压安装包:tar -xf spark-1.6.0-bin-hadoop2.6.tgz4.修改配置 ...

  6. docker容器中搭建kafka集群环境

    Kafka集群管理.状态保存是通过zookeeper实现,所以先要搭建zookeeper集群 zookeeper集群搭建 一.软件环境: zookeeper集群需要超过半数的的node存活才能对外服务 ...

  7. 大数据平台搭建-spark集群安装

    版本要求 java 版本:1.8.*(1.8.0_60) 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  8. 03.搭建Spark集群(CentOS7+Spark2.1.1+Hadoop2.8.0)

    接上一篇:https://www.cnblogs.com/yjm0330/p/10077076.html 一.下载安装scala 1.官网下载 2.spar01和02都建立/opt/scala目录,解 ...

  9. docker+phantomjs+haproxy 搭建phantomjs集群

    目标: 搭建一个远程的phantomjs服务器,提供高可用服务,支持并发. 原料: 1.docker环境.docker-compose环境 2.phantomjs镜像: docker.io/werni ...

随机推荐

  1. FTP匿名访问修复方法

    window2003 window2008

  2. Win10 虚拟桌面

    我们可以建立多个桌面,各个桌面上运行的窗口任务互不干扰,这就是虚拟桌面 创建虚拟桌面:Win + Ctrl + D查看虚拟桌面:Win + Tab删除当前虚拟桌面:Win + Ctrl + F4切换到 ...

  3. warning C4305:“初始化”:从“double”到“float”截断

    编译VS项目时出现警告: warning C4305:“初始化”:从“double”到“float”截断(warning C4305: 'initializing' : truncation from ...

  4. C++程序中调用其他exe可执行文件方法

    在编程过程中有个需求,点击某个按钮需要弹出系统的声音控制面板.在网上查了下代码中调用其他exe程序或者打开其他文件的方法. 自己借鉴网上的文章稍微总结下,加深下印象,也给方便自己用. 在代码中调用其他 ...

  5. codeforces水题100道 第二题 Codeforces Beta Round #4 (Div. 2 Only) A. Watermelon (math)

    题目链接:http://www.codeforces.com/problemset/problem/4/A题意:一个整数能否表示成两个正偶数的和.C++代码: #include <cstdio& ...

  6. angular-file-upload+struts的使用

    参考帖子 http://www.cnblogs.com/wangzun/p/6099884.html http://www.cnblogs.com/highriver/archive/2011/06/ ...

  7. Objective-c官方文档 怎么使用对象

    版权声明:原创作品,谢绝转载!否则将追究法律责任.   对象发送和接受消息 尽管有不同的方法来发送消息在对象之间,到目前位置是想中括号那样[obj doSomeThing]:左边是接受消息的接收器,右 ...

  8. Androidの矢量图形之VectorDrawable研究

    5.0以上支持VectorDrawable了,可以创建vector的xml资源文件.vector其实就使用来绘制矢量图形的. 看一个例子: <?xml version="1.0&quo ...

  9. LeetCode-394. Decode String(DFS)

    Given an encoded string, return it's decoded string. The encoding rule is: k[encoded_string], where ...

  10. 写一个自定义的控件接口 C#

    以下是我的测试代码:APP_Code/ucInterface.cs /* APP_Code/ucInterface.cs */ /// <summary> /// Summary desc ...