【问题标题】:Access to HDFS files from all computers of a cluster从集群的所有计算机访问 HDFS 文件
【发布时间】:2013-02-14 03:44:41
【问题描述】:

我的hadoop程序最初是在本地模式下启动的,现在我的目的变成了完全分布式模式下启动。为此,有必要从集群的所有计算机中提供对在 reducer 和 mapper 函数中执行读取的文件的访问权限,因此我在http://answers.mapr.com/questions/4444/syntax-of-option-files-in-hadoop-script 上提出了一个问题(也因为它不知道在哪台计算机上要执行映射器功能(程序逻辑中的映射器将只有一个,并且程序将仅使用一个映射器启动),还需要在所有集群上提供对到达映射器输入的文件的访问功能)。在这方面我有一个问题:是否可以直接使用hdfs-files:即预先将文件从Linux的文件系统复制到HDFS的文件系统中(因此,我假设这些文件在a的所有计算机上都可用如果不是这样,请更正)然后在集群计算机上执行的 reducer 和 mapper 函数中使用 HDFS Java API 读取这些文件?

如果对这个问题的回答是肯定的,请给出一个从 Linux 文件系统复制到 HDFS 文件系统中的示例,并通过 HDFS Java API 将这些文件在 java 中读取到程序中,并在 java 中记录其内容-字符串。

【问题讨论】:

    标签: java linux hadoop mapreduce hdfs


    【解决方案1】:

    将所有输入文件复制到 master 节点(这可以使用scp 完成)。 然后登录到您的 master 节点 (ssh) 并执行以下操作将文件从本地文件系统复制到 hdfs:

    hadoop fs -put $localfilelocation $destination

    现在在您的 hadoop 作业中,您可以使用输入为 hdfs:///$destination。无需使用任何额外的 API 从 HDFS 读取。

    如果您真的想从 HDFS 读取文件并用作输入文件以外的其他信息,请参考this

    【讨论】:

      猜你喜欢
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      • 2015-06-07
      相关资源
      最近更新 更多