如何编译和运行Hadoop权威指南书的代码?

时间:2017-01-30 17:54:10

标签: java hadoop hdfs

Hadoop:The Definitive Guide 一书中没有关于如何编译Hadoop代码的指南。我没有使用任何Java IDE。我需要安装任何Java IDE吗?我创建了代码的JAR文件,并尝试使用Hadoop命令运行它,但它不能用于 Ubuntu 。该书说使用本书网站上的说明安装和编译示例,但我无法在O'Reilly的网站上找到它。

如果有人可以告诉我如何编译这样的简单代码,那对我来说将是一个很大的帮助。

import org.apache.hadoop.fs;
import java.io.IOException;
import java.net.URL;
import org.apache.hadoop.io.IOUtils;

public class URLCat{

    static{
        URL.setURLStreamHandlerFactory(new FSUrlStreamHandlerFactory());
    }


    public static void main(String[] args) throws Exception{
        InputStream in =null;
        try{
            in=new URL(args[0]).openStream();
            IOUtils.copyBytes(in,System.out,4096,false);

        }finally{
            IOUtils.closeStream(in);    
        }


    }
}

2 个答案:

答案 0 :(得分:0)

您可以在以下链接中找到示例代码: Link to Github

要编译Hadoop代码示例,您需要:

  1. 需要安装Maven和Java。

  2. 然后导航到您在终端中具有所有章节文件夹的根文件夹,然后键入:

    mvn package -DskipTests

  3. 此命令编译所有代码。

答案 1 :(得分:0)

这些是我为运行 Hadoop The Definetive Guide 4 Ed (https://github.com/tomwhite/hadoop-book) 一书的示例代码所遵循的步骤。

  1. 先按照这个安装https://stackoverflow.com/a/51617361/15576728,这也是在主代码的Read.md中定义的,所以让你先完成这个。

  2. 从 GIT 下载代码

  3. 解压然后cd到文件夹/home/hadoop-book-master/

  4. 运行 mvn package -DskipTests,这将创建一些 .jar 文件,这些文件必须是本书章节 hadoop-examples.jar 中建议的文件

预订第 49 页。

% 导出 HADOOP_CLASSPATH=hadoop-examples.jar

% hadoop MaxTemperature 输入/ncdc/sample.txt 输出

正如您在此处 (https://stackoverflow.com/a/31918625/15576728) 看到的,您执行 hadoop jar 的方式是:

"hadoop jar jarFileName mainClassname AnyCommandLineArguements"

其中“jarFileName”将是“hadoop-examples.jar”,因为这将使示例编译代码运行,mainClassname 为 MaxTemperature,最后“AnyCommandLineArguements”是来自 HDFS 的输入路径,输出将在 HDFS 中创建。< /p>

  1. 这是我运行它的方式:

hadoop jar $HADOOP_CLASSPATH MaxTemperature /data/sample.txt /outputTest

重要的是要记住您要处理的任何文件都必须在 HDFS 中才能使您的代码正常工作。

hdfs dfs -mkdir /data

hadoop fs -copyFromLocal /home/hadoop-book-master/input/ncdc/sample.txt /data