Ich habe über Funken gelesen und herausgefunden, dass der Funke in Scala geschrieben ist. Da es sich bei scala um eine funktionale Sprache wie Erlang handelt, kann Multi-Core korrekt verwendet werden. Ist das richtig?
Ich frage mich, ob ich Funken in verteilten Systemen verwenden kann, die Multicore-Prozessoren haben. Kann eine einzelne Aufgabe alle Kerne gleichzeitig verwenden? Ich habe gelesen, dass YARN verschiedene Kerne für verschiedene Aufgaben zuweist, aber in diesem Fall ist es eine einzelne Aufgabe
Und reicht es, Multi-Thread-Programmierung in JAVA (Hadoop) zu verwenden, um alle Kerne in jedem Computer zu verwenden? Da der Linux-Scheduler auf Threads basiert?
Ja, es kann, da dies der erklärte Zweck ist, das Parallelisierbare zu teilen und zu parallelisieren. Sie können sogar die Speichermenge angeben, die von jedem Executor verwendet werden soll.
Einige Aufgaben können jedoch nicht parallelisiert werden, weshalb Spark manchmal nur einen Kern belegt.
Wenn Sie die Spark-Shell verwenden, stellen Sie sicher, dass Sie die Anzahl der zu verwendenden Kerne festlegen, wie in der Antwort auf diese Frage angegeben Warum verwendet Spark nicht alle Kerne auf dem lokalen Rechner?
Quelle: Offizielle Spark-Dokumente Ссылка
Nein, ein einzelner Thread kann nur auf einem einzelnen Kern ausgeführt werden. Sie müssen mehrere Threads oder Prozesse verwenden, um mehr als einen Kern gleichzeitig zu verwenden. Denken Sie daran, dass nicht alle Aufgaben in mehreren Threads asynchron ausgeführt werden können.
Tags und Links multithreading apache-spark multicore