當前位置:編程學習大全網 - 圖片素材 - 如何快速地編寫和運行壹個屬於自己的MapReduce例子程序

如何快速地編寫和運行壹個屬於自己的MapReduce例子程序

大數據的時代, 到處張嘴閉嘴都是Hadoop, MapReduce, 不跟上時代怎麽行? 可是對壹個hadoop的新手, 寫壹個屬於自己的MapReduce程序還是小有點難度的, 需要建立壹個maven項目, 還要搞清楚各種庫的依賴, 再加上編譯運行, 基本上頭大兩圈了吧。 這也使得很多只是想簡單了解壹下MapReduce的人望而卻步。

本文會教妳如何用最快最簡單的方法編寫和運行壹個屬於自己的MapReduce程序, let's go!

首先有兩個前提:

1. 有壹個已經可以運行的hadoop 集群(也可以是偽分布系統), 上面的hdfs和mapreduce工作正常 (這個真的是最基本的了, 不再累述, 不會的請參考 mon.jar:/usr/lib/gphd/hbase/lib/hbase-protocol.jar:/usr/lib/gphd/hbase/lib/hbase-client.jar:/usr/lib/gphd/hbase/lib/hbase-thrift.jar:/usr/lib/gphd/hbase/lib/htrace-core-2.01.jar:/etc/gphd/hbase/conf::/usr/lib/gphd/hive/lib/hive-service.jar:/usr/lib/gphd/hive/lib/libthrift-0.9.0.jar:/usr/lib/gphd/hive/lib/hive-metastore.jar:/usr/lib/gphd/hive/lib/libfb303-0.9.0.jar:/usr/lib/gphd/hive/lib/hive-common.jar:/usr/lib/gphd/hive/lib/hive-exec.jar:/usr/lib/gphd/hive/lib/postgresql-jdbc.jar:/etc/gphd/hive/conf::/usr/lib/gphd/sm-plugins/*:

3. 編譯

運行命令

javac -classpath xxx ./myword.java

xxx部分就是上壹步裏面取到的class path

運行完此命令後, 當前目錄下會生成壹些.class 文件, 例如:

myword.class myword$IntSumReducer.class myword$TokenizerMapper.class

4. 將class文件打包成.jar文件

運行命令

jar -cvf myword.jar ./*.class

至此, 目標jar 文件成功生成

5. 準備壹些文本文件, 上傳到hdfs, 以做word count的input

例子:

隨意創建壹些文本文件, 保存到mapred_test 文件夾

運行命令

hadoop fs -put ./mapred_test/

確保此文件夾成功上傳到hdfs 當前用戶根目錄下

6. 運行我們的程序

運行命令

hadoop jar ./myword.jar myword mapred_test output

順利的話, 此命令會正常進行, 壹個MapReduce job 會開始工作, 輸出的結果會保存在 hdfs 當前用戶根目錄下的output 文件夾裏面。

至此大功告成!

如果還需要更多的功能, 我們可以修改前面的源文件以達到壹個真正有用的MapReduce job。

但是原理大同小異, 練手的話, 基本夠了。

壹個拋磚引玉的簡單例子, 歡迎板磚。

轉載

  • 上一篇:IPsecvpn建立不起來4500端口
  • 下一篇:大角牛的女朋友是誰
  • copyright 2024編程學習大全網