У нас есть кластерная версия Hadoop HDP - 26, на redhat-машинах версия 7.x
Мы запускаем следующую команду для захвата файлов с поврежденными блоками
Пример 1
[root@master_3 ~]# su hdfs
[hdfs@master_3 root]$ hdfs fsck -list-corruptfileblocks
blk_1097240344/localhdp/Rtrone/intercept_by_type/2018/4/10/16/2018_4_03_11_45.parquet/part-00002-be0f80a9-2c7c-4c50-b18d-db0f94a98cff.snly.parquet
blk_1097240348/localhdp/Rtrone/intkjd_country/2018/4/10/16/2018_4_03_11_45.parquet/part-00003-8600d0e2-c6b6-49b7-89cd-ef243cda4c5e.snly.parquet
The filesystem under path '/' has 2 CORRUPT files
так что, похоже, файлы:
/localhdp/Rtrone/intercept_by_type/2018/4/10/16/2018_4_03_11_45.parquet/part-00002-be0f80a9-2c7c-4c50-b18d-db0f94a98cff.snly.parquet
/localhdp/Rtrone/intkjd_country/2018/4/10/16/2018_4_03_11_45.parquet/part-00003-8600d0e2-c6b6-49b7-89cd-ef243cda4c5e.snly.parquet
В поиске в Google я понимаю, что процедура обработки поврежденного блока в файлах должна быть следующей:
Это приведет к удалению поврежденных блоков HDFS:
hdfs fsck / -delete
снова запустите hdfs fsck -list-injfileblocks, чтобы узнать, успешно ли удален поврежденный блок
hdfs fsck -list-injffileblocks
если поврежденные блоки все еще существуют (как пример 1), тогда нам нужно удалить файлы следующим образом
hdfs fs -rm /localhdp/Rtrone/intercept_by_type/2018/4/10/16/2018_4_03_11_45.parquet/part-00002-be0f80a9-2c7c-4c50-b18d-db0f94a98cff.snly.parquet
hdfs fs -rm /localhdp/Rtrone/intkjd_country/2018/4/10/16/2018_4_03_11_45.parquet/part-00003-8600d0e2-c6b6-49b7-89cd-ef243cda4c5e.snly.par32 *
я прав или мне что-то не хватает?
Пожалуйста, дайте мне знать, что нужно добавить или обновить относительно моей процедуры