Apache Livy Operator¶
Apache Livy 是一项服务,它通过 REST 接口轻松地与 Spark 集群进行交互。它可以通过简单的 REST 接口或 RPC 客户端库,轻松提交 Spark 作业或 Spark 代码片段,同步或异步检索结果,以及管理 Spark Context。
LivyOperator¶
此 operator 封装了 Apache Livy 批处理 REST API,允许向底层集群提交 Spark 应用程序。
tests/system/apache/livy/example_livy.py
livy_java_task = LivyOperator(
task_id="pi_java_task",
file="/spark-examples.jar",
num_executors=1,
conf={
"spark.shuffle.compress": "false",
},
class_name="org.apache.spark.examples.SparkPi",
)
livy_python_task = LivyOperator(task_id="pi_python_task", file="/pi.py", polling_interval=60)
livy_java_task >> livy_python_task
您还可以通过将参数 deferrable
设置为 True,以可延迟模式运行此 operator。这将有效利用 Airflow worker,因为作业状态的轮询在 triggerer 上异步进行。请注意,这需要您的 Airflow 部署中提供 triggerer。
tests/system/apache/livy/example_livy.py
livy_java_task_deferrable = LivyOperator(
task_id="livy_java_task_deferrable",
file="/spark-examples.jar",
num_executors=1,
conf={
"spark.shuffle.compress": "false",
},
class_name="org.apache.spark.examples.SparkPi",
deferrable=True,
)
livy_python_task_deferrable = LivyOperator(
task_id="livy_python_task_deferrable", file="/pi.py", polling_interval=60, deferrable=True
)
livy_java_task_deferrable >> livy_python_task_deferrable
参考¶
有关更多信息,请参阅 Apache Livy。