python's GILによると、私はCPUバインドされたプロセスでスレッドを使用できないので、私の質問は、どのようにApache Sparkがマルチコア環境でPythonを利用するのですか?Apacheはどのようにpythonマルチスレッドの問題を処理しますか?
2
A
答えて
4
マルチスレッドのPythonの問題は、Apache Sparkの内部から分離されています。 Sparkの並列処理はJVM内部で処理されます。
その理由はPythonのドライバプログラムでは、SparkContext
は、JVMを起動しJavaSparkContextを作成するためにPy4Jを使用していることです。
Py4Jは、PythonとJavaのSparkContextオブジェクト間のローカル通信用のドライバでのみ使用されます。大規模なデータ転送は、異なるメカニズムを介して実行されます。
PythonのRDD変換は、JavaのPythonRDDオブジェクトの変換にマップされます。リモートワーカーマシンでは、PythonRDDオブジェクトはPythonサブプロセスを起動し、パイプを使用してそれらと通信し、ユーザーのコードと処理されるデータを送信します。
PS:実際にあなたの質問に完全に回答するかどうかはわかりません。
関連する問題
- 1. マルチスレッド処理の問題
- 2. Javaはマルチスレッドでエラーをどのように処理しますか?
- 3. Apache Flink:バックプレッシャーはどのように処理されますか?
- 4. pythonはどのようにシグナルを処理しますか?
- 5. javascript/jqueryでマルチスレッド問題を処理するには?
- 6. Pythonフォーム処理の問題
- 7. Pythonでのマルチスレッド/処理
- 8. Apache Apexはどのように背圧を処理しますか?
- 9. Python、COMおよびマルチスレッドの問題
- 10. Pythonがsystemctlをどのように処理できますか?
- 11. javaはマルチスレッドをどのように処理しますか?プロセスより多くのスレッド
- 12. Pythonのマルチスレッド/ロギングモジュールに関する問題
- 13. RESTはこの処理をどのように処理しますか?
- 14. Python Pandasはどのようにテーブルのリストを処理しますか?
- 15. Windows上のPython 3でのマルチスレッド処理
- 16. カスタムリソースはApache Mesosでどのように処理されますか?
- 17. どのようにC#は非同期処理を処理しますか?
- 18. Pythonはどのように大きな数値を処理しますか?
- 19. デスクトップブラウザはどのようにモバイルメタタグを処理しますか?
- 20. PageRankアルゴリズムはどのようにリンクを処理しますか?
- 21. Shoutem v5はマルチレベルナビゲーションをどのように処理しますか?
- 22. Androidはどのようにバックライトタイムアウトを処理しますか?
- 23. CouchDBはどのようにデータを処理しますか?
- 24. アンドロイドはGUIイベントをどのように処理しますか?
- 25. Entity Frameworkはどのようにトランザクションを処理しますか?
- 26. ブラウザはどのようにJavaScriptを処理しますか?
- 27. Cassandra:クラスタはどのようにデッドノードを処理しますか?
- 28. OpenMPはどのようにネストループを処理しますか?
- 29. UITableViewはどのようにタッチを処理しますか?
- 30. HandlerThreadはどのようにメッセージを処理しますか?
ここでの主なポイントは、PySparkがマルチスレッドを使用していないことだと思うので、GILは単に問題ではありません。 – zero323
@ zero323あなたのコメントを詳しく説明できますか? –
詳細はあまりありません。テストを除いて、PySparkがスレッドを使用して外部プロセスを開始するような二次的なタスクを実行する場所はほんのわずかです。他のすべてのものは単なる古いシングルスレッド処理です。 – zero323