插件

可用插件列表

用于集群管理的 Anaconda 可以在集群上安装和管理以下插件:

以下插件不受支持,只能用于原型设计/实验目的:

如果您有兴趣将 Anaconda 与生产 Hadoop 集群一起使用,用于集群管理的 Anaconda 可与Cloudera CDHHortonworks HDP等企业 Hadoop 发行版配合使用 。

在现有企业 Hadoop 安装的集群上,用于集群管理的 Anaconda 可以管理包(例如,用于 PySpark、SparkR 或 Dask)并且可以安装和管理 Jupyter Notebook 和 Dask 插件。

安装插件

可以使用两种方法安装插件:

  1. profile.yaml在创建或供应集群时使用集群文件。
  2. 创建集群后使用该命令。acluster install

1. 使用 profile.yaml 文件安装插件

创建或配置集群时,创建或编辑文件 ~/.acluster/profiles.d/profile_name.yaml,如下例所示:

name: profile_name
provider: aws
node_id: ami-d05e75b8  # Ubuntu 14.04, us-east-1 region
user: ubuntu
node_type: m3.large
num_nodes: 5
plugins:
  - notebook
  - dask

或者,您可以从您的配置文件中配置一些插件设置。例如,您可以使用以下命令指定密码来保护 Jupyter Notebook:

name: profile_name
provider: aws
node_id: ami-d05e75b8  # Ubuntu 14.04, us-east-1 region
user: ubuntu
node_type: m3.large
num_nodes: 5
plugins:
  - notebook:
      password: secret

有关配置插件设置的更多详细信息,请参阅插件设置部分。

2.使用acluster install命令安装插件

创建集群后,您可以使用命令查看可用插件列表,如下例所示:acluster install

$ acluster install
Usage: acluster install [OPTIONS] COMMAND [ARGS]...

  Install plugins across the cluster

Options:
  -h, --help  Show this message and exit.

Commands:
  conda             Install (mini)conda
  dask              Install Dask/Distributed
  elasticsearch     Install Elasticsearch
  ganglia           Install Ganglia
  hdfs              Install HDFS
  hive              Install Hive
  impala            Install Impala
  ipython-parallel  Install IPython Parallel
  kibana            Install Kibana
  notebook          Install Jupyter Notebook
  logstash          Install Logstash
  salt              Install Salt
  spark-standalone  Install Spark (standalone)
  spark-yarn        Install Spark (YARN)
  storm             Install Storm
  yarn              Install YARN
  zookeeper         Install Zookeeper

以上所有子命令都可以选择接收一个--cluster/-x选项来指定集群。如果您只运行一个集群,则不需要此选项。

注意:Salt 是除 Conda 之外的所有插件的基础。因此,需要先安装 Salt 插件,然后才能安装其他插件。当您使用or命令创建或配置集群时,默认情况下会安装 Salt 。acluster createacluster provision

插件设置

以下插件支持可以在配置文件中定义的自定义设置。

Conda

配置要在创建或配置集群时安装的 conda 包和环境:

name: profile_name
plugins:
  - conda:
      environments:
        root:
          - numpy
        py27:
          - python=2.7
          - scipy
          - numba
        py34:
          - python=3.4
          - pandas
          - nltk

配置conda的安装位置(默认:)/opt/anaconda

name: profile_name
plugins:
  - conda:
      install_prefix: /opt/another_anaconda

设置conda_sh为 false 以禁用/etc/profile.d/conda.sh在集群节点上的创建 (默认值:true):

name: profile_name
plugins:
  - conda:
      conda_sh: false

设置conda_group_name为任何有效的 unix 组(默认:anaconda):

name: profile_name
plugins:
  - conda:
      conda_group_name: anaconda

设置conda_acl为将获得 Anaconda Cluster 管理功能访问权限的用户列表。注意:使用此设置时,至少一个用户必须在配置阶段具有 sudo 访问权限。通常,这将包括之前设置为 的用户user

name: profile_name
plugins:
  - conda:
      conda_acl:
        - user1
        - user2

设置ssl_verify为自定义 SSL 路径或False禁用 SSL 验证conda。 有关更多信息,请参阅conda 文档

name: profile_name
plugins:
  - conda:
      ssl_verify: False

达克

您可以选择设置nprocs用于 Dask/分布式工作者的进程数 ( ) 以及host通过浏览器访问 Dask/分布式 UI 的进程数。 有关这些设置的更多信息,请参阅 Dask 分布式调度程序文档

name: profile_name
plugins:
  - dask:
      nprocs: 8
      host: dask-ui.com

HDFS

默认情况下,HDFS 插件配置为使用以下目录: /data/dfs/nn在名称节点和数据/data/dfs/dn节点上。当有多个驱动器可用时,在所有非根驱动器上使用相同的目录。

您可以选择为 HDFS namenode 和 datanode 设置自定义目录。例如,如果您想利用大型根卷(例如,使用root_volumeAmazon EC2的配置文件设置),可以使用以下设置:

name: profile_name
plugins:
  - hdfs:
      namenode_dirs:
        - /data/dfs/nn
      datanode_dirs:
        - /data/dfs/dn

Jupyter 笔记本

设置自定义密码以保护 Jupyter Notebook(默认值:)acluster

name: profile_name
plugins:
  - notebook:
      password: acluster

为 Jupyter Notebook 服务器设置自定义端口(默认:)8888

name: profile_name
plugins:
  - notebook:
      port: 8888

为 Jupyter Notebooks 设置自定义目录(默认:)/opt/notebooks

name: profile_name
plugins:
  - notebook:
      directory: /opt/notebooks

插件的自定义下载设置

大多数插件是从 Linux 发行版的标准包管理存储库中安装的。一些插件直接从它们的源/项目网站下载。您可以覆盖以下插件的默认下载设置:

name: profile_name
plugins:
  - elasticsearch:
      download_url: https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.1.0/elasticsearch-2.1.0.tar.gz
      download_hash: sha1=b6d681b878e3a906fff8c067b3cfe855240bffbb
      version: elasticsearch-2.1.0
  - logstash:
      download_url: https://download.elastic.co/logstash/logstash/logstash-2.1.1.tar.gz
      download_hash: sha1=d71a6e015509030ab6012adcf79291994ece0b39
      version: logstash-2.1.1
  - kibana:
      download_url: https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz
      download_hash: sha1=d64e1fc0ddeaaab85e168177de6c78ed82bb3a3b
      version: kibana-4.3.0-linux-x64
  - storm:
      source_url: http://apache.arvixe.com/storm/apache-storm-0.9.5/apache-storm-0.9.5.tar.gz
      version_name: apache-storm-0.9.5

管理插件

以下命令可用于管理您的插件:

插件状态

使用以下命令检查插件的状态:acluster status

$ acluster status
Usage: acluster status [OPTIONS] COMMAND [ARGS]...

Options:
  -x, --cluster TEXT              Cluster name
  -l, --log-level [info|debug|error]
                                  Library logging level
  -h, --help                      Show this message and exit.

Commands:
  conda             Check Conda status
  dask              Check Dask/Distributed status
  elasticsearch     Check Elasticsearch status
  ganglia           Check Ganglia status
  hdfs              Check HDFS status
  hive              Check Hive status
  impala            Check Impala status
  ipython-parallel  Check IPython Parallel status
  kibana            Check Kibana status
  notebook          Check IPython/Jupyter Notebook status
  salt              Check Salt package status
  salt-conda        Check Salt Conda module status
  salt-key          Check salt-minion keys status
  spark-standalone  Check Spark (standalone) status
  ssh               Check SSH status
  storm             Check Storm status
  yarn              Check YARN status

例子:

$ acluster status conda
Checking status of conda on cluster: demo_cluster
54.81.187.22: True
54.91.219.252: True
54.163.26.229: True
54.145.10.211: True
Status all: True

$ acluster status salt
54.167.128.130: True
54.205.160.114: True
50.16.32.99: True
50.16.34.82: True
54.163.143.34: True
Status all: True

$ acluster status salt-key
ip-10-156-23-215.ec2.internal: True
ip-10-147-47-235.ec2.internal: True
ip-10-225-181-251.ec2.internal: True
ip-10-237-145-2.ec2.internal: True
ip-10-156-30-32.ec2.internal: True
Status all: True

$ acluster status salt-conda
ip-10-156-23-215.ec2.internal: True
ip-10-237-145-2.ec2.internal: True
ip-10-225-181-251.ec2.internal: True
ip-10-147-47-235.ec2.internal: True
ip-10-156-30-32.ec2.internal: True
Status all: True

多个盐状态检查执行不同的检查。该 命令验证是否安装了 salt 包,该 命令验证了 salt minion 是否连接到头节点,该 命令验证了 salt conda 模块是否分布在整个集群中并且可以运行。acluster status saltacluster status salt-keyacluster status salt-conda

上述所有检查在执行后都应返回成功状态。acluster install salt

打开插件 UI

一些插件提供了可以向用户显示的浏览器 UI。该 命令是一个实用命令,用于打开与每个插件对应的浏览器窗口。命令:acluster open

$ acluster open notebook

将打开 Jupyter Notebook(端口 8888)的浏览器窗口。

使用该--no-browser选项无需打开浏览器窗口即可打印插件界面的 URL。

$ acluster open notebook --no-browser
notebook: http://54.172.82.53:8888

重启插件

如果插件工作不正常,请使用命令重新启动进程。acluster restart

停止插件

要停止插件,请使用该命令。acluster stop

插件说明和网络端口

HDFS

要求: salt

许多分布式分析引擎,如所使用的分布式文件系统ImpalaHive以及Spark

服务 地点 港口
名称节点界面 头节点 50070
HDFS大师 头节点 9000
网络HDFS 头节点 14000

Jupyter 笔记本

要求: salt

基于 Web 的 Python 交互式计算环境。

服务 地点 港口
笔记本 头节点 8888

笔记本保存在目录中/opt/notebooks。您可以分别使用putget命令从集群上传和下载笔记本。

$ acluster put mynotebook.ipynb /opt/notebooks/mynotebook.ipynb
$ acluster get /opt/notebooks/mynotebook.ipynb mynotebook.ipynb

迷你Conda

来自Anaconda 的Python 发行版——随附用于大规模数据处理、预测分析和科学计算的 Python 库。

要求: conda

配置管理系统。

服务 地点 港口
盐主/仆从 所有节点 4505
盐主/仆从 所有节点 4506

火花

用 Java/Scala 编写的计算框架和分析引擎,带有 Python 接口 (PySpark)。

服务 地点 港口
Spark UI(独立) 头节点 8080

纱线

运行所有 Hadoop 和类似 Hadoop 的作业的资源管理器。

服务 地点 港口
资源界面 头节点 9026
节点管理器 计算节点 9035