[HADOOP] 지정해 SocketTimeoutException 클러스터 사이 하둡 distcp의 -update를 실행하는 경우
HADOOP지정해 SocketTimeoutException 클러스터 사이 하둡 distcp의 -update를 실행하는 경우
나는 다른 1-1 HDFS 클러스터에서 디렉토리를 복사 할 -update distcp 하둡을 사용하고 있습니다. 언젠가 (꽤 자주) 나는 예외의이 종류를 얻을 :
13/07/03 00:20:03 INFO tools.DistCp: srcPaths=[hdfs://HDFS1:51175/directory_X]
13/07/03 00:20:03 INFO tools.DistCp: destPath=hdfs://HDFS2:51175/directory_X
13/07/03 00:25:27 WARN hdfs.DFSClient: src=directory_X, datanodes[0].getName()=***.***.***.***:8550
java.net.SocketTimeoutException: 69000 millis timeout while waiting for channel to be ready for read. ch : java.nio.channels.SocketChannel[connected local=/***.***.***.***:35872 remote=/***.***.***.***:8550]
at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:164)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:155)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:128)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:116)
at java.io.DataInputStream.readShort(DataInputStream.java:295)
at org.apache.hadoop.hdfs.DFSClient.getFileChecksum(DFSClient.java:885)
at org.apache.hadoop.hdfs.DFSClient.getFileChecksum(DFSClient.java:822)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileChecksum(DistributedFileSystem.java:541)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileChecksum(DistributedFileSystem.java:53)
at org.apache.hadoop.tools.DistCp.sameFile(DistCp.java:1230)
at org.apache.hadoop.tools.DistCp.setup(DistCp.java:1110)
at org.apache.hadoop.tools.DistCp.copy(DistCp.java:666)
at org.apache.hadoop.tools.DistCp.run(DistCp.java:881)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.tools.DistCp.main(DistCp.java:908)
13/07/03 00:26:40 INFO tools.DistCp: sourcePathsCount=8542
13/07/03 00:26:40 INFO tools.DistCp: filesToCopyCount=0
13/07/03 00:26:40 INFO tools.DistCp: bytesToCopyCount=0.0
사람이 될 수 있는지 어떤 생각을 가지고 있습니까? 하둡 0.20.205.0 사용
해결법
-
==============================
1.읽기 시간 초과, 모두 dfs.socket.timeout에 대한 시간 제한을 증가하는 것이 좋습니다. 그리고 쓰기 시간 초과 dfs.datanode.socket.write.timeout.
읽기 시간 초과, 모두 dfs.socket.timeout에 대한 시간 제한을 증가하는 것이 좋습니다. 그리고 쓰기 시간 초과 dfs.datanode.socket.write.timeout.
기본:
// Timeouts for communicating with DataNode for streaming writes/reads public static int READ_TIMEOUT = 60 * 1000; // here, 69000 millis > 60000 public static int WRITE_TIMEOUT = 8 * 60 * 1000;
당신의 하둡-site.xml 파일 또는 HDFS-site.xml 파일에 아래 추가
<property> <name>dfs.datanode.socket.write.timeout</name> <value>3000000</value> </property> <property> <name>dfs.socket.timeout</name> <value>3000000</value> </property>
희망이 도움이.
-
==============================
2.난 당신이 또한 dfs.client.socket - 시간 제한을 설정하려는 생각
난 당신이 또한 dfs.client.socket - 시간 제한을 설정하려는 생각
-
==============================
3.그 이유이다.
그 이유이다.
dfs.socket.timeout -> dfs.client.socket - 시간 제한
from https://stackoverflow.com/questions/17438093/sockettimeoutexception-when-running-hadoop-distcp-update-between-clusters by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 네임 노드의 악마의 시작의 오류 (0) | 2019.10.12 |
---|---|
[HADOOP] 키 PRODUCT_ID에 의해 그룹에서 하이브 명령 오류 발현되지 않음 (0) | 2019.10.12 |
[HADOOP] 돼지 - 간단한 부하에 대한 예외 (0) | 2019.10.12 |
[HADOOP] Sqoop을 명령은 하둡에서 작동합니다 추가 않는 방법 (0) | 2019.10.12 |
[HADOOP] 지역 사용하여 자바로 FTP에서 파일을 다운로드하면 파일을 읽을 수 있습니다 - 인코딩 문제를 (0) | 2019.10.12 |