[HADOOP] HDFS에서 1 백만 개 이상의 파일이있는 이진 파일 ()로 인한 스파크 시간 초과
HADOOPHDFS에서 1 백만 개 이상의 파일이있는 이진 파일 ()로 인한 스파크 시간 초과
통해 수백만 개의 XML 파일을 읽고 있습니다.
val xmls = sc.binaryFiles(xmlDir)
작업은 로컬에서 정상적으로 실행되지만 원사에서는 다음과 같이 실패합니다.
client token: N/A
diagnostics: Application application_1433491939773_0012 failed 2 times due to ApplicationMaster for attempt appattempt_1433491939773_0012_000002 timed out. Failing the application.
ApplicationMaster host: N/A
ApplicationMaster RPC port: -1
queue: default
start time: 1433750951883
final status: FAILED
tracking URL: http://controller01:8088/cluster/app/application_1433491939773_0012
user: ariskk
Exception in thread "main" org.apache.spark.SparkException: Application finished with failed status
at org.apache.spark.deploy.yarn.Client.run(Client.scala:622)
at org.apache.spark.deploy.yarn.Client$.main(Client.scala:647)
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:497)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
hadoop / 사용자 로그 로그에서 다음 메시지가 자주 표시됩니다.
15/06/08 09:15:38 WARN util.AkkaUtils: Error sending message [message = Heartbeat(1,[Lscala.Tuple2;@2b4f336b,BlockManagerId(1, controller01.stratified, 58510))] in 2 attempts
java.util.concurrent.TimeoutException: Futures timed out after [30 seconds]
at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:107)
at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
at scala.concurrent.Await$.result(package.scala:107)
at org.apache.spark.util.AkkaUtils$.askWithReply(AkkaUtils.scala:195)
at org.apache.spark.executor.Executor$$anon$1.run(Executor.scala:427)
spark-submit을 통해 spark 작업을 실행하면 37k 파일 만 포함 된 다른 HDFS 디렉토리에서 작동합니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
해결법
-
==============================
1.스파크 메일 링리스트에 대한 도움을 얻은 후 두 가지 문제가 있음을 알았습니다.
스파크 메일 링리스트에 대한 도움을 얻은 후 두 가지 문제가 있음을 알았습니다.
from https://stackoverflow.com/questions/30704814/spark-timesout-maybe-due-to-binaryfiles-with-more-than-1-million-files-in-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Amazon EMR : 데이터 노드에서 스토리지 구성 (0) | 2019.08.08 |
---|---|
[HADOOP] 하둡 맵리 듀스 프로그래밍 (0) | 2019.08.08 |
[HADOOP] HBase : 0.96.0 이후에 커스텀 스킵 필터를 작성하는 방법은 무엇입니까? (0) | 2019.08.08 |
[HADOOP] 스파크 구성 파일 (0) | 2019.08.08 |
[HADOOP] 돼지의 한 줄 입력에서 여러 줄 출력 생성 (0) | 2019.08.08 |