错误将HDFS文件映射到外部驱动器

时间:2017-01-13 04:40:06

标签: hadoop hadoop2

我想在hadoop-2.7.3中创建一个物理上驻留在外部(usb-thumb)驱动器上的文件夹,这个想法是我-copyFromLocal的任何文件都将驻留在拇指驱动器上。同样,hadoop的任何输出文件也会转到外部驱动器:

mkdir /media/usb
mount /dev/sdb1 /media/usb
hdfs dfs -mkdir /media/usb/test  
hdfs dfs -copyFromLocal /media/source/input.data /media/usb/test
hadoop jar share/hadoop/tools/lib/hadoop-streaming-*.jar \
     -input  /media/usb/test/input.data \
     -output /media/usb/test/output.data

但是当我尝试制作上面的文件夹时,我没有遇到这样的文件/文件夹错误..只有当我将文件夹设置为hadoop本地文件时,它才有效:

hdfs dfs -mkdir /test  
hdfs dfs -copyFromLocal /media/source/input.data /test

不幸的是,这会将输入数据文件放在与hadoop安装相同的驱动器上,这几乎已满。有没有办法制作/映射HDFS文件夹,以便它从hadoop驱动器以外的驱动器读/写?

1 个答案:

答案 0 :(得分:0)

你想要做的事是不可能的!它违背了分布式存储和处理的整个想法。

当您执行 q1 = (RadioGroup) getActivity().findViewById(R.id.radioGQ1); 文件从本地传输到HDFS位置(hadoop管理)时。您可以将新驱动器添加为HDFS DataNode,但可能不会强制要求文件移动到它。

如果space是唯一的约束,那么将新驱动器添加为datanode并重新平衡群集。

添加新节点并在其上启动datanode服务后,使用以下方式平衡群集:

copyFromLocal

参考:HDFS Balancer