使用Hadoop处理来自外部驱动器的大数据,而无需将其移动到HDFS



我是Hadoop的初学者,我有在250 GB linux中运行的单节点Hadoop。

我有一个外部硬盘驱动器,其中包含超过1 TB的数据。

我的问题是如何使这些数据对Hadoop可见,而无需将它们复制到HDFS中。

我尝试将装载的硬盘驱动器放入datanode.dir,但我看不到文件。

如果您与

连接到外部HD的Hadoop客户端在同一台计算机上,则可以使用本地文件系统访问数据。

例如,您可以运行:

hadoop fs -ls file://path/to/external/dir 

上面的命令应将内容列出到指定的本地绝对路径。

上面

给出的答案将显示HDFS中已经存在的内容。

"hadoop fs -ls"命令用于查看 HDFS 中存在的内容。

由于HDFS是与您个人机器的文件系统不同的文件系统,因此您无法使用本地机器上看到当前存在的数据 "hadoop fs -ls file://path/to/external/directory" .

但是您可以在Hadoop程序中访问外部硬盘驱动器的数据 在mapreduce作业中,可以从本地机器访问数据的简单代码片段可以在以下问题中找到:- 直接在mapreduce作业中从本地机器读取数据

嗯,

这是不可能的。Hadoop强调"数据本地化",这是使Hadoop不同于经典网格计算的关键设计因素之一。这也是HDFS和MapReduce一起部署在节点中的原因。

数据本地化在许多方面提高了计算速度。其他几个设计和性能原因是不可能的。我建议你研究一下HDFS的概念。

希望这是有帮助的!