天天看點

Intel Analytics-Zoo容器化鏡像制作及使用

前言,其實zoo官網本身是提供docker鏡像的,隻是不能提任務在yarn上排程,跑在單機docker環境下,上不了生産。

如果想省事完全可以參閱官方提供的鏡像使用手冊,不必自己建構。

位址:https://analytics-zoo.github.io/master/#DockerUserGuide/

1.建構Zoo鏡像

建構鏡像需要如下環境

Anaconda (包含Python、Analytics-Zoo、Notebook等運作環境)

JDK

Hadoop

Spark

1.1Anaconda安裝環境與安裝包制作

由于在建構鏡像階段安裝軟體速度較慢,是以使用已經安裝好環境的anaconda。

如果沒有安裝,直接在實體機上執行Anaconda3-5.2.0-Linux-x86_64.sh也可以,然後安裝-AnalyticsZoo、Notebook等運作環境即可。

1.2 start-notebook.sh腳本

#!/bin/bash

jupyter notebook  --allow-root --no-browser  --ip='*' --port=$NotebookPort   --notebook-dir='/opt/workspace' --NotebookApp.token=$NotebookToken

$NotebookPort和$NotebookToken可以在啟動的環境變量裡配置

--notebook-dir='/opt/workspace' 表示notebook預設工作空間

1.3建構zoo鏡像

如下是建構zoo鏡像的Dockerfile

FROM centos:centos7.4.1708

WORKDIR /

#安裝spark  暫時沒用到,可删

ADD  spark.master.tar.gz  /usr/local

#安裝hadoop 

ADD  hadoop.master.tar.gz /usr/local

#安裝 Anaconda(已包含所需環境)

ADD  anaconda3.tar.gz /root/

#安裝 JDK

ADD  jdk-8u121-linux-x64.tar.gz /usr/local

#拷貝notebook啟動腳本

COPY start-notebook.sh /opt

#建立notebook工作目錄

RUN  mkdir -p /opt/workspace/

#配置Java Hadoop Anaconda環境變量

ENV  JAVA_HOME=/usr/local/jdk1.8.0_121  HADOOP_COF_DIR=/usr/local/hadoop/etc/hadoop  PATH=/root/anaconda3/bin:$JAVA_HOME/bin:$PATH  JRE_HOME=${JAVA_HOME}/jre CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

ENTRYPOINT [""]

其中spark和hadoop都是官網提供的包,改了名字。

執行鏡像建構指令

docker build -t zoo:0.1.0 .
Intel Analytics-Zoo容器化鏡像制作及使用

2.啟動鏡像配置環境

執行如下啟動腳本

docker run -itd  --net=host  -e NotebookPort=12345  -e NotebookToken=qwer1234 zoo:0.1.0  bash

其中NotebookPort是啟動notebook端口号,不能與本機已使用端口沖突,NotebookToken為notebook登陸密碼,都不加引号。

修改hadoop叢集配置,使容器能夠感覺叢集

修改/etc/host和/usr/local/hadoop/etc/hadoop/slave檔案

hosts檔案

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

:1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.180.210.176 master

10.180.210.28 node3

10.180.210.8 node2

Slave檔案

master

node3

node2

執行notebook啟動腳本

cd /opt

./start-notebook.sh

Intel Analytics-Zoo容器化鏡像制作及使用

3.運作測試

在浏覽器中通路notebook,位址容器所在機器IP: NotebookPort 密碼為NotebookToken

建立python3工程,并執行如下代碼

from zoo import init_spark_on_yarn

sc = init_spark_on_yarn(hadoop_conf="/usr/local/hadoop/etc/hadoop",conda_name="zoo", num_executor=2,executor_cores=1,executor_memory="2g",driver_memory="1g",driver_cores=4,extra_executor_memory_for_ray="2g")

執行結果如下:

在notebook中檢視執行結果:

Intel Analytics-Zoo容器化鏡像制作及使用

在yarn中檢視運作中的任務:

Intel Analytics-Zoo容器化鏡像制作及使用

繼續閱讀