Conda管理¶
概览¶
Anaconda 集群管理的主要功能之一是跨集群远程部署和管理 Anaconda 环境。
前置acluster
核心conda
命令将在所有集群节点上执行这些命令。
例如,要查看所有集群节点上的 conda 环境:
$ acluster conda info -e
All nodes (x3) response:
# conda environments:
#
root * /opt/anaconda
在所有集群节点上安装 numpy:
$ acluster conda install numpy
Installing (u'numpy',) on cluster "demo_cluster"
Node "ip-10-234-8-208.ec2.internal":
Successful actions: 1/1
Node "ip-10-170-59-28.ec2.internal":
Successful actions: 1/1
Node "ip-10-232-42-58.ec2.internal":
Successful actions: 1/1
有关所有可用命令的简要概述,请查看
.Anaconda for cluster management Cheat Sheet
从频道安装包¶
您可以通过添加选项从Anaconda Cloud或 Anaconda Repository 安装安装软件包--channel/-c
。例如,要从anaconda-cluster
频道安装 apache-libcloud 包:
$ acluster conda install -c https://conda.anaconda.org/anaconda-cluster apache-libcloud
Installing (u'apache-libcloud',) on cluster "demo_cluster"
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 1/1
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 1/1
$ acluster conda list | grep apache-libcloud
- 'apache-libcloud: 0.16.0 (py27_0)'
远程 conda 命令列表¶
Anaconda 中提供了以下 conda 命令用于集群管理:
acluster conda install
– 安装包acluster conda update
– 更新包acluster conda remove
– 移除包裹acluster conda list
– 列出包acluster conda create
– 创建 conda 环境acluster conda info
– 显示有关当前 conda 安装的信息acluster conda push
– 将 conda 环境推送到集群
有关 conda 的更多信息,请参阅 conda 文档。
示例远程 conda 命令¶
安装 conda 包¶
任何 conda 包都可以安装在 Anaconda 管理的集群上以进行集群管理:
$ acluster conda install numpy
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 1/1
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 1/1
使用以下list
命令验证软件包是否已安装:
$ acluster conda list
All nodes (x2) response:
...
- 'numpy: 1.9.2 (py27_0)'
...
您还可以使用单个命令安装多个 conda 包:
$ acluster conda install scipy pandas scikit-learn
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 3/3
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 3/3
$ acluster conda list
All nodes (x2) response:
...
- 'pandas: 0.16.1 (np19py27_0)'
...
- 'scikit-learn: 0.16.1 (np19py27_0)'
- 'scipy: 0.15.1 (np19py27_0)'
...
注意:建议您一次安装所有需要的软件包。一次安装一个包会导致依赖冲突。
列出 conda 包¶
在集群上运行的一个有用的 conda 命令是列出节点上可用的包(默认情况下,所有节点都应该具有相同的包):
$ acluster conda list
All nodes (x2) response:
- 'libsodium: 0.4.5 (0)'
- 'sqlite: 3.8.4.1 (1)'
- 'conda-env: 2.1.4 (py27_0)'
- 'python: 2.7.9 (3)'
...
更新 conda 包¶
您还可以指定要安装或更新的 conda 软件包版本:
$ acluster conda install pandas==0.13
Installing (u'pandas==0.13',) on cluster "demo_cluster"
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 1/1
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 1/1
$ acluster conda list | grep pandas
- 'pandas: 0.13.0 (np18py27_0)'
$ acluster conda update pandas
Updating (u'pandas',) on cluster "demo_cluster"
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 1/1
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 1/1
$ acluster conda list | grep pandas
- 'pandas: 0.16.1 (np19py27_0)'
删除 conda 包¶
您可以跨集群删除 conda 包:
$ acluster conda remove pandas
Removing (u'pandas',) on cluster "demo_cluster"
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 1/1
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 1/1
$ acluster conda list | grep pandas
... NO OUTPUT ...
创建 conda 环境¶
您还可以使用用于集群管理的 Anaconda 跨集群管理 conda 环境。
要创建包含 Python 和 numpy 的新 conda 环境,请使用命令.conda create -n test_env numpy
在集群上,使用相同的命令并简单地添加acluster
如下所示:
$ acluster conda create -n test_env numpy
All nodes (x2) response:
Conda environment "test_env" created
创建环境后,通过向命令添加-n
name 选项来引用该命名环境
conda
:
$ acluster conda list -n test_env
All nodes (x2) response:
- 'sqlite: 3.8.4.1 (1)'
- 'python: 2.7.9 (3)'
- 'zlib: 1.2.8 (0)'
- 'openssl: 1.0.1k (1)'
- 'system: 5.8 (2)'
- 'tk: 8.5.18 (0)'
- 'setuptools: 15.2 (py27_0)'
- 'pip: 6.1.1 (py27_0)'
- 'readline: 6.2 (2)'
- 'numpy: 1.9.2 (py27_0)'
$ acluster conda install -n test_env requests
Installing (u'requests',) on cluster "d" - target: "*"
Node "ip-10-136-80-92.ec2.internal":
Successful actions: 1/1
Node "ip-10-63-173-62.ec2.internal":
Successful actions: 1/1
$ acluster conda list -n test_env
All nodes (x2) response:
- 'sqlite: 3.8.4.1 (1)'
- 'python: 2.7.9 (3)'
- 'zlib: 1.2.8 (0)'
- 'openssl: 1.0.1k (1)'
- 'system: 5.8 (2)'
- 'tk: 8.5.18 (0)'
- 'setuptools: 15.2 (py27_0)'
- 'pip: 6.1.1 (py27_0)'
- 'readline: 6.2 (2)'
- 'numpy: 1.9.2 (py27_0)'
- 'requests: 2.7.0 (py27_0)'
推送 conda 环境¶
您还可以使用 condaenvironment.yml
文件将 conda 环境从客户端机器推送到集群:
$ acluster conda push ./environment.yml
['ip-10-234-8-208.ec2.internal'] nodes response:
Conda environment with "/tmp/anaconda-cluster/environment.yml" created
...
列出 conda 环境¶
要验证环境是否已推送到所有节点,请使用以下info
命令:
$ acluster conda info -e
All nodes (x3) response:
# conda environments:
#
stats /opt/anaconda/envs/stats
root * /opt/anaconda