Hadoop Mapreduce示例,用于从hdfs提供输入并将输出写入excel文件

时间:2014-03-16 19:22:31

标签: java hadoop mapreduce hdfs

我刚接触Hadoop编程,我在Haddop找到了一些关于mapreduce的有用链接,我可以处理它。这对我和初学者都非常有用。

所有示例都显示为提供来自eclipse的输入,输出可以在eclipse的输出文件夹中看到。

在这里我想知道如何从HDFS提供输入(我的意思是代替从eclipse中提供)。 并将输出写入某个Excel文件。

请指教。

1 个答案:

答案 0 :(得分:1)

您只需使用Java和Excel执行必要的步骤,即可使用Hadoop正确操作您的信息。

  • 将文件上传或添加到HDFS

这里有一个关于如何输入的典型示例:

    public void addFile(String source, String dest) throws IOException {     

    // Conf object will read the HDFS configuration parameters
    Configuration conf = new Configuration();
    conf.addResource(new Path("/home/hadoop/hadoop/conf/core-site.xml"));
    conf.addResource(new Path("/home/hadoop/hadoop/conf/hdfs-site.xml"));
    conf.addResource(new Path("/home/hadoop/hadoop/conf/mapred-site.xml"));

    FileSystem fileSystem = FileSystem.get(conf);

    // Get the filename out of the file path
    String filename = source.substring(source.lastIndexOf('/') + 1, source.length());

    // Create the destination path including the filename.
    if (dest.charAt(dest.length() - 1) != '/') {
    dest = dest + "/" + filename;
    } else {
    dest = dest + filename;
    }

    // Check if the file already exists
    Path path = new Path(dest);
    if (fileSystem.exists(path)) {
    System.out.println("File " + dest + " already exists");
    return;
    }

    // Create a new file and write data to it.
    FSDataOutputStream out = fileSystem.create(path);
    InputStream in = new BufferedInputStream(new FileInputStream(
    new File(source)));

    byte[] b = new byte[1024];
    int numBytes = 0;
    while ((numBytes = in.read(b)) > 0) {
    out.write(b, 0, numBytes);
    }

    // Close all the file descripters
    in.close();
    out.close();
    fileSystem.close();
}

来源:A HDFSClient for Hadoop - Linux Junkies

然后按照如何可视化数据输出的说明进行操作:

其他可能有用的信息:

Hadoop通过轻松集成为您提供所需的所有必要费用,以优化您的数据分析和操作。