2017-08-29 10 views
0

私は、ゲートウェイからオプションの--master yarn --deploy-mode clusterを使用して、糸クラスター・モードでスパーク・アプリケーション(2.1.0)を起動します。しかし、ゲートウェイ上で​​によって起動されたプロセスは、依然として数百のスレッドをローカルに作成していることがわかります。私は、クラスタモードが起動されているので、ゲートウェイはなく、ワーカーがワーカーノード上に作成されることを期待しています。クラスタモードはログによって確認されます。何百ものスレッドがゲートウェイで立ち上げられるのはなぜですか?スパーク・クラスタ・モードとスレッド

PS:Hadoop 2.6.0を実行している暗号化されたクラスタを使用しています。

+0

私はCloudera 5.6.0(hadoop 2.6.0)で動作しています – pgrandjean

+0

詳細を追加するために編集されています。 – pgrandjean

答えて

1

ここに報告されている問題が発生している可能性があります。https://issues.apache.org/jira/browse/HDFS-7718この問題はクラスタのkerberosを有効にし、デプロイメントモードを使用して、​​を起動したノードのリソース消費を削減して私の会社に影響を与えているようです。これは確かにあなたに影響を与える問題である場合、調査糸アプリケーションマスターJVM上jstackを起動してみてください、そしてどのように確認するには

java.lang.OutOfMemoryError: Unable to create new native thread 

:私たちは、ゲートウェイノードからいくつかのスパークジョブを起動するようなエラーにつながることがわかりますあなたのスレッドのように見えます。次のスタックトレースを持つスレッドが多数表示された場合:

"Truststore reloader thread" daemon prio=10 tid=0x00007fd1a5fa4000 nid=0x46f5 waiting on condition [0x00007fd086eed000] 
    java.lang.Thread.State: TIMED_WAITING (sleeping) 
    at java.lang.Thread.sleep(Native Method) 
    at org.apache.hadoop.security.ssl.ReloadingX509TrustManager.run(ReloadingX509TrustManager.java:189) 
    at java.lang.Thread.run(Thread.java:745) 

あなたは非常に適格です。

私たちの場合、セキュリティ保護されたクラスタでspark.yarn.jarsを使用すると、新しいジャーがHDFSにキャッシュされると分析されるたびに、ApplicationMasterは使用されるスレッドの量が1増加します。新しいスレッドはそれぞれ、上記のスタックトレースを持ちます。私たちの場合、hdfs.DFSClientのインスタンスが新しいKMSClientProviderを作成し、新しいスレッドを作成する新しいReloadingX509TrustManagerを作成しました。キャッシュされたjarごとに1つです。私たちのために働いた簡単な回避策は、spark.yarn.jarsの使用を避けることでした。

完全性のために、この問題https://issues.apache.org/jira/browse/HADOOP-11368もご覧ください。

関連する問題