1. 程式人生 > >制作spark鏡像

制作spark鏡像

master 操作系統 無法使用 leg otp swd 要求 ado roo

構建鏡像

  添加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
即可。

制作spark鏡像