基礎(chǔ)使用
本文為您介紹如何在E-MapReduce上提交Flink作業(yè)以及查看作業(yè)。
背景信息
Dataflow集群中的Flink服務(wù)是以YARN模式部署的,您可以通過SSH方式登錄Dataflow集群,在命令行中進行Flink作業(yè)提交。
基于YARN模式部署的Dataflow集群支持以Session模式、Per-Job Cluster模式和Application模式提交Flink作業(yè)。
模式 | 描述 | 特點 |
Session模式 | Seesion模式會根據(jù)您設(shè)置的資源參數(shù)創(chuàng)建一個Flink集群,所有作業(yè)都將被提交到這個集群上運行。該集群在作業(yè)運行結(jié)束之后不會自動釋放。 例如,某個作業(yè)發(fā)生異常,導(dǎo)致一個Task Manager關(guān)閉,則其他所有運行在該Task Manager上的作業(yè)都會失敗。另外由于同一個集群中只有一個Job Manager,隨著作業(yè)數(shù)量的增多,Job Manager的壓力會相應(yīng)增加。 |
根據(jù)以上特點,該模式適合部署需要較短啟動時間且運行時間相對較短的作業(yè)。 |
Per-Job Cluster模式 | 當(dāng)使用Per-Job Cluster模式時,每次提交一個Flink作業(yè),YARN都會為這個作業(yè)新啟動一個Flink集群,然后運行該作業(yè)。當(dāng)作業(yè)運行結(jié)束或者被取消時,該作業(yè)所屬的Flink集群也會被釋放。 |
根據(jù)以上特點,該模式通常適合運行時間較長的作業(yè)。 |
Application模式 | 當(dāng)使用Application模式時,每次提交一個Flink Application(一個Application包含一個或多個作業(yè)),YARN都會為這個Application新啟動一個Flink集群。當(dāng)Application運行結(jié)束或者被取消時,該Application所屬的Flink集群也會被釋放。 該模式與Per-Job模式不同的是,Application對應(yīng)的JAR包中的 如果提交的JAR包中包含多個作業(yè),則這些作業(yè)都會在該Application所屬的集群中執(zhí)行。 |
|
前提條件
已創(chuàng)建Flink模式的Dataflow集群,詳情請參見創(chuàng)建集群。
提交并查看Flink作業(yè)
您可以根據(jù)需求,選擇以下三種模式提交并查看作業(yè):
Session模式
通過SSH方式連接集群,詳情請參見登錄集群。
執(zhí)行以下命令,啟動YARN Session。
yarn-session.sh --detached
執(zhí)行以下命令,提交作業(yè)。
flink run /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar
說明本文使用Flink自身提供的TopSpeedWindowing示例進行介紹,該示例是一個會長時間運行的流作業(yè)。
提交成功后,會返回已提交的Flink作業(yè)的YARN Application ID。返回如下類似信息。
執(zhí)行以下命令,查看作業(yè)狀態(tài)。
flink list -t yarn-session -Dyarn.application.id=<application_XXXX_YY>
您也可以通過Web UI的方式查看作業(yè)狀態(tài),詳情請參見通過Web UI查看作業(yè)狀態(tài)。
執(zhí)行以下命令,停止作業(yè)。
flink cancel -t yarn-session -Dyarn.application.id=<application_XXXX_YY> <jobId>
Per-Job Cluster模式
通過SSH方式連接集群,詳情請參見登錄集群。
執(zhí)行以下命令,提交作業(yè)。
flink run -t yarn-per-job --detached /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar
提交成功后,會返回已提交的Flink作業(yè)的YARN Application ID。返回如下類似信息。
您可以執(zhí)行以下命令,查看作業(yè)狀態(tài)。
flink list -t yarn-per-job -Dyarn.application.id=<application_XXXX_YY>
說明本文示例中的
<application_XXXX_YY>
為作業(yè)運行后返回的Application ID。您也可以通過Web UI的方式查看作業(yè)狀態(tài),詳情請參見通過Web UI查看作業(yè)狀態(tài)。
執(zhí)行以下命令,停止作業(yè)。
flink cancel -t yarn-per-job -Dyarn.application.id=<application_XXXX_YY> <jobId>
Application模式
通過SSH方式連接集群,詳情請參見登錄集群。
執(zhí)行以下命令,提交作業(yè)。
flink run-application -t yarn-application /opt/apps/FLINK/flink-current/examples/streaming/TopSpeedWindowing.jar
提交成功后,會返回已提交的Flink作業(yè)的YARN Application ID。返回如下類似信息。
執(zhí)行以下命令,查看作業(yè)狀態(tài)。
flink list -t yarn-application -Dyarn.application.id=<application_XXXX_YY>
說明本文示例中的
<application_XXXX_YY>
為作業(yè)運行后返回的Application ID。您也可以通過Web UI的方式查看作業(yè)狀態(tài),詳情請參見通過Web UI查看作業(yè)狀態(tài)。
執(zhí)行以下命令,停止作業(yè)。
flink cancel -t yarn-application -Dyarn.application.id=<application_XXXX_YY> <jobId>
指定作業(yè)配置
Flink提供三種指定作業(yè)配置的方式:
方式一:在作業(yè)代碼中,指定配置項的值,詳情請查看Flink配置。
方式二:使用flink run命令提交作業(yè)時,通過-D指定配置項的值,例如
flink run-application -t yarn-application -D state.backend=rocksdb...
。方式三:在/etc/taihao-apps/flink-conf/flink-conf.yaml配置文件中指定配置項的值。
如果沒有通過這三種方式指定,則使用默認值,配置參數(shù)詳情請參見Apache Flink官網(wǎng)。
通過Web UI查看作業(yè)狀態(tài)
訪問Web UI。
登錄EMR on ECS。
在頂部菜單欄處,根據(jù)實際情況選擇地域和資源組。
在集群管理頁面,單擊目標(biāo)集群的集群ID。
單擊上方的訪問鏈接與端口頁簽。
在訪問鏈接與端口頁面,單擊YARN UI所在行的鏈接。
訪問Web UI的詳細信息,請參見訪問鏈接與端口。
單擊Application ID。
單擊Tracking URL的鏈接。
進入Apache Flink Dashboard頁面,即可查看作業(yè)的狀態(tài)。
相關(guān)文檔
Flink on YARN的更多信息,請參見Apache Hadoop YARN。