java—从集群的所有计算机访问hdfs文件

tjrkku2a  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(321)

我的hadoop程序最初是在本地模式下启动的,现在我的目的是在完全分布式模式下启动。为此,有必要提供对在reducer和mapper函数中执行读取的文件的访问,所以我问了一个关于http://answers.mapr.com/questions/4444/syntax-of-option-files-in-hadoop-script (也因为不知道在哪台计算机上执行Map器功能(从程序逻辑上看,Map器只有一个,程序只能用一个Map器启动),还需要在所有集群上提供对Map器函数(mapper function)输入的文件的访问。在这方面,我有一个问题:是否可以直接使用hdfs文件:即预先从linux的文件系统中复制文件到hdfs的文件系统中(因此,我假设这些文件在集群的所有计算机上都可用,如果不是这样,请更正),然后使用hdfs java api来读取这些文件,在集群的计算机上执行的reducer和mapper函数中?
如果对这个问题的回答是肯定的,请给出一个在hdfs文件系统中从linux文件系统复制的例子,并通过hdfs-javaapi将这些java文件读取到程序中,并将其内容记录在java字符串中。

blpfk2vs

blpfk2vs1#

将所有输入文件复制到主节点(可以使用 scp ). 然后登录到主节点( ssh )并执行以下操作将文件从本地文件系统复制到hdfs: hadoop fs -put $localfilelocation $destination 现在在hadoop作业中,可以使用输入 hdfs:///$destination . 不需要使用任何额外的api来读取hdfs。
如果您真的想从hdfs中读取文件并将其用作输入文件以外的附加信息,那么请参阅以下内容。

相关问题