ここに報告されている問題が発生している可能性があります。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もご覧ください。
私はCloudera 5.6.0(hadoop 2.6.0)で動作しています – pgrandjean
詳細を追加するために編集されています。 – pgrandjean