Hadoop 실행 오류 기록

5504 단어 hadoop
문제1: Cannot run program "/bin/ls":error=11, Resource temporarily unavailable
 1 15/04/22 14:46:46 INFO mapred.JobClient: Task Id : attempt_201504221017_0006_r_000077_0, Status : FAILED

 2 java.lang.RuntimeException: Error while running command to get file permissions : java.io.IOException: Cannot run program "/bin/ls": error=11, Resource temporarily unavailable

 3         at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)

 4         at org.apache.hadoop.util.Shell.runCommand(Shell.java:200)

 5         at org.apache.hadoop.util.Shell.run(Shell.java:182)

 6         at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:375)

 7         at org.apache.hadoop.util.Shell.execCommand(Shell.java:461)

 8         at org.apache.hadoop.util.Shell.execCommand(Shell.java:444)

 9         at org.apache.hadoop.fs.FileUtil.execCommand(FileUtil.java:712)

10         at org.apache.hadoop.fs.RawLocalFileSystem$RawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:448)

11         at org.apache.hadoop.fs.RawLocalFileSystem$RawLocalFileStatus.getOwner(RawLocalFileSystem.java:431)

12 at org.apache.hadoop.mapred.TaskLog.obtainLogDirOwner(TaskLog.java:267)

13         at org.apache.hadoop.mapred.TaskLogsTruncater.truncateLogs(TaskLogsTruncater.java:124)

14         at org.apache.hadoop.mapred.Child$4.run(Child.java:260)

15         at java.security.AccessController.doPrivileged(Native Method)

16         at javax.security.auth.Subject.doAs(Subject.java:415)

17         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)

18         at org.apache.hadoop.mapred.Child.main(Child.java:249)

19 Caused by: java.io.IOException: error=11, Resource temporarily unavailable

20         at java.lang.UNIXProcess.forkAndExec(Native Method)

21         at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)

22         at java.lang.ProcessImpl.start(ProcessImpl.java:130)

23         at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)

24         ... 15 more

이 문제는 현재 Hadoop 작업을 제출한 사용자가 열 수 있는 파일 개수 제한 (주로 slave 결점) 때문일 가능성이 높으며, ulimit-n을 사용하여 현재 사용자가 열 수 있는 파일 개수를 볼 수 있습니다.
참조:http://mail-archives.apache.org/mod_mbox/nutch-user/201312.mbox/%[email protected]%3E
 
문제 2:java.lang.OutOfMemoryError: unable to create new native thread
1 15/04/22 11:08:16 WARN hdfs.DFSClient: DataStreamer Exception: java.lang.OutOfMemoryError: unable to create new native thread

2         at java.lang.Thread.start0(Native Method)

3         at java.lang.Thread.start(Thread.java:714)

4         at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:3030)

이 문제는 반드시 메모리가 부족한 것은 아닙니다. 현재 Hadoop 작업을 제출한 사용자가 만들 수 있는 프로세스 개수 제한 (주로 slave 결점) 을 사용하면ulimit-u를 사용하여 현재 사용자가 만들 수 있는 파일 개수를 볼 수 있습니다.
참조:http://www.nosql.se/2011/10/hadoop-tasktracker-java-lang-outofmemoryerror/
현재 사용자가 생성할 수 있는 프로세스 개수를 수정하는 방법:
CentOS에서 vim/etc/security/limits.d/90-nproc.conf 파일 끝에 다음 문장을 추가합니다.
1 *    soft    nproc     102400

2 *    hard    nproc     102400

수정이 완료되면 사용자를 사용하여 다시 로그인해야 합니다.(Xshell과 같은 원격 소프트웨어를 사용하는 경우 호스트 원격 연결의 탭 카드를 끄고 다시 로그인하면 됩니다.)
 
질문 3:
 
여부

좋은 웹페이지 즐겨찾기