如何一个Java客户端upload/download一个文件to/from远程HDFS服务器?
How a Java client upload/download a file to/from remote HDFS server?
我 运行 在我的 Fedora 虚拟机(VMware 工作站)中使用 Hadoop-2.7.1 HDFS 的伪模式。我可以使用 hadoop hdfs shell 命令 upload/download Fedora 中的本地文件。
但是如何从我的 windows 主机上将一个简单的 java class 写入 upload/download 文件?
我找到了一些示例代码,例如:
FileSystem fs = FileSystem.get(new Configure());
Path local_file = new Path("testfile.txt");
Path remote_path = new Path("/");
fs.copyFromLocal(local_file, remote_path);
但是我在 Maven 存储库中找到了 hadoop-core-1.2.jar,但是对于 2.7.1 来说它的版本太旧了。
不知道用什么jar包导入HDFS java class.
使用以下 Maven 配置尝试此示例 using-filesystem-api-to-read-and-write-data-to-hdfs 代码:
<properties>
<hadoop.version>2.7.0</hadoop.version>
<hadoop.core>1.2.1</hadoop.core>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>${hadoop.core}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
我 运行 在我的 Fedora 虚拟机(VMware 工作站)中使用 Hadoop-2.7.1 HDFS 的伪模式。我可以使用 hadoop hdfs shell 命令 upload/download Fedora 中的本地文件。
但是如何从我的 windows 主机上将一个简单的 java class 写入 upload/download 文件?
我找到了一些示例代码,例如:
FileSystem fs = FileSystem.get(new Configure());
Path local_file = new Path("testfile.txt");
Path remote_path = new Path("/");
fs.copyFromLocal(local_file, remote_path);
但是我在 Maven 存储库中找到了 hadoop-core-1.2.jar,但是对于 2.7.1 来说它的版本太旧了。 不知道用什么jar包导入HDFS java class.
使用以下 Maven 配置尝试此示例 using-filesystem-api-to-read-and-write-data-to-hdfs 代码:
<properties>
<hadoop.version>2.7.0</hadoop.version>
<hadoop.core>1.2.1</hadoop.core>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>${hadoop.core}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>