zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    翻译一下libtiff的手册
    LIBTIFF读写黑白TIFF
    LIBTIFF存储代码,存图、拼图
    几点TIFF的说明
    TIFF Tag TileWidth
    TIFF Tag Orientation
    OpenCV 加速图像处理
    Qt QString 、String、char* 三者之间相互转换
    PackBits解压缩算法
    关于LZW算法的压缩与解压缩
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/9909317.html
Copyright © 2011-2022 走看看