1

내 스크립트는 Python으로 작성되었으며, DSE 4.8에서 docker 환경없이 제대로 작동했다. 이제 DSE 5.0.4로 업그레이드하고 docker 환경에서 실행하면 아래의 RPC 오류가 발생합니다. 전에 DSE Spark 버전 1.4.1을 사용하기 전에 1.6.2를 사용하고 있습니다.왜 Spark 1.6.2 RPC 오류 메시지가 발생합니까?

호스트 OS CentOS 7.2와 Docker OS는 동일합니다. 우리는 작업을 제출하기 위해 spark을 사용하고 집행자에게 2G, 4G, 6G 및 8G를 제공하려고 시도했으며 모두 동일한 오류 메시지를 표시합니다.

이전 python 스크립트가 이전 환경에서는 문제없이 실행되었지만 올바르게 업데이트되지 않았으므로 제대로 작동하지 않습니다.

스칼라 작업의 경우 코드가 현재 환경에서 정상적으로 실행되지만 파이썬 부분에만 문제가 있습니다. 호스트를 재설정해도 문제가 해결되지 않은 것입니다. 고정 컨테이너를 다시 만들어도 문제를 해결하는 데는 도움이되지 않았습니다.

편집 :

어쩌면 내 맵리 듀스 기능이 너무 복잡하다. 여기에 문제가있을 수 있지만 확실하지는 않습니다. 환경의

사양 : 클러스터 그룹 (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에 호스트 메모리를 늘리십시오.