[HADOOP] 하둡 copyFromLocal의 메모리 문제 아웃
HADOOP하둡 copyFromLocal의 메모리 문제 아웃
나는 오류가 아래에있어, HDFS 파일 시스템에 1,048,578 파일이 들어있는 디렉토리를 복사하려고하지만 해요 :
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuffer.append(StringBuffer.java:237)
at java.net.URI.appendSchemeSpecificPart(URI.java:1892)
at java.net.URI.toString(URI.java:1922)
at java.net.URI.<init>(URI.java:749)
at org.apache.hadoop.fs.shell.PathData.stringToUri(PathData.java:565)
at org.apache.hadoop.fs.shell.PathData.<init>(PathData.java:151)
at org.apache.hadoop.fs.shell.PathData.getDirectoryContents(PathData.java:273)
at org.apache.hadoop.fs.shell.Command.recursePath(Command.java:347)
at org.apache.hadoop.fs.shell.CommandWithDestination.recursePath(CommandWithDestination.java:291)
at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:308)
at org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:278)
at org.apache.hadoop.fs.shell.CommandWithDestination.processPathArgument(CommandWithDestination.java:243)
at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:260)
at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:244)
at org.apache.hadoop.fs.shell.CommandWithDestination.processArguments(CommandWithDestination.java:220)
at org.apache.hadoop.fs.shell.CopyCommands$Put.processArguments(CopyCommands.java:267)
at org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:190)
at org.apache.hadoop.fs.shell.Command.run(Command.java:154)
at org.apache.hadoop.fs.FsShell.run(FsShell.java:287)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
해결법
-
==============================
1.문제는 하둡 클라이언트를 사용하여 기본적으로이었다. 이것은 4GB의 "GCOverheadLimit"를 증가시켜 고정됩니다. 다음 명령은 내 문제를 해결했다.
문제는 하둡 클라이언트를 사용하여 기본적으로이었다. 이것은 4GB의 "GCOverheadLimit"를 증가시켜 고정됩니다. 다음 명령은 내 문제를 해결했다.
수출 HADOOP_CLIENT_OPTS = "- XX : -UseGCOverheadLimit -Xmx4096m"
-
==============================
2.당신 넣어주는 시도 (또는 로컬 복사) 더 힙 공간을 명령. 또는, 덜 공격적 넣어 작업을한다.
당신 넣어주는 시도 (또는 로컬 복사) 더 힙 공간을 명령. 또는, 덜 공격적 넣어 작업을한다.
즉 전체 데이터의 절반 .... 1 / 4 일 또는 1/5의 배치로 복사한다. 이 모든 복사가 기본 자바 명령을 사용하여 로컬 컴퓨터에서 수행되는, 당신은 단순히 오버로드됩니다.
from https://stackoverflow.com/questions/35405690/out-of-memory-issue-for-hadoop-copyfromlocal by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 어떻게 하이브 데이터와 메타 스토어 의사 소통을하고 서로 통합? (0) | 2019.09.29 |
---|---|
[HADOOP] 하이브 : 분할 문자열을 사용하여 정규 표현식 (0) | 2019.09.29 |
[HADOOP] (모든 솔루션을 시도한 후) 호스트 OS에서 샌드 박스에서 카프카 액세스 (0) | 2019.09.29 |
[HADOOP] oozie를 사용하여 S3에 파일을 이동 (0) | 2019.09.29 |
[HADOOP] MovieLens 데이터를 HDFS에서 데이터를로드 할 때 데이터 저장소를 만들지 못했습니다으로 오류가 (0) | 2019.09.29 |