我想将一些文件从本地系统(不在Hadoop集群中的系统)复制/上传到Hadoop HDFS。本地系统也可以是Windows系统。
我尝试使用Flume假脱机目录。它适用于文本文件。对于其他文档,mime类型已损坏。
请告诉我将文件加载到HDFS的不同方法。
答案 0 :(得分:0)
答案 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目录中的命令。