Caused by: java.io.IOException: Cannot obtain block length for LocatedBlock{BP-1543153613-192.168.200.60-1463200565636:blk_1305640536_1099879460161; getBlockSize()=0; corrupt=false; offset=0; locs=[10.0.0.1:50010, 10.0.0.2:50010, 10.0.0.3:50010]; storageIDs=[DS-22
77a588-22f5-4086-b78f-886f97952570, DS-a14b5023-ae0b-4d2f-b2e6-8b8eb9ce748c, DS-cbf5d184-751d-49fa-9ad6-7d420a7429f4]; storageTypes=[DISK, DISK, DISK]}
在读取文件的时候发生错误,原因是该文件处于openforwrite状态,即正在写入。正常情况下正在定入的文件是不会被程序看到的,这里是定入异常结束导致的问题,执行
hdfs fsck /hivedata/warehouse/liuxiaowen.db/lxw_product_names/ -openforwrite
发现该文件’MISS 1 BLOCK,size 0 byte’,块有问题,删除块即可。