天天看點

如何使編寫的java程式在hadoop 2.2中運作的完整過程如何使編寫的java程式在hadoop 2.2中運作的完整過程(在不使用eclipse情況)

如何使編寫的java程式在hadoop 2.2中運作的完整過程

(在不使用eclipse情況)

在不使用eclipse情況使java程式在hadoop 2.2中運作的完整過程。整個過程中其實分為java程式的編譯,生成jar包,運作測試。

這三個步驟運用的指令都比較簡單,主要的還是如何找到hadoop 2.2提供給java程式用來編譯的jar包。具體可以檢視:

HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目錄

下面會通過一個在hadoop中建立一個目錄的JAVA例子來進行示範

具體代碼如下:

package com.wan.demo;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HADemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		mkdir(args[0]);
	}

	public static void mkdir(String dir){
		Configuration configuration=new Configuration();
		FileSystem fs;
		try {
			fs = FileSystem.get(configuration);
			fs.mkdirs(new Path(dir));
			fs.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}
           

把HADemo.java檔案拷貝到linux環境中

配置HADOOP_HOME/bin到環境中,啟動叢集,進入HADemo.java檔案目錄中

注:下面的lib目錄裡面的檔案由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目錄中擷取,下面做的目的是為了縮減指令長度

1.編譯java

# mkdir class

#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java

2.生成jar包

#jar -cvf hademo.jar -C class/ .

added manifest

adding: com/(in = 0) (out= 0)(stored 0%)

adding: com/wan/(in = 0) (out= 0)(stored 0%)

adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)

adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)

3.測試運作

#hadoop jar hademo.jar com.wan.demo.HADemo /test

檢測:

#hadoop fs -ls /

結束!