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。