Hadoop权威指南中的程序有的需要在linux命令行编译,以第三版书中的第63页的3.5.1中的范例3-1为例说一下编译运行过程:
首先是代码如下:
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);
}
}
}
编译命令如下:
javac -cp $HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.0.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar URLCat.java
执行hadoop命令:
hadoop URLCat hdfs://user/hadoop/hadoopdefinitivedata/999999-92827-2016
其中hdfs://user/hadoop/hadoopdefinitivedata/999999-92827-2016是存放在hdfs上的文件,文件名就叫999999-92827-2016。