我有一个带有一些大gzip
文件的 HDFS 集群。
我确保这些gzip
文件的所有块都在同一个 DataNode 上,方法是从这个数据节点将它们写入 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
那样做吗?