在 Microsoft Azure 数据科学虚拟机上部署 BigDL
为了更轻松地部署 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。
单击*部署到 Azure* 按钮会将用户引导至 Azure 门户的向导,带领他们完成 VM 创建过程,并自动执行必要的脚本来安装/配置 BigDL,以便在 VM 成功预配后即可使用。用户可以直接运行*/opt/BigDL/run_notebooks.sh* 来启动 Jupyter* notebook 服务器以执行示例。
注意: 完全预配 DSVM 可能需要长达 10 分钟的时间 — 这是喝杯咖啡的绝佳时间!
请注意:为了方便使用,我们建议在 DSVM 预配提示中选择**密码**选项,而不是 **SSH** 选项。
为求完整,我们还在下面提供了手动分步安装过程,用于创建数据科学步骤,以防您已经拥有 DSVM (Ubuntu) 实例,或者只想了解上面自动化步骤的详细信息。
在 DSVM 上手动安装 BigDL
预配 DSVM
在开始之前,您需要通过访问 Azure 产品详细信息页 并按照 VM 创建向导中的说明,预配 Microsoft Linux (Ubuntu) 数据科学虚拟机。
配置 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
如果成功,您应该会看到以下消息
DSVM 配置步骤运行 BigDL 的示例
切换到 Python* 2.7。
$ source /anaconda/bin/activate root
确认 Python* 版本。
$ python - - version
安装 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 的未来版本中可能会发生变化。因此,如果这些说明开箱即用对您不起作用,您可能需要更新此路径。
记下日志末尾的 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。这需要几分钟时间。最后,您会看到一个类似以下的损失图
您的 TensorBoard 在文本分类示例中可能看起来像这样。
自动化 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 的专用软件工程团队的支持下不断发展和演进。
资源
- 了解更多关于 Azure 上的 Linux 数据科学虚拟机
- 了解更多关于 Azure HDInsight
- Intel 的人工智能软件与硬件
- BigDL 入门视频
- 在 BigDL 用户组 提出您的 BigDL 问题。
附录
安装和配置 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 的位置。
切换回 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*
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
完成此操作后,您应该能够按照上面主部分中的步骤在 BigDL 上运行构建。