如何将Word和PDF文档移动到Hadoop HDFS?

时间:2014-04-16 09:38:25

标签: hadoop mapreduce hdfs

我想将一些文件从本地系统(不在Hadoop集群中的系统)复制/上传到Hadoop HDFS。本地系统也可以是Windows系统。

我尝试使用Flume假脱机目录。它适用于文本文件。对于其他文档,mime类型已损坏。

请告诉我将文件加载到HDFS的不同方法。

5 个答案:

答案 0 :(得分:0)

 hadoop fs -copyFromLocal <localsrc> URI

检查Hadoop文档:copyFromLocal

请记住,没有创建Apache Flume来复制some个文件。

答案 1 :(得分:0)

您也可以使用hadoop fs -put <localsrcpath> <hdfspath>

这是copyFromLocal

的替代方案之一

答案 2 :(得分:0)

首先,您需要使用filezilla或其他工具将文档从Windows计算机加载到Linux计算机。

然后你需要使用:

hadoop fs -put localsrcpath hdfspath

以下命令也可以。

hadoop fs -copyFromLocal localsrcpath hdfspath

答案 3 :(得分:0)

Java代码可以轻松完成。你不需要任何工具。检查下面的代码片段:

Configuration conf = new Configuration();
try {
    conf.set("fs.defaultFS",<<namenode>>); //something like hdfs://server:9000 or copy from core-site.xml
    FileSystem fileSystem= FileSystem.get(conf);
    System.out.println("Uploading please wait...");
    fileSystem.copyFromLocalFile(false, new Path(args[0]), new Path(args[1].trim()));//args[0]=C://file or dir args[1]=/imported

准备好jar并在任何操作系统上运行。请记住,你没有必要 让Hadoop在机器上运行,你将在那里运行它 码。如果您需要任何帮助,请添加评论。

不要忘记在运行此代码的位置添加dnsresolver行。打开/drivers/etc/hosts(适用于Windows)

hadoopnamenode ip-address
slavenode ip-address

答案 4 :(得分:0)

在hadoop 2.0(YARN)中,您可以执行以下操作将本地文件传输到HDFS:

hdfs dfs -put "localsrcpath" "hdfspath"

其中hdfs是位于bin目录中的命令。