java - 将JSON文件从本地复制到HDFS

标签 java hadoop mapreduce hdfs

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class HdfsWriter extends Configured implements Tool {
 public int run(String[] args) throws Exception {
  //String localInputPath = args[0];
  Path outputPath = new Path(args[0]); // ARGUMENT FOR OUTPUT_LOCATION
  Configuration conf = getConf();
  FileSystem fs = FileSystem.get(conf);
  OutputStream os = fs.create(outputPath);
  InputStream is = new BufferedInputStream(new FileInputStream("/home/acadgild/acadgild.txt")); //Data set is getting copied into input stream through buffer mechanism.
  IOUtils.copyBytes(is, os, conf); // Copying the dataset from input stream to output stream
  return 0;
 }

 public static void main(String[] args) throws Exception {
  int returnCode = ToolRunner.run(new HdfsWriter(), args);
  System.exit(returnCode);
 }
}

需要将数据从本地移动到HDFS。

我从另一个博客获得的上述代码不起作用。谁可以帮我这个事。

我还需要使用MR解析Json并按DateTime分组并移至HDFS

最佳答案

  • Map Reduce是一个分布式作业处理框架
  • 每个本地映射器的
  • 表示运行该映射器的节点上的本地文件系统。
  • 您想要的是从给定节点上的本地读取,将其放入HDFS,然后通过MapReduce处理它。

  • 有多种工具可用于从一个节点的本地复制到HDFS
  • hdfs放置localPath HdfsPath(Shell脚本)
  • 水槽
  • 关于java - 将JSON文件从本地复制到HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46979546/

    相关文章:

    java - Eclipse MapReduce 错误 : UnModifiableMap

    hadoop - 访问Hadoop Job History Server/jobhistory页面时出错

    java - 如何使用使用给定模式最后一次出现的正则表达式来拆分Java中的字符串列表?

    java - 原子到底是什么?

    apache - 如何提高Hbase中的扫描速度

    hadoop - Hadoop:在同一数据或ChainMap上运行两个M/R作业,但存在同步障碍

    javascript - ES6 Map Reduce 数组通过 Redux 状态的映射和填充变平

    java - 如何在 Java 中将锯齿状数组解析为单个变量?

    java - 扫描端口并列出每个端口上运行的服务

    java - 在 2 个或多个 JOIN 上选择 DISTINCT