azure上的按需、停靠、Spark作业(由azure批处理提供支持)
aztk的Python项目详细描述
azure分布式数据工程工具包(aztk)
azure分布式数据工程工具包(aztk)是一个python cli应用程序,用于在azure的docker集群上提供按需spark。这是一个廉价和容易的方式,建立和运行与火花集群,和一个伟大的工具,火花用户谁想试验和开始大规模测试。
此工具包构建在azure批处理之上,但不需要任何azure批处理知识即可使用。
显著功能
- 火花束提供时间平均为5分钟
- 火花集群在Docker容器中运行
- 在启用GPU的群集上运行Spark
- 用户可以携带自己的Docker图像
- 能够以80%的折扣使用低优先级虚拟机
- 同时使用低优先级和专用虚拟机的混合模式群集
- 内置对azure blob存储和azure data lake连接的支持
- Tailored pythonic experience with PySpark, Jupyter, and Anaconda
- Tailored R experience with SparklyR, RStudio-Server, and Tidyverse
- 能够直接从本地计算机的cli运行spark submit
设置
- 用pip: 安装
aztk
pip install aztk
- 在目录中初始化项目。这将自动创建一个.aztk文件夹,其中包含工作目录中的配置文件:
aztk spark init
- 登录或注册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
- 按照屏幕提示创建必要的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>
常见问题
- How do I connect to Azure Storage (WASB)?
- I want to use a different version of Spark
- How do I SSH into my Spark cluster's master node?
- How do I interact with my Spark cluster using a password instead of an SSH-key?
- How do I change my cluster default settings?
- How do I modify my spark-env.sh, spark-defaults.conf or core-site.xml files?
- How do I use GPUs with AZTK
- I'm a python user and want to use PySpark, Jupyter, Anaconda packages, and have a Pythonic experience.
- I'm a R user and want to use SparklyR, RStudio, Tidyverse packages, and have an R experience.
下一步
您可以找到更多文档here