Requested data length 88431035 is longer than maximum configured RPC length 67108864.

1793 단어 Hadoop

HDFS DataNode RPC 예외

Requested data length 88431035 is longer than maximum configured RPC length 67108864.

예외 정보

2020-04-05 08:29:19,993 WARN org.apache.hadoop.ipc.Server: Requested data length 88431035 is longer than maximum configured RPC length 67108864.  RPC came from  xxx.xxx.xxxx.xxx
2020-04-05 08:29:19,993 INFO org.apache.hadoop.ipc.Server: Socket Reader #1 for port 8022: readAndProcess from client  xxx.xxx.xxxx.xxx threw exception [java.io.IOException: Requested data length 88431035 is longer than maximum configured RPC length 67108864.  RPC came from  xxx.xxx.xxxx.xxx]
java.io.IOException: Requested data length 88431035 is longer than maximum configured RPC length 67108864.  RPC came from  xxx.xxx.xxxx.xxx
	at org.apache.hadoop.ipc.Server$Connection.checkDataLength(Server.java:1665)
	at org.apache.hadoop.ipc.Server$Connection.readAndProcess(Server.java:1727)
	at org.apache.hadoop.ipc.Server$Listener.doRead(Server.java:935)
	at org.apache.hadoop.ipc.Server$Listener$Reader.doRunLoop(Server.java:791)
	at org.apache.hadoop.ipc.Server$Listener$Reader.run(Server.java:762)


해결 방법


NameNode의 hdfs-site를 수정합니다.xml 프로필, 다음 프로필을 추가합니다.

    ipc.maximum.data.length
    134217728


까닭


클러스터 규모가 작지만 작은 파일 수가 유난히 많아 각 데이터 노드에 대량의 블록 정보가 존재하기 때문에 데이터 노드가namenode에 블록 정보를 보고할 때 RPC는 최대 64M, 클러스터가 오류를 보고할 때 RPC의 정보량은 80M 정도이다.이로 인해 RPC 이상이 발생하여 DataNode가 Block 정보를 NameNode에 보고하지 못했고 NameNode는 Block을 잃어버렸다고 여겼다.
  public static final String IPC_MAXIMUM_DATA_LENGTH ="ipc.maximum.data.length";
  
  public static final int IPC_MAXIMUM_DATA_LENGTH_DEFAULT = 64 * 1024 * 1024;

좋은 웹페이지 즐겨찾기