NameNode регистрирует в моем экземпляре HDFS недавно начатую запись предупреждений в форме Requested data length 145530837 is longer than maximum configured RPC length 144217728
.
Это в конечном итоге проявилось как NameNode, объявляющий тысячи блоков отсутствующими и 19 файлов поврежденными.
Ситуация была разрешена путем обновления ipc.maximum.data.length
до значения, превышающего запрошенную длину данных, указанную выше. Это не удовлетворительное решение, хотя. Я хотел бы понять, как возникла эта проблема.
Я запустил hdfs fsck -files -blocks -locations
, а самый большой блок имеет длину 1342177728
.
- Есть ли некоторые издержки для RPCзвонки? Может ли блок длиной
1342177728
приводить к исходному журналу предупреждений в верхней части этого сообщения? - Насколько я понимаю, единственный способ, которым клиент, записывающий в HDFS, может указать размер блока, - это либо
-Ddfs.blocksize
или установка соответствующего свойства для объекта Configuration
при инициализации подключения HDFS. Это правильно, или есть какие-то другие способы создания чрезмерно больших блоков? - Кроме сверхбольших блоков, есть ли другие проблемы, которые могут вызвать предупреждение выше?