Linux 数据科学虚拟机是基于 CentOS 的 Azure 虚拟机,附带一组预安装的工具。 这些工具通常用于进行数据分析和机器学习。 所含关键软件组件包括:
- 操作系统: Linux CentOS 分发版。
- Microsoft R Server Developer Edition
- Anaconda Python 分发版(2.7 和 3.5 版),包括常用数据分析库
- JuliaPro - 具有常用科学和数据分析库的 Julia 语言的特选分发
- 独立 Spark 实例和单节点 Hadoop(HDFS、Yarn)
- JupyterHub - 支持 R、Python、PySpark 和 Julia 内核的多用户 Jupyter 笔记本服务器
- Azure 存储资源管理器
- 用于管理 Azure 资源的 Azure 命令行接口 (CLI)
- PostgresSQL 数据库
- 机器学习工具
- 认知工具包:Microsoft Research 的深度学习软件工具包。
- Vowpal Wabbit:一种快速机器学习系统,支持在线、哈希、allreduce、缩减、learning2search、主动和交互式学习等技术。
- XGBoost:一种提供快速、准确的提升树实现的工具。
- Rattle (R Analytical Tool To Learn Easily)(用于实现轻松学习的 R 分析工具):该工具使在 R 中开始数据分析和机器学习变得简单,支持基于 GUI 的数据浏览和使用自动 R 代码生成进行建模。
- Java、Python、node.js、Ruby 和 PHP 中的 Azure SDK
- R 和 Python 中的库,供 Azure 机器学习和其他 Azure 服务使用
- 开发工具和编辑器(RStudio、PyCharm、IntelliJ、Emacs、gedit、vi)
执行数据科学涉及对一系列任务的迭代:
- 查找、加载和预处理数据
- 构建和测试模型
- 部署模型以在智能应用程序中使用
数据科学家使用各种工具完成这些任务。 找到软件的适当版本,并下载、编译和安装这些版本,这一过程可能耗时较长。
Linux 数据科学虚拟机可大大减轻这种负担。 使用它快速开始分析项目。 它支持处理各种语言版本的任务,包括 R、Python、SQL、Java 和 C++。 Eclipse 提供 IDE,可开发易于使用的代码并对其进行测试。 使用 VM 中包含的 Azure SDK,可在适用于 Microsoft 云平台的 Linux 上使用各种服务来生成应用程序。 此外,还可以访问其他预安装语言,如 Ruby、Perl、PHP 和 node.js。
此数据科学 VM 映像不产生软件费用。 只需根据使用该 VM 映像预配的虚拟机大小,支付相应的 Azure 硬件使用费。
其他版本的数据科学虚拟机
Ubuntu 映像同样可用,它包含多种与 CentOS 映像相同的工具以及加深度学习框架。Windows 映像同样可用。
先决条件
创建 Linux 数据科学虚拟机之前,必须具备以下条件:
- Azure 订阅:若要获取订阅,请参阅获取 Azure 免费试用版。
- Azure 存储帐户:若要创建帐户,请参阅创建 Azure 存储帐户。 或者,如果不想使用现有帐户,可以在创建 VM 过程中创建存储帐户。
创建 Linux 数据科学虚拟机
以下是创建 Linux 数据科学虚拟机实例的步骤:
- 导航到 Azure 门户上的虚拟机列表。
-
单击底部的“创建”打开向导。
以下部分提供用于创建 Microsoft 数据科学虚拟机的向导中每个步骤的输入(在上一图片的右侧枚举)。 以下是配置每个步骤所需的输入: a.在“解决方案资源管理器”中,右键单击项目文件夹下的“引用”文件夹,并单击“添加引用”。 基本信息: 名称:待创建的数据科学服务器的名称。 用户名称:第一个帐户登录 ID。 密码:第一个帐户密码(可以使用 SSH 公钥代替密码)。 订阅:如果有多个订阅,请选择要在其上创建虚拟机并对其计费的订阅。 必须具有此订阅的资源创建权限。 资源组:可以创建新组或使用现有组。 位置:选择最适合的数据中心。 通常,最合适的数据中心应拥有大部分数据,或者最接近物理位置以实现最快的网络访问。 b. 大小: 选择能满足功能需求和成本约束的服务器类型。 选择“查看全部”查看 VM 大小的更多选择。 c. 设置: 磁盘类型:如果喜欢固态硬盘 (SSD),请选择“高级”。 否则,请选择“标准”。 存储帐户:可以在订阅中创建新的 Azure 存储帐户,或者使用位于与向导的基本信息步骤中选择的相同位置的现有帐户。 其他参数:大多数情况下,只需使用默认值。 若考虑使用非默认值,请将鼠标悬停在信息链接上获取特定字段的帮助。 d. 汇总: 验证输入的所有信息是否正确。 e. 购买: 若要开始预配,请单击“购买”。 提供交易条款的链接。 除计算大小步骤中选择的服务器大小所产生的费用外,VM 没有任何其他费用。 预配约需要 10 到 20 分钟。 预配的状态在 Azure 门户上显示。
如何访问 Linux 数据科学虚拟机
创建 VM 后,可使用 SSH 登录。 使用在步骤 3 的基本信息部分中为文本 shell 接口创建的帐户凭据。 可在 Windows 上下载 Putty 之类的 SSH 客户端工具。 如果喜欢图形桌面(X Windows系统),可以在 Putty 上使用 X11 转发或安装 X2Go 客户端。
安装和配置 X2Go 客户端
Linux VM 已通过 X2Go 服务器进行预配并且可接受客户端连接。 若要连接到 Linux VM 图形桌面,请在客户端上执行以下操作:
- 从 X2Go 为客户端平台下载并安装 X2Go 客户端。
- 运行 X2Go 客户端,并选择“新建会话”。 这会打开具有多个选项卡的配置窗口。输入下列配置参数:
-
会话选项卡:
- 主机:主机名或 Linux 数据科学 VM 的 IP 地址。
- 登录名:Linux VM 上的用户名。
- SSH 端口:保留默认值 22。
- 会话类型:将值更改为 XFCE。 Linux VM 目前仅支持 XFCE 桌面。
- 媒体选项卡:如果无需使用声音支持和客户端打印功能,则可将其关闭。
- 共享文件夹:如果希望将目录从客户端计算机装入 Linux VM,则在此选项卡上添加要与 VM 共享的客户端计算机目录。
-
会话选项卡:
通过 X2Go 客户端使用 SSH 客户端或 XFCE 图形桌面登录 VM 后,即可开始使用 VM 上安装和配置的工具。 在 XFCE 上,可看到许多工具的应用程序菜单快捷方式和桌面图标。
安装在 Linux 数据科学虚拟机上的工具
Microsoft R Server
R 是数据分析和机器学习的最常用语言之一。 如果要使用 R 进行分析,则 VM 需具有带 Microsoft R Open (MRO) 和数学内核库 (MKL) 的 Microsoft R Server (MRS)。 MKL 优化分析算法中常用的数学运算。 MRO 与 CRAN-R 100% 兼容,在 CRAN 中发布的任何 R 库都可以安装在 MRO 上。 使用 MRS 可将 R 模型缩放和实施为 Web 服务。可以在其中一个默认编辑器(如 RStudio、vi、Emacs 或 gedit)中编辑 R 程序。 如果使用 Emacs 编辑器,请注意,确保已预安装了 Emacs 包 ESS (Emacs Speaks Statistics),其可简化 Emacs 编辑器中处理 R 文件的工作。
若要启动 R 控制台,只需在 shell 中键入 R。 执行该操作将进入交互式环境。 要开发 R 程序,通常使用 Emacs、vi 或 gedit 等编辑器,并在 R 中运行脚本。使用 RStudio,便拥有一个完整的图形 IDE 环境来开发 R 程序。
还提供一个 R 脚本,可用于安装前 20 个 R 程序包(如果需要)。 此脚本可以在 R 交互式界面中运行,可以通过在 shell 中键入 R 来输入此脚本(如前所述)。
Python
为方便使用 Python 进行开发,已安装 Anaconda Python 分发版 2.7 和 3.5。 此分发版包含基本 Python 以及约 300 种最常用的数学、工程和数据分析包。 可以使用默认文本编辑器。 此外,可以使用 Spyder,它是与 Anaconda Python 分发版捆绑在一起的 Python IDE。 Spyder 需要图形桌面或 X11 转发。 图形桌面中提供了 Spyder 的快捷方式。
由于同时拥有 Python 2.7 和 Python 3.5,因此需专门激活要在当前会话中使用的所需 Python 版本(conda 环境)。 激活过程会将 PATH 变量设置为所需的 Python 版本。
若要激活 Python 2.7 conda 环境,请从 shell 运行以下命令:
source /anaconda/bin/activate root
Python 2.7 安装在 /anaconda/bin 中。
若要激活 Python 3.5 conda 环境,请从 shell 运行以下命令:
source /anaconda/bin/activate py35
Python 3.5 安装在 /anaconda/envs/py35/bin 中。
若要调用 Python 交互式会话,只需在 shell 中键入 python。 如果在图形界面上或已设置 X11 转发,则可以通过键入 pycharm 启动 PyCharm Python IDE。
若要安装其他 Python 库,需要在 sudo 下运行 conda 或 pip 命令,并提供 Python 包管理器(conda 或 pip)的完整路径,以便安装到正确的 Python 环境。 例如:
sudo /anaconda/bin/pip install <package> #pip for Python 2.7
sudo /anaconda/envs/py35/bin/pip install <package> #pip for Python 3.5
sudo /anaconda/bin/conda install [-n py27] <package> #conda for Python 2.7, default behavior
sudo /anaconda/bin/conda install -n py35 <package> #conda for Python 3.5
Jupyter 笔记本
Anaconda 分发版还附带 Jupyter 笔记本 - 用于共享代码和分析的环境。 可通过 JupyterHub 访问 Jupyter notebook。 使用本地 Linux 用户名和密码登录。
已使用 Python 2、Python 3 和 R 内核预配置 Jupyter 笔记本服务器。 可通过名为“Jupyter Notebook”的桌面图标启动浏览器,以访问该笔记本服务器。 如果通过 SSH 或 X2Go 客户端登录 VM,则还可以通过访问 https://localhost:8000/ 来访问 Jupyter 笔记本服务器。
可以从任何主机访问 Jupyter 笔记本服务器。 只需键入 https://<VM DNS name or IP Address>:8000/
我们已经打包了两个示例笔记本(分别在 Python 和 R 中)。通过使用本地 Linux 用户名和密码向 Jupyter 笔记本进行身份验证后,可以在笔记本主页上看到示例链接。 通过选择“新建”并选择相应的语言内核,可创建新笔记本。 如果没有看到“新建”按钮,请点击左上角的“Jupyter”图标转到笔记本服务器的主页。
Apache Spark Standalone
Apache Spark 的独立实例预安装在 Linux DSVM 上,帮助用户先在本地开发 Spark 应用程序,再在大型群集上进行测试和部署。 可以通过 Jupyter 内核运行 PySpark 程序。 打开 Jupyter 并单击“新建”按钮时,应该能够看到可用内核列表。 “Spark - Python”是 PySpark 内核。借助它,可以使用 Python 语言生成 Spark 应用程序。 还可以使用 Python IDE(如 PyCharm 或 Spyder)生成 Spark 程序。 由于这是独立实例,因此 Spark 堆栈会在调用方客户端程序中运行。 与在 Spark 群集上开发相比,这样可以更快、更轻松地排查问题。
Jupyter 上提供了一个示例 PySpark 笔记本,该笔记本可以在 Jupyter 主目录下的“SparkML”目录 ($HOME/notebooks/SparkML/pySpark) 中找到。
如果要用 R for Spark 编程,可以使用 Microsoft R Server、SparkR 或 sparklyr。
在 Microsoft R Server 的 Spark 上下文中运行之前,需要执行一次性设置步骤以启用本地单节点 Hadoop HDFS 和 Yarn 实例。 默认情况下,Hadoop 服务已安装但在 DSVM 上禁用。 若要启用它,需要首次以 root 身份运行以下命令:
echo -e 'y\n' | ssh-keygen -t rsa -P '' -f ~hadoop/.ssh/id_rsa
cat ~hadoop/.ssh/id_rsa.pub >> ~hadoop/.ssh/authorized_keys
chmod 0600 ~hadoop/.ssh/authorized_keys
chown hadoop:hadoop ~hadoop/.ssh/id_rsa
chown hadoop:hadoop ~hadoop/.ssh/id_rsa.pub
chown hadoop:hadoop ~hadoop/.ssh/authorized_keys
systemctl start hadoop-namenode hadoop-datanode hadoop-yarn
不需要 Hadoop 相关服务时,可以通过运行 systemctl stop hadoop-namenode hadoop-datanode hadoop-yarn 停止这些服务。演示如何在远程 Spark 上下文(即,DSVM 上的独立 Spark 实例)中开发和测试 MRS 的示例在 /dsvm/samples/MRS 目录中提供。
IDE 和编辑器
可以选择多个代码编辑器。 这包括 vi/VIM、Emacs、gEdit、PyCharm、RStudio、Eclipse 和 IntelliJ。 gEdit、Eclipse、IntelliJ、RStudio 和 PyCharm 是图形编辑器,需登录到图形桌面才能使用。 这些编辑器具有用以启动的桌面和应用程序菜单快捷方式。
VIM 和 Emacs 是基于文本的编辑器。 Emacs 上已安装名为 Emacs Speaks Statistics (ESS) 的附加包,使得在 Emacs 编辑器中使用 R 更轻松。 可在 ESS 了找到更多信息。
Eclipse 是一种开放源 - 支持多种语言的可扩展 IDE。 Java 开发人员版是安装在 VM 上的实例。 可安装适用于数种常用语言的插件,以扩展环境。 Eclipse 中还安装有插件,名为用于 Eclipse 的 Azure 工具包。 它允许使用支持 Java 等语言的 Eclipse 开发环境创建、开发、测试和部署 Azure 应用程序。 还有一个用于 Java 的 Azure SDK,允许从 Java 环境中访问不同的 Azure 服务。 有关用于 Eclipse 的 Azure 工具包的详细信息,请参阅用于 Eclipse 的 Azure 工具包。
LaTex 通过 texlive 包和 Emacs 外接程序 auctex 包进行安装,这简化了在 Emacs 中创作 LaTex 文档的过程。
数据库
Postgres
在服务运行时且 initdb 已完成的情况下,开放源数据库 Postgres 在VM上可用。 仍需要创建数据库和用户。 有关详细信息,请参阅 Postgres 文档。
图形化 SQL 客户端
SQuirrel SQL 是一个图形化 SQL 客户端,用于连接到不同的数据库(如 Microsoft SQL Server、Postgres 和 MySQL)和运行 SQL 查询。 可从图形桌面会话运行(例如使用 X2Go 客户端)。 要调用 SQuirrel SQL,可通过桌面上的图标将其启动,或者在 shell 上运行以下命令。
/usr/local/squirrel-sql-3.7/squirrel-sql.sh
首次使用前,需设置驱动程序和数据库别名。 JDBC 驱动程序位于:
/usr/share/java/jdbcdrivers
米霖微信.PNG
添加我的微信吧
网友评论