hadoop - 将HDFS文件映射到外部驱动器时出错

标签 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驱动器以外的其他驱动器进行读写操作?

最佳答案

您试图做的事是不可能的!它违背了分布式存储和处理的整个思想。

当您执行 copyFromLocal时,文件从您的本地文件转到HDFS位置(hadoop管理)。您可以将新驱动器添加为HDFS DataNode,但可能不要求将文件移动到该驱动器。

如果只有空间限制,则将新驱动器添加为数据节点并重新平衡群集。

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

hdfs balancer
      [-threshold <threshold>]
      [-policy <policy>]
      [-exclude [-f <hosts-file> | <comma-separated list of hosts>]]
      [-include [-f <hosts-file> | <comma-separated list of hosts>]]
      [-idleiterations <idleiterations>]

引用:HDFS Balancer

关于hadoop - 将HDFS文件映射到外部驱动器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41627478/

相关文章:

java - 使用 Maven 配置在 Eclipse 中为 Hadoop 作业设置 Java 堆空间

apache-spark - spark.executor.extraJavaOptions 在 spark-submit 中被忽略

mysql - Apache spark如何计算分区以及分区在executor中是如何处理的

Hadoop 2.6.0 官方实例 : Yarn (MR2) much slower than Map Reduce (MR1) in single node setup

hadoop - 将文件从本地文件复制到hdfs时出现错误消息

hive - Hive 查询结果中的 NULL 列名称

streaming - 如何在 hadoop 流中使用将文件名作为参数的二进制可执行文件?

java - Hadoop Yarn 写入本地文件系统

hadoop - hadoop的sas/access接口(interface),有人用过吗?

java - Yarn 分布式缓存,无映射器/ reducer