У меня есть кластер HDFS с большими файлами gzip
.
Я убедился, что все блоки этих gzip
файлов находятся в одном и том же узле данных, записав их в HDFS из этого узла данных.
for i in {1..10}; do
scp file$i.gz datanode1:
ssh datanode$i hadoop fs -put file$i.gz /data/
done
Теперь я хочу запустить задачу mapreduce для всех этих файлов.
Я ожидаю, что JobTracker поставит задание на обработку file1
на datanode1
, где все блоки.
Действительно, если датанода умрет, я потеряю локальность, но будет ли она работать, пока не умрет?
Если это так не работает, могу ли я написать FileInputFormat
, который будет это делать?