2017-08-29 6 views
0

HDP 2.4を使用してインストールされたHadoopクラスタバージョン2.7.1にアクセスできます。このようなクラスタは、具体的には、インストールされてスパークしていますHadoop 2.7.1クラスタでHadoop 2.6.0にSpark 1.6.2を使用する際の問題

$ cat /usr/hdp/2.4.3.0-227/spark/RELEASE 
Spark 1.6.2.2.4.3.0-227 built for Hadoop 2.7.1.2.4.3.0-227 

私はremotellyクラスタに接続し、スパークジョブを展開することができ、「クライアント」マシンをセットアップしようとしています。したがって、上記の同じバージョンのSparkディストリビューションをインストールする必要があります。

まず、Sparkのダウンロードページに行ってきましたが、1.6.2はHadoop 2.6でのみ使用できます。

次に、私はSparkソースコードをダウンロードし、thisガイドに従ってインストールすることにしました。興味深いのは、Hadoop "2.6.x以降2.x"のrequired building profilehadoop-2-6です。私。私が自分でビルドした場合、Sparkの公式ダウンロードページで入手できるディストリビューションを入手します。

したがって、私は、Hadoop 2.6.0用のSpark 1.6.2の公式な事前配布を行っています。

これは正しく動作していないようです。私はこの仕事のためにログをチェックすると

$ ./bin/spark-submit --master yarn --deploy-mode cluster basic.py 
... 
17/08/28 13:08:29 INFO Client: Requesting a new application from cluster with 8 NodeManagers 
17/08/28 13:08:29 INFO Client: Verifying our application has not requested more than the maximum memory capability of the cluster (24576 MB per container) 
17/08/28 13:08:29 INFO Client: Will allocate AM container, with 1408 MB memory including 384 MB overhead 
17/08/28 13:08:29 INFO Client: Setting up container launch context for our AM 
17/08/28 13:08:29 INFO Client: Setting up the launch environment for our AM container 
17/08/28 13:08:29 INFO Client: Preparing resources for our AM container 
17/08/28 13:08:36 INFO Client: Uploading resource file:/Users/frb/Applications/spark-1.6.2-bin-hadoop2.6/lib/spark-assembly-1.6.2-hadoop2.6.0.jar -> hdfs://<host>:8020/user/frb/.sparkStaging/application_1495097788339_0066/spark-assembly-1.6.2-hadoop2.6.0.jar 
17/08/28 13:14:40 INFO Client: Uploading resource file:basic.py -> hdfs://<host>:8020/user/frb/.sparkStaging/application_1495097788339_0066/basic.py 
17/08/28 13:14:40 INFO Client: Uploading resource file:/Users/frb/Applications/spark-1.6.2-bin-hadoop2.6/python/lib/pyspark.zip -> hdfs://<host>:8020/user/frb/.sparkStaging/application_1495097788339_0066/pyspark.zip 
17/08/28 13:14:41 INFO Client: Uploading resource file:/Users/frb/Applications/spark-1.6.2-bin-hadoop2.6/python/lib/py4j-0.9-src.zip -> hdfs://<host>:8020/user/frb/.sparkStaging/application_1495097788339_0066/py4j-0.9-src.zip 
17/08/28 13:14:42 INFO Client: Uploading resource file:/private/var/folders/cc/p9gx2wnn3dz8g6yf_r4308fm0000gn/T/spark-0d86f1f4-d310-423a-9d2f-90e2ff46f84e/__spark_conf__3704082754178078870.zip -> hdfs://<host>:8020/user/frb/.sparkStaging/application_1495097788339_0066/__spark_conf__3704082754178078870.zip 
17/08/28 13:14:42 INFO SecurityManager: Changing view acls to: frb 
17/08/28 13:14:42 INFO SecurityManager: Changing modify acls to: frb 
17/08/28 13:14:42 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(frb); users with modify permissions: Set(frb) 
17/08/28 13:14:42 INFO Client: Submitting application 66 to ResourceManager 
17/08/28 13:14:42 INFO YarnClientImpl: Submitted application application_1495097788339_0066 
17/08/28 13:14:48 INFO Client: Application report for application_1495097788339_0066 (state: ACCEPTED) 
17/08/28 13:14:48 INFO Client: 
    client token: N/A 
    diagnostics: N/A 
    ApplicationMaster host: N/A 
    ApplicationMaster RPC port: -1 
    queue: default 
    start time: 1503918882943 
    final status: UNDEFINED 
    tracking URL: <host>:8088/proxy/application_1495097788339_0066/ 
    user: frb 
17/08/28 13:14:49 INFO Client: Application report for application_1495097788339_0066 (state: ACCEPTED) 
... 
17/08/28 13:14:52 INFO Client: Application report for application_1495097788339_0066 (state: RUNNING) 
17/08/28 13:14:52 INFO Client: 
    client token: N/A 
    diagnostics: N/A 
    ApplicationMaster host: 10.95.120.6 
    ApplicationMaster RPC port: 0 
    queue: default 
    start time: 1503918882943 
    final status: UNDEFINED 
    tracking URL: <host>:8088/proxy/application_1495097788339_0066/ 
    user: frb 
17/08/28 13:14:53 INFO Client: Application report for application_1495097788339_0066 (state: RUNNING) 
... 
17/08/28 13:14:59 INFO Client: Application report for application_1495097788339_0066 (state: ACCEPTED) 
17/08/28 13:14:59 INFO Client: 
    client token: N/A 
    diagnostics: N/A 
    ApplicationMaster host: N/A 
    ApplicationMaster RPC port: -1 
    queue: default 
    start time: 1503918882943 
    final status: UNDEFINED 
    tracking URL: <host>:8088/proxy/application_1495097788339_0066/ 
    user: frb 
17/08/28 13:15:00 INFO Client: Application report for application_1495097788339_0066 (state: ACCEPTED) 
17/08/28 13:15:01 INFO Client: Application report for application_1495097788339_0066 (state: RUNNING) 
17/08/28 13:15:01 INFO Client: 
    client token: N/A 
    diagnostics: N/A 
    ApplicationMaster host: 10.95.58.21 
    ApplicationMaster RPC port: 0 
    queue: default 
    start time: 1503918882943 
    final status: UNDEFINED 
    tracking URL: <host>:8088/proxy/application_1495097788339_0066/ 
    user: frb 
17/08/28 13:15:02 INFO Client: Application report for application_1495097788339_0066 (state: RUNNING) 
... 
17/08/28 13:15:09 INFO Client: Application report for application_1495097788339_0066 (state: FINISHED) 
17/08/28 13:15:09 INFO Client: 
    client token: N/A 
    diagnostics: Max number of executor failures (4) reached 
    ApplicationMaster host: 10.95.58.21 
    ApplicationMaster RPC port: 0 
    queue: default 
    start time: 1503918882943 
    final status: FAILED 
    tracking URL: <host>:8088/proxy/application_1495097788339_0066/ 
    user: frb 
Exception in thread "main" org.apache.spark.SparkException: Application application_1495097788339_0066 finished with failed status 
    at org.apache.spark.deploy.yarn.Client.run(Client.scala:1034) 
    at org.apache.spark.deploy.yarn.Client$.main(Client.scala:1081) 
    at org.apache.spark.deploy.yarn.Client.main(Client.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
17/08/28 13:15:09 INFO ShutdownHookManager: Shutdown hook called 
17/08/28 13:15:09 INFO ShutdownHookManager: Deleting directory /private/var/folders/cc/p9gx2wnn3dz8g6yf_r4308fm0000gn/T/spark-0d86f1f4-d310-423a-9d2f-90e2ff46f84e 

:私は非常にシンプルなものだけスパーク、コンテキストを作成-a Pythonスクリプトを提出してきましたし、問題のいくつかの種類は(のみログの関連部分を示す)があります私はそれを見ます:

ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server 
Traceback (most recent call last): 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 690, in start 
    self.socket.connect((self.address, self.port)) 
    File "/usr/lib64/python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 
error: [Errno 111] Connection refused 
Traceback (most recent call last): 
    File "basic.py", line 36, in <module> 
    sc = SparkContext(conf=conf) 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/pyspark.zip/pyspark/context.py", line 115, in __init__ 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/pyspark.zip/pyspark/context.py", line 172, in _do_init 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/pyspark.zip/pyspark/context.py", line 235, in _initialize_context 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 1062, in __call__ 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 631, in send_command 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 624, in send_command 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 579, in _get_connection 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 585, in _create_connection 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 697, in start 
py4j.protocol.Py4JNetworkError: An error occurred while trying to connect to the Java server 
ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server 
Traceback (most recent call last): 
    File "/disk0/hadoop/yarn/local/usercache/frb/appcache/application_1495097788339_0066/container_e03_1495097788339_0066_02_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 690, in start 
    self.socket.connect((self.address, self.port)) 
    File "/usr/lib64/python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 
error: [Errno 111] Connection refused 

e Sparkコンテキストが作成されていない場合、Javaゲートウェイを実行しているJVMとSparkコンテキストを実行しているPythonドライバの間で接続が失敗します。

このため、私は確かに私のクライアントマシンにインストールしたスパーク分布に関連する必要があります。私のクライアントマシンのスパーク分布はclsuterにアップロードされ

  • 、したがっては1であります中古;

    17/08/28 13:08:36情報クライアント:リソースファイルをアップロード中:/Users/frb/Applications/spark-1.6.2-bin-hadoop2.6/lib/spark -assembly-1.6.2-hadoop2.6.0.jar - > hdfs://:8020/user/frb/.sparkStaging/application_1495097788339_0066/spark-assembly-1.6.2-hadoop2.6.0.jar

  • 同じ上記のコマンドは、クラスタ内で送信されたとき、つまりHDPによってインストールされたSparkの「Hazel 2.7.1.2.4.3.0-227用に構築されたSpark 1.6.2.2.4.3.0-227」バージョンを使用しているときに機能します。

これを修正する方法については何か考えてください。ありがとう!

答えて

0

Iはfinalyこの解決:

  • をI値と、​​コマンドに遠隔スパーククラスタにおける火花アセンブリジャーの位置をオプション--conf spark.yarn.jarを追加しました。これは私がインストールしたクライアントサイドのSparkアセンブリjarをアップロードすることを避けます(これは遅いプロセスであり、実際にはリモートバージョンと正確には一致しません)。
  • yarn-site.xmlのクライアント側に、hdp.versionプロパティを追加しました。値はリモートHadoop-SparkクラスタのHDPバージョンです。これにより、特定のパスでの置換エラーが回避されます。これは、最後に質問で説明した接続エラーとして明らかになりました。
関連する問題