天天看點

運作Hadoop權威指南中的例子:3.5.1:URLCat

1、編寫代碼:

package crt.hadoop.test;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;

public class URLCat {

	static{
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		InputStream in = null;
		try{
			in = new URL(args[0]).openStream();
			IOUtils.copyBytes(in, System.out, 4096, false);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally{
			
		}
	}

}
           

2、在$HADOOP_HOME下建立目錄build/classes/crt/hadoop/test/

3、把URLCat.java複制到$HADOOP_HOME/build/classes/crt/hadoop/test/

4、編譯:

$ javac -classpath $HADOOP_HOME/hadoop-common-0.21.0.jar

    $HADOOP_HOME/build/classes/crt/hadoop/test/URLCat.java

5、建立測試檔案

$ cd  /home/hadoop/workspace

$ mkdir  readdata

$ cd  readdata

$ echo "hello hadoop" > readdatatest.txt

$ hdfs  dfs  put  readdatatest.txt  hdfs://namenode:9001/tmp

6、運作:

$ export  HADOOP_CLASSPATH=build/classes

$ hadoop crt.hadoop.test.URLCat hdfs://hadoop-namenode:9001/tmp/readdatatest.txt

運作結果:

hello hadoop