天天看点

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容器化镜像制作及使用

继续阅读