ヤーンのビッグデータコンピューティングフレームワークが実行されると、タスクはどこに行きますか?

最近、友人から非常に興味深い質問がありました。それは、ビッグデータフレームワークのspark、flinkなどです。yarnで実行する場合、タスクは基本的にどこに行きましたか?

言いたくありませんでした。自分のクラスターで実行されている必要があります。yarnの場合は、スケジューラーをyarnに変更しました。

しかし、それを言おうとしたとき、私はそれが正しいとは思いませんでした。突然問題が発生しました。Hadoopがmrタスクを単独で実行する場合、yarnが機能する理由は、resourcemanagerとnodemanagerがありますが、他のフレームワークがあるためです。 .Yarnで実行する場合、そのようなブリッジはないようです。Yarnとの関連付けを構成しても、実際にYarnと通信するコンポーネントはないようです。つまり、頭との恥ずかしい状況しかありません。本文なので、自分のクラスターでタスクを実行します。

その後、インターネットで回路図を確認し、自分で考えてみたところ、他のフレームワークが稼働していると、基本的にはHadoopで実行されていることに気づきました。

わかりにくいので、ここでは概略図をお伝えしません。ここでは平易な英語で説明しますので、ご理解いただけると思います。

私のMR動作原理やその他の資料を読んだら、タスクが送信される前にドライバーノードがタスクを計画するため、MRタスクを実行できることを誰もが知っているでしょう。同時に、ドライバープロセスの実行中もタスクは実行されています。 。当時、タスクの結果が処理されたり、その他の操作が行われたりしたとき、私は実際に大胆な推測をしていました。

興味があったときは、sparkを使って自分の考えを検証する実験を行い、最終的に、yarnのフレームワークを実行するときは、Hadoopやその他のデータコンピューティングフレームワークを正常に起動する必要があるという結論に達しました。、タスクを実行するには。このとき、タスクが送信されると、タスクは他のフレームワークでローカルに初期化され、フレームワーク自体のドライバーが生成されて、yarnと対話します。これは、MRタスクが送信されたときと同じで、ドライバーがあります。タスクを計画するプロセス。、まったく同じプロセスです。

後でタスクを実行する場合でも、ドライバーはタスクの実行方法に責任を負います。つまり、他のフレームワークがYarn上にある場合、元のMRが実行されたため、タスクは引き続きHadoopの継続で実行されていますが、特定のタスクはHadoopの制御下にありません。

構成したものはyarnに関連付けられています。他のフレームワークにyarnのアドレスを通知するだけでなく、タスクのステータスとも相互作用します。たとえば、Spark on Yarnの場合、タスクの詳細でタイプタスクの詳細をクリックすると、ヤーンウェブインターフェース。SparkUIインターフェースにジャンプできます。

おすすめ

転載: blog.csdn.net/dudadudadd/article/details/114648566