복붙노트

[HADOOP] 하둡 오류 : Java 힙 공간이 큰 데이터 세트를 사용하여

HADOOP

하둡 오류 : Java 힙 공간이 큰 데이터 세트를 사용하여

나는 큰 텍스트 데이터 세트 (~ 3.1Tb)를 통해 하둡 프로그램을 실행하기 위해 노력하고있어.

이 오류 모든 시간을 얻는 그리고 난 모든 로그를 볼 수 없습니다 :

15/04/29 13:31:30 INFO mapreduce.Job:  map 86% reduce 3%
15/04/29 13:33:33 INFO mapreduce.Job:  map 87% reduce 3%
15/04/29 13:35:34 INFO mapreduce.Job:  map 88% reduce 3%
15/04/29 13:37:34 INFO mapreduce.Job:  map 89% reduce 3%
15/04/29 13:39:33 INFO mapreduce.Job:  map 90% reduce 3%
15/04/29 13:41:27 INFO mapreduce.Job:  map 91% reduce 3%
15/04/29 13:42:51 INFO mapreduce.Job: Task Id : attempt_1430221604005_0004_m_018721_0, Status : FAILED
Error: Java heap space
15/04/29 13:43:03 INFO mapreduce.Job: Task Id : attempt_1430221604005_0004_m_018721_1, Status : FAILED
Error: Java heap space
15/04/29 13:43:21 INFO mapreduce.Job: Task Id : attempt_1430221604005_0004_m_018721_2, Status : FAILED
Error: Java heap space
15/04/29 13:43:23 INFO mapreduce.Job:  map 92% reduce 3%
15/04/29 13:43:53 INFO mapreduce.Job:  map 100% reduce 100%
15/04/29 13:44:00 INFO mapreduce.Job: Job job_1430221604005_0004 failed with state FAILED due to: Task failed task_1430221604005_0004_m_018721
Job failed as tasks failed. failedMaps:1 failedReduces:0

15/04/29 13:44:00 INFO mapreduce.Job: Counters: 40
    File System Counters
        FILE: Number of bytes read=1671885418232
        FILE: Number of bytes written=3434806868906
        FILE: Number of read operations=0
        FILE: Number of large read operations=0
        FILE: Number of write operations=0
        HDFS: Number of bytes read=2421645776312
        HDFS: Number of bytes written=0
        HDFS: Number of read operations=54123
        HDFS: Number of large read operations=0
        HDFS: Number of write operations=0
    Job Counters 
        Failed map tasks=4
        Killed map tasks=53
        Killed reduce tasks=13
        Launched map tasks=18098
        Launched reduce tasks=13
        Other local map tasks=3
        Data-local map tasks=18095
        Total time spent by all maps in occupied slots (ms)=833322750
        Total time spent by all reduces in occupied slots (ms)=179324736
        Total time spent by all map tasks (ms)=833322750
        Total time spent by all reduce tasks (ms)=44831184
        Total vcore-seconds taken by all map tasks=833322750
        Total vcore-seconds taken by all reduce tasks=44831184
        Total megabyte-seconds taken by all map tasks=1644979108500
        Total megabyte-seconds taken by all reduce tasks=353987028864
    Map-Reduce Framework
        Map input records=4341029640
        Map output records=3718782624
        Map output bytes=1756332044946
        Map output materialized bytes=1769982618200
        Input split bytes=2694367
        Combine input records=0
        Spilled Records=7203900023
        Failed Shuffles=0
        Merged Map outputs=0
        GC time elapsed (ms)=10688027
        CPU time spent (ms)=391899480
        Physical memory (bytes) snapshot=15069669965824
        Virtual memory (bytes) snapshot=61989010124800
        Total committed heap usage (bytes)=17448162033664
    File Input Format Counters 
        Bytes Read=2421643081945

지도 과정은 3 시간 이상을, 그리고 그것이 내가 볼 수있는 유일한 출력은 이후 데뷔하기 정말 어렵습니다.

나는 숫양의 24 기가 바이트 및 구성에 각각 10 개 서버와 클러스터를 가지고 :

<configuration>
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>
<property>
    <name>mapreduce.jobtracker.address</name>
    <value>computer61:8021</value>
</property>
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>1974</value>
</property>

<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>7896</value>
</property>

<property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx1580m</value>
</property>

<property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx6320m</value>
</property>

</configuration>

나는 선을 추가

hadoop-env.sh 파일하지만 아무것도 변화.

나는이 오래된 질문 알아요,하지만 난 어떤 개선없이 같은 50 게시물에 권장 솔루션을 적용했다.

나도 같은 코드를 작은 데이터 세트 (~ 1TB의)를 사용할 때 잘 작동합니다.

당신은 내가 특정 오류를 받고 있어요 위치를 알고 로그를 유지할 수있는 방법을 적어도 알고 계십니까?

감사

최신 정보:

나는 그것이 삭제되기 전에 로그를 볼 수 처리했다. 기본적으로 오류 :

2015-04-29 18:23:45,719 INFO [main] org.apache.hadoop.mapred.MapTask: kvstart = 26214396(104857584); kvend = 25874428(103497712); length = 339969/6553600
2015-04-29 18:23:47,110 INFO [main] org.apache.hadoop.mapred.MapTask: Finished spill 0
2015-04-29 18:23:47,676 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3664)
    at java.lang.String.<init>(String.java:201)
    at java.lang.String.substring(String.java:1956)
    at java.lang.String.trim(String.java:2865)
    at analysis.MetaDataMapper.map(MetaDataMapper.java:109)
    at analysis.MetaDataMapper.map(MetaDataMapper.java:21)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)

해결법

  1. ==============================

    1.버퍼 크기가 도움이 될 수 감소. 이 정렬을 시작하지만, 대규모 데이터 세트에 대한이 너무 클 수 있습니다 전에 기본적으로 하둡은 매퍼에서 데이터의 70 %를 버퍼링한다. 당신은 mapred-site.xml을 다음과 같은 속성을 추가하여 입력 버퍼 비율을 줄일 수 있습니다.

    버퍼 크기가 도움이 될 수 감소. 이 정렬을 시작하지만, 대규모 데이터 세트에 대한이 너무 클 수 있습니다 전에 기본적으로 하둡은 매퍼에서 데이터의 70 %를 버퍼링한다. 당신은 mapred-site.xml을 다음과 같은 속성을 추가하여 입력 버퍼 비율을 줄일 수 있습니다.

    <property>
      <name>mapred.job.shuffle.input.buffer.percent</name>
      <value>0.20</value>
    </property>
    

    나는 20 %의 값을 설정,하지만 당신은 당신의 데이터 세트 및 사용 가능한 RAM의 양에 따라 더욱이 문제를 줄일 수 있습니다.

  2. ==============================

    2.로그를 실 UI를 확인하거나 셸에서 다음 명령을 실행

    로그를 실 UI를 확인하거나 셸에서 다음 명령을 실행

    <당신의 씨 작업의 실 응용 프로그램 ID를> -applicationId 실 로그

  3. from https://stackoverflow.com/questions/29943659/hadoop-error-java-heap-space-when-using-big-dataset by cc-by-sa and MIT license