将数据推送到 HDFS 的实用程序
Utility to push data into HDFS
我需要为基于 unix/Windows 的系统构建一个通用实用程序,以将数据推送到 hadoop 系统。用户可以从任何平台 运行 该实用程序,并且应该能够将数据推送到 HDFS。
WebHDFS 可以是其中一种选择,但很想知道是否还有其他可用的选择。
有什么建议吗?
我通常会创建一个 maven 项目并将此依赖项添加到我的 pom.xml 文件中:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.1</version>
</dependency>
然后将数据推送到 HDFS 使用 hadoop 非常容易 java api,这是一个简单的示例,只是为了看看它是如何工作的:
String namenodeLocation = "hdfs://[your-namenode-ip-address]:[hadoop:listening-port]/";
Configuration configuration = new Configuration();
FileSystem hdfs = FileSystem.get( new URI( namenodeLocation ), configuration );
Path file = new Path(namenodeLocation+"/myWonderful.data");
FSDataOutputStream outStream = hdfs.create(file);
byte[] coolDataToPushToHDFS = new byte[1500];
outStream.write(coolDataToPushToHDFS);
outStream.close();
hdfs.close();
这是一个非常简单的程序。我认为您必须执行的步骤是:
- 让用户选择input/data推送
- 使用 hadoop java api 将 file/data 发送到您的集群
- 给用户一些反馈。
您还可以将信息附加到文件中,而不仅仅是创建新文件。
我需要为基于 unix/Windows 的系统构建一个通用实用程序,以将数据推送到 hadoop 系统。用户可以从任何平台 运行 该实用程序,并且应该能够将数据推送到 HDFS。
WebHDFS 可以是其中一种选择,但很想知道是否还有其他可用的选择。
有什么建议吗?
我通常会创建一个 maven 项目并将此依赖项添加到我的 pom.xml 文件中:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.1</version>
</dependency>
然后将数据推送到 HDFS 使用 hadoop 非常容易 java api,这是一个简单的示例,只是为了看看它是如何工作的:
String namenodeLocation = "hdfs://[your-namenode-ip-address]:[hadoop:listening-port]/";
Configuration configuration = new Configuration();
FileSystem hdfs = FileSystem.get( new URI( namenodeLocation ), configuration );
Path file = new Path(namenodeLocation+"/myWonderful.data");
FSDataOutputStream outStream = hdfs.create(file);
byte[] coolDataToPushToHDFS = new byte[1500];
outStream.write(coolDataToPushToHDFS);
outStream.close();
hdfs.close();
这是一个非常简单的程序。我认为您必须执行的步骤是:
- 让用户选择input/data推送
- 使用 hadoop java api 将 file/data 发送到您的集群
- 给用户一些反馈。
您还可以将信息附加到文件中,而不仅仅是创建新文件。