azure上的按需、停靠、Spark作业(由azure批处理提供支持)

aztk的Python项目详细描述


azure分布式数据工程工具包(aztk)

azure分布式数据工程工具包(aztk)是一个python cli应用程序,用于在azure的docker集群上提供按需spark。这是一个廉价和容易的方式,建立和运行与火花集群,和一个伟大的工具,火花用户谁想试验和开始大规模测试。

此工具包构建在azure批处理之上,但不需要任何azure批处理知识即可使用。

显著功能

设置

  1. 用pip:
  2. 安装aztk
    pip install aztk
  1. 在目录中初始化项目。这将自动创建一个.aztk文件夹,其中包含工作目录中的配置文件:
    aztk spark init
  1. 登录或注册Azure Account,导航到Azure Cloud Shell,然后运行:
wget -q https://raw.githubusercontent.com/Azure/aztk/v0.10.2/account_setup.sh -O account_setup.sh &&
chmod 755 account_setup.sh &&
/bin/bash account_setup.sh
  1. 按照屏幕提示创建必要的azure资源并将输出复制到.aztk/secrets.yaml文件中。有关详细信息,请参见Getting Started Scripts

快速入门指南

这个包的核心体验集中在几个命令上。

# create your cluster
aztk spark cluster create
aztk spark cluster add-user
# monitor and manage your clusters
aztk spark cluster get
aztk spark cluster list
aztk spark cluster delete
# login and submit applications to your cluster
aztk spark cluster ssh
aztk spark cluster submit

一。创建并设置群集

首先,创建集群:

aztk spark cluster create --id my_cluster --size 5 --vm-size standard_d2_v2
  • 查看我们提供的虚拟机大小here.
  • 参数--vm-size必须是正式的sku名称,通常格式为:“standard\u d2\u v2”
  • 您可以使用--size-low-pri而不是--size,以80%的折扣创建low-priority VMs
  • 默认情况下,aztk在ubuntu16.04 docker映像上运行spark 2.2.0。更多信息here
  • 默认情况下,aztk将为集群创建一个用户(用户名为spark)。
  • 群集ID(--id)只能包含包含连字符和下划线的字母数字字符,并且不能包含超过64个字符。
  • 默认情况下,不能创建总共超过20个核心的群集。访问this page请求增加核心配额。

有关使用集群的更多信息,请参见cluster documentation

2.检查群集状态

要检查集群状态,请使用get命令:

aztk spark cluster get --id my_cluster

三。提交Spark作业

当集群准备就绪时,您可以提交本地计算机上的作业以在集群上运行。Spark Submit的输出将流式传输到本地控制台。从克隆的aztk repo运行此命令:

// submit a java application
aztk spark cluster submit \
    --id my_cluster \
    --name my_java_job \
    --class org.apache.spark.examples.SparkPi \
    --executor-memory 20G \
    path\to\examples.jar 1000

// submit a python application
aztk spark cluster submit \
    --id my_cluster \
    --name my_python_job \
    --executor-memory 20G \
    path\to\pi.py 1000
  • aztk spark cluster submit命令采用与标准^{} command相同的参数,除了不指定--master,aztk要求指定集群--id和唯一作业--name
  • 作业名称--name参数的长度必须至少为3个字符
    • 它只能包含包含连字符但不包含下划线的字母数字字符
    • 它不能包含大写字母
  • 提交的每个作业都必须有唯一的名称
  • 使用--no-wait选项,命令将立即返回

进一步了解spark submit命令here

四。登录并与Spark Cluster互动

大多数用户都希望与他们的spark集群交互工作。使用aztk spark cluster ssh命令,您可以ssh到集群的主节点。此命令还帮助您将Spark Web UI和Spark Jobs UI移植到本地计算机:

aztk spark cluster ssh --id my_cluster --user spark

默认情况下,我们转发Spark Web UI到localhost:8080,火花作业ui到localhost:4040,火花历史服务器到localhost:18080

您可以在.aztk/ssh.yaml文件中配置这些设置。

注意:交互工作时,您可能需要使用jupyter或rstudio server等工具。为此,您需要使用适当的docker映像和插件设置集群。有关详细信息,请参见Plugins

5个。管理和监视您的Spark Cluster

您还可以从cli中看到集群:

aztk spark cluster list

并获取任何指定群集的状态:

aztk spark cluster get --id <my_cluster_id>

最后,您可以删除任何指定的群集:

aztk spark cluster delete --id <my_cluster_id>

常见问题

下一步

您可以找到更多文档here

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将输入迷宫文件中的字符存储到2d数组(Java)   Vaadin中的java CDi未注入:NullPointerException   两个java日期之间的差异   java如何使用@patch使用jpa存储库更新单个字段   java GeoWebCache和osmdroid   Java:如何让对象侦听器在不同的类中工作?   对象的java子集   安全性无法在Java中设置客户端X509身份验证   java如何在安卓中将唯一的单词绑定到字符串   java如何读取txt并通过管道对其进行分隔   java如何避免if   java JSP带有一个HTML表,需要更新该表   java HashMap<String,Value>。remove()通过使用字符串同步。在钥匙上,这有用吗?还是这个坏代码?   java我的继承有问题