window本地運行mapreduce程序
mapreduce的運行方式一般有兩種,一是從本地導出一個jar包,在傳到虛擬機上運行,這樣調試起來非常的不方便,如果出現錯誤就需要重新導出jar包。
第二種方式是在本地直接運行,但是在運行前需要進行一些準備。我原來一直用的是方式一,由於需要,必須改成方式二,今天進行了相關的操作。
首先,需要準備windwos編譯下的hadoop包,實際上只需要將linux中的hadoop中的lib目錄替換,(還有的說法,如果還是不行的話,還需要將lib包中也替換)
由於我的Hadoop版本比較老,是2.4.1,bin目錄不是很好找,下邊是我早github中找到的鏈接
https://github.com/srccodes/hadoop-common-2.2.0-bin
直接粘到hadoop中的bin目錄替換,然後就是書寫mapreduce程序,裏邊的代碼和虛擬機中的代碼基本一致,但是,需要在主程序中加入一行代碼
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.252.200:9000");
這兩句最好緊挨著,否則會報錯。這裏邊的設置的自己虛擬機上的master節點的ip地址。然後直接運行程序,就可以成功了
網上有人說要配置HADOOP_HOME的系統變量,但是本人在運行程序時嘗試修改,但是沒有成功,可是但運行mapreduce時不會報錯,所以這個步驟因該沒有用
在運行時可能會出 pression denied錯誤,這是因為你的hdfs中的文件的權限太高,你可以直接將其設置成777,使任何用戶都具有訪問該文件的權限。
親自嘗試,可以成功
window本地運行mapreduce程序