• 制作spark镜像


    构建镜像

      添加jdk引用(可以使用yum进行安装);
      安装SSH
      碰到一个问题,执行systemctl的时候发生了异常:
        Failed to get D-Bus connection
      解决这个问题的方式就是:
     docker run --privileged -ti -e "container=docker" -v /sys/fs/cgroup:/sys/fs/cgroup centos /usr/sbin/init 
      这种启动方式将会导致操作系统重头启动,这个时候就会要求登录;牵涉到root密码问题,增加如下RUN指令首先密码重置;
     echo "root:rootpwd" | chpasswd
      之所以要这样处理可以算是centos7的一个bug吧(尽管这个bug是开始之初就公布出来的,可以在github的官网上面看到):正常启动docker无法使用systemctl,因为systemd采用的是fakeSystem;所以各种操作能够在Dockerfile中实现就在dockerFile中实现,不要再docker start(run)之后,再进入到里面的命令行来敲击“systemctl”。从实际情况来看-v后面部分似乎不需要指定也是可以的。
      以下是dockerifle核心内容:
    FROM daocloud.io/library/centos
    COPY spark-2.2.0-bin-hadoop2.7.tgz /opt
    COPY jdk1.8.tar.gz /opt
    RUN yum -y install openssh-server openssh-clients
    RUN echo "root:root" | chpasswd
    RUN systemctl enable sshd

      这里制作启动镜像,最好首先制作一个centos7-patch版本,安装上lsof,ssh,jdk等必备工具;然后基于此镜像之上,来制作spark镜像

    启动spark

    启动spark:
    /opt/sparkjarfolder/sbin/start-all.sh
    即可自动启动master以及worker节点
     
    spark的work节点启动的时候报错:JAVA_HOME is not set;
    在conf文件夹下面的spark-env.sh中增加一句:
     export JAVA_HOME=/opt/jdk1.8.0_40 
    即可。
  • 相关阅读:
    Linux ifconfig 命令
    linux sed命令就是这么简单
    让博客园博客自动生成章节目录索引
    linux中cat、more、less命令区别详解
    Linux yum源搭建及配置
    关于java中位运算的左移、右移、无符号右移
    一个老话题,short s=s+1的日常
    C语言移位运算符
    关于异或的一些东西和应用
    指针就算指向了常量也不能修改这个常量
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/7787765.html
Copyright © 2020-2023  润新知