1

私のスクリプトはPythonで書かれていますが、docker環境なしでDSE 4.8でうまくいきました。今度はDSE 5.0.4にアップグレードしてドッカー環境で実行しましたが、今は以下のRPCエラーが発生しました。 DSE Sparkバージョン1.4.1を使用する前は、今は1.6.2を使用しています。Spark 1.6.2 RPCエラーメッセージが表示されるのはなぜですか?

ホストOS CentOS 7.2とドッカーOSは同じです。私たちはsparkを使ってタスクを提出し、実行者に2G、4G、6G、8Gを与えようとしましたが、それらはすべて同じエラーメッセージを出します。

私の以前の環境では同じpythonスクリプトが問題なく実行されましたが、今度はそれを更新しても正しく動作しません。

スカラ操作では、コードは現在の環境で正常に実行されますが、Pythonの部分だけが問題を抱えています。ホストをリセットしても問題は解決されません。ドッカーコンテナを再作成しても、問題の解決には役立ちませんでした。

編集:

おそらく、私のMapreduce機能が複雑すぎるかもしれません。問題はここにあるかもしれませんが、わかりません。環境の

仕様: クラスタグループ6ホストすることにより、すべてのホストは、16コアのCPU、32Gメモリ、500G SSDを持って

この問題を解決する方法任意のアイデア?また、このエラーメッセージはどういう意味ですか?どうもありがとう!あなたがより多くの情報を必要とするかどうかを教えてください。

エラーログ:

Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages. 
WARN 2017-02-26 10:14:08,314 org.apache.spark.scheduler.TaskSetManager: Lost task 47.1 in stage 88.0 (TID 9705, 139.196.190.79): TaskKilled (killed intentionally) 
Traceback (most recent call last): 
    File "/data/user_profile/User_profile_step1_classify_articles_common_sc_collect.py", line 1116, in <module> 
    compute_each_dimension_and_format_user(article_by_top_all_tmp) 
    File "/data/user_profile/User_profile_step1_classify_articles_common_sc_collect.py", line 752, in compute_each_dimension_and_format_user 
    sqlContext.createDataFrame(article_up_save_rdd, df_schema).write.format('org.apache.spark.sql.cassandra').options(keyspace='archive', table='articles_up_update').save(mode='append') 
    File "/opt/dse-5.0.4/resources/spark/python/lib/pyspark.zip/pyspark/sql/readwriter.py", line 395, in save 
WARN 2017-02-26 10:14:08,336 org.apache.spark.scheduler.TaskSetManager: Lost task 63.1 in stage 88.0 (TID 9704, 139.196.190.79): TaskKilled (killed intentionally) 
    File "/opt/dse-5.0.4/resources/spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 813, in __call__ 
    File "/opt/dse-5.0.4/resources/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 45, in deco 
    File "/opt/dse-5.0.4/resources/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py", line 308, in get_return_value 
py4j.protocol.Py4JJavaError: An error occurred while calling o795.save. 
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 619 in stage 88.0 failed 4 times, most recent failure: Lost task 619.3 in stage 88.0 (TID 9746, 139.196.107.73): ExecutorLostFailure (executor 59 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages. 
Driver stacktrace: 
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1431) 
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1419) 
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1418) 
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) 
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47) 
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1418) 
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:799) 
at org.apache.spark.scheduler.DAGScheduler$$anonfun$han 

ドッカーコマンド:

docker run -d --net=host -i --privileged \ 
    -e SEEDS=10.XX.XXx.XX 1,10.XX.XXx.XXX \ 
    -e CLUSTER_NAME="MyCluster" \ 
    -e LISTEN_ADDRESS=10.XX.XXx.XX \ 
    -e BROADCAST_RPC_ADDRESS=139.XXX.XXX.XXX \ 
    -e RPC_ADDRESS=0.0.0.0 \ 
    -e STOMP_INTERFACE=10.XX.XXx.XX \ 
    -e HOSTS=139.XX.XXx.XX \ 
    -v /data/dse/lib/cassandra:/var/lib/cassandra \ 
    -v /data/dse/lib/spark:/var/lib/spark \ 
    -v /data/dse/log/cassandra:/var/log/cassandra \ 
    -v /data/dse/log/spark:/var/log/spark \ 
    -v /data/agent/log:/opt/datastax-agent/log \ 
    --name dse_container registry..xxx.com/rechao/dse:5.0.4 -s 
+1

Datastax以上のものを更新しました。あなたは現在Dockerを使用しています。エラーに「しきい値やネットワークの問題を超えています」と明記されているので、ホストOSとは何ですか? –

+0

@ cricket_007ホストOS Centos 7.2とDocker OSは同じです。私たちはsparkを使ってタスクを提出し、実行者に2G、4G、6G、8Gを与えようとしましたが、それらはすべて同じエラーメッセージを出します。どんな考え?おかげで – peter

+1

さて、おそらくネットワーキング上の問題です。コンテナが適切なポートを公開していますか? –

答えて

0

ドッキングウィンドウは、この問題を解決することができ64Gにホストメモリを増やし、結構です。

関連する問題