65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Microsoft Azure 数据科学虚拟机上部署 BigDL

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2017 年 6 月 1 日

CPOL

5分钟阅读

viewsIcon

4475

为了更轻松地部署 BigDL,我们在 Linux (Ubuntu) 版的数据科学虚拟机 (DSVM) 的顶部添加了一个“部署到 Azure”按钮。

使用*部署到 Azure* 自动安装 BigDL

为了更轻松地部署 BigDL,我们在 Linux* (Ubuntu*) 版的数据科学虚拟机 (DSVM) 的顶部添加了一个“部署到 Azure”按钮。此按钮封装了创建新的 Azure* DSVM 所需的所有必要安装步骤,并在虚拟机 (VM) 预配完成后安装 BigDL。

Azure 虚拟机提供了一种机制,在通过 Azure 资源管理器 (ARM) 模板使用时,在预配后自动运行脚本。我们在 Github* 上发布了 Azure 资源管理器 (ARM) 模板和脚本,用于在 Azure 上创建 VM 时在 Linux (Ubuntu) DSVM 上安装 BigDL。

Deploy to Azure

单击*部署到 Azure* 按钮会将用户引导至 Azure 门户的向导,带领他们完成 VM 创建过程,并自动执行必要的脚本来安装/配置 BigDL,以便在 VM 成功预配后即可使用。用户可以直接运行*/opt/BigDL/run_notebooks.sh* 来启动 Jupyter* notebook 服务器以执行示例。

注意: 完全预配 DSVM 可能需要长达 10 分钟的时间 — 这是喝杯咖啡的绝佳时间!

请注意:为了方便使用,我们建议在 DSVM 预配提示中选择**密码**选项,而不是 **SSH** 选项。

Figure 1

为求完整,我们还在下面提供了手动分步安装过程,用于创建数据科学步骤,以防您已经拥有 DSVM (Ubuntu) 实例,或者只想了解上面自动化步骤的详细信息。

在 DSVM 上手动安装 BigDL

预配 DSVM

在开始之前,您需要通过访问 Azure 产品详细信息页 并按照 VM 创建向导中的说明,预配 Microsoft Linux (Ubuntu) 数据科学虚拟机。

Figure 2

Figure 3

配置 DSVM 时,请记下其公共 IP 地址或 DNS 名称;您需要它来通过您选择的连接工具连接到 DSVM。文本界面的推荐工具是 SSH 或 Putty。对于图形界面,Microsoft* 推荐使用名为 X2GO* 的 X 客户端。

注意: 如果您的网络管理员要求所有连接都必须通过您的网络代理,则可能需要正确配置代理服务器。DSVM 默认支持的唯一会话类型是 Xfce*。

构建 Intel 的 BigDL

切换到 root 并从 Github 克隆 BigDL;切换到已发布的 branch-0.1

sudo -s

     cd /opt

     git clone https://github.com/intel-analytics/BigDL.gi

     git checkout branch-0.1

使用 Spark* 2.0 构建 BigDL

     $ cd BigDL
       $ bash make-dist.sh -P spark_2.0

如果成功,您应该会看到以下消息

Figure 4

DSVM 配置步骤运行 BigDL 的示例

切换到 Python* 2.7。

     $ source /anaconda/bin/activate root

确认 Python* 版本。

     $ python - - version

Figure 5

安装 Python 包

     $ /anaconda/bin/pip install wordcloud
     $ /anaconda/bin/pip install tensorboard

创建运行 Jupyter* Notebook 和 TensorBoard* 的脚本文件

在克隆 BigDL 库的目录 (/opt/BigDL) 中,创建一个脚本,并创建包含以下内容的*run_notebook.sh* 文件

#begin run_notebook.sh
#!/bin/bash
#setup paths
BigDL_HOME=~/BigDL

#this is needed for MSFT DSVM
export PYTHONPATH=${BigDL_HOME}/pyspark/dl:${PYTHONPATH}
#end MSFT DSVM-specific config

#use local mode or cluster mode
#MASTER=spark://xxxx:7077 
MASTER="local[4]"
PYTHON_API_ZIP_PATH=${BigDL_HOME}/dist/lib/bigdl-0.1.0-python-api.zip
BigDL_JAR_PATH=${BigDL_HOME}/dist/lib/bigdl-0.1.0-jar-with-dependencies.jar
export PYTHONPATH=${PYTHON_API_ZIP_PATH}:${PYTHONPATH}
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook --notebook-dir=~/notebooks  --ip=* "

source ${BigDL_HOME}/dist/bin/bigdl.sh

${SPARK_HOME}/bin/pyspark \
    --master ${MASTER} \
    --driver-cores 5  \
    --driver-memory 10g  \
    --total-executor-cores 8  \
    --executor-cores 1  \
    --executor-memory 10g \
    --conf spark.akka.frameSize=64 \
  --properties-file ${BigDL_HOME}/dist/conf/spark-bigdl.conf \
    --py-files ${PYTHON_API_ZIP_PATH} \
    --jars ${BigDL_JAR_PATH} \
    --conf spark.driver.extraClassPath=${BigDL_JAR_PATH} \
    --conf spark.executor.extraClassPath=bigdl-0.1.0--jar-with-dependencies.jar
# end of create_notebook.sh
-----

chmod +x run_notebook.sh

在同一个 BigDL 目录中,创建包含以下内容的 start_tensorboard.sh 文件

#begin start_tensorboard.sh
PYTHONPATH=/anaconda/lib/python2.7/site-packages:$PYTHONPATH
/anaconda/lib/python2.7/site-packages/tensorboard/tensorboard --logdir=/tmp/bigdl_summaries
#end start_tensorboard.sh

请注意,“*/anaconda/lib/python2.7/site-packages/*”是依赖于安装的,并且在 DSVM 的未来版本中可能会发生变化。因此,如果这些说明开箱即用对您不起作用,您可能需要更新此路径。

Figure 6

记下日志末尾的 URL http://10.0.2.4:6006。使用它在您的 DSVM 浏览器中打开以查看 TensorBoard 窗格。

启动文本分类示例

通过不同终端中的 bash 命令执行*run_notebook.sh* 和*start_tensorboard.sh*

       $bash run_notebook.sh
       $bash start_tensorboard.sh

打开两个浏览器标签页,一个用于*text_classification.ipynb*,另一个用于**TensorBoard**。

导航到**文本分类**示例

https://:YOUR_PORT_NUMBER/notebooks/pyspark/dl/example/tutorial/simple_text_classification/text_classfication.ipynb# — 检查示例位置。

运行 notebook。这需要几分钟时间。最后,您会看到一个类似以下的损失图

Figure 7

您的 TensorBoard 在文本分类示例中可能看起来像这样。

Figure 8

自动化 DSVM 上 BigDL 的安装

Azure 虚拟机提供了一种机制,在通过 Azure 资源管理器 (ARM) 模板使用时,在预配后自动运行脚本。我们在 Github 上发布了 ARM 模板和脚本,用于在 Azure 上创建 VM 时在 Linux (Ubuntu) DSVM 上安装 BigDL。在同一个 Github 目录中,还有一个*部署到 Azure* 按钮,它将用户引导至 Azure 门户向导,带领他们完成 VM 创建,并自动执行上述脚本来安装/配置 BigDL,以便在 VM 成功预配后即可使用。用户可以直接运行*/opt/BigDL/run_notebooks.sh* 来启动 Jupyter notebook 服务器以执行示例。

结论

在本篇博文中,我们演示了只需几个简单的步骤,就可以利用运行在 Apache Spark* 上的 Intel BigDL 库,在 Microsoft 的数据科学虚拟机上执行深度学习作业。BigDL 在开源社区以及 Intel 的专用软件工程团队的支持下不断发展和演进。

资源

附录

安装和配置 Spark 1.6 以实现旧代码的实现

安装 Spark 1.6.1 (同时安装 spark 2.0)

安装 Spark 1.6.1:https://spark.apache.ac.cn/downloads.html
选择 1.6.1。
下载
​cd Downloads
tar -xzf spark-1.6.1-bin-hadoop2.6.tgz

将目录从下载位置移动到系统上存储 Spark 的位置。

Figure 9

切换回 Python 3.5 环境

     $source activate py35 (for Python 3.5)

在 Python 3.5 环境中安装 Python 包

     $sudo /anaconda/envs/py35/bin/conda install xxxx (for Python 3.5 env)

(对 pip 安装执行相同操作。)

在 Linux (CentOS*) 数据科学虚拟机上安装 BigDL

要在 CentOS* 版 DSVM 上运行 BigDL,您首先需要在 DSVM 上安装 Maven*,然后才能编译 BigDL。

安装 Maven。请注意,在基于 CentOS 的 Linux 上,您需要使用 **yum** 来安装新软件包,而不是 Ubuntu 的*apt-get*

Figure 10

DSVM 的默认 JAVA_HOME 环境变量指向一个空目录,“/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64”。您需要将其更改为另一个已存在的、包含 Java* 8 安装的目录。

   Export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64".

检查 Maven 是否安装正确

   $ mvn –v

Figure 11

完成此操作后,您应该能够按照上面主部分中的步骤在 BigDL 上运行构建。

© . All rights reserved.