1. 程式人生 > >MapReduce 程式設計 系列四 MapReduce例子程式執行

MapReduce 程式設計 系列四 MapReduce例子程式執行

MapReduce程式編譯是可以在普通的Java環境下進行,現在來到真實的環境上執行。

首先,將日誌檔案放到HDFS目錄下

$ hdfs dfs -put *.csv /user/chenshu/share/logs/
14/09/27 17:03:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicab\
le
$hdfs dfs -ls /user/chenshu/share/logs
14/09/27 17:03:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicab\
le
Found 10 items
-rw-r--r--   3 chenshu chenshu     539026 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-05-10.0.csv
-rw-r--r--   3 chenshu chenshu      33212 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-05-12.0.csv
-rw-r--r--   3 chenshu chenshu    1117191 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-05-13.0.csv
-rw-r--r--   3 chenshu chenshu    2642634 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-05-18.0.csv
-rw-r--r--   3 chenshu chenshu    4676438 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-06-01.1.csv
-rw-r--r--   3 chenshu chenshu     633015 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-06-27.0.csv
-rw-r--r--   3 chenshu chenshu    4749439 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-07-01.1.csv
-rw-r--r--   3 chenshu chenshu    1551312 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-08-01.2.csv
-rw-r--r--   3 chenshu chenshu    2957316 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-08-11.0.csv
-rw-r--r--   3 chenshu chenshu    4032863 2014-09-27 17:03 /user/chenshu/share/logs/sign_2014-09-01.1.csv
同時還要確保output目錄不存在,該目錄會被MapReduce程式建立,用於存放輸出結果:
$ hdfs dfs -rm -r /user/chenshu/share/output

然後執行程式,觀察輸出結果

[[email protected] example1]$ hadoop jar target/mr1_example1-1.0-SNAPSHOT.jar org.freebird.LogJob /user/chenshu/share/logs /user/chenshu/share\
/output
14/09/27 17:57:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicab\
le
14/09/27 17:57:42 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
14/09/27 17:57:42 INFO input.FileInputFormat: Total input paths to process : 10
14/09/27 17:57:46 INFO mapred.JobClient: Running job: job_201404261903_548924
14/09/27 17:57:47 INFO mapred.JobClient:  map 0% reduce 0%
14/09/27 17:58:11 INFO mapred.JobClient:  map 40% reduce 0%
14/09/27 17:58:12 INFO mapred.JobClient:  map 80% reduce 0%
14/09/27 17:58:20 INFO mapred.JobClient:  map 100% reduce 0%
14/09/27 17:58:25 INFO mapred.JobClient:  map 100% reduce 8%
...
14/09/27 17:59:12 INFO mapred.JobClient:     Reduce input records=163643
14/09/27 17:59:12 INFO mapred.JobClient:     Reduce input groups=162631
14/09/27 17:59:12 INFO mapred.JobClient:     Combine output records=163643
14/09/27 17:59:12 INFO mapred.JobClient:     Physical memory (bytes) snapshot=6787436544
14/09/27 17:59:12 INFO mapred.JobClient:     Reduce output records=162631
14/09/27 17:59:12 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=43714277376
14/09/27 17:59:12 INFO mapred.JobClient:     Map output records=354282

現在將output目錄都複製到本地磁碟,檢視結果:

hdfs dfs -get /user/chenshu/share/output/
然後檢視本地output目錄:
[[email protected] output]$ ll -alh
total 4.3M
drwxrwxr-x 3 chenshu chenshu 4.0K Sep 27 18:02 .
drwxrwxr-x 6 chenshu chenshu 4.0K Sep 27 18:03 ..
drwxrwxr-x 3 chenshu chenshu 4.0K Sep 27 18:02 _logs
-rw-r--r-- 1 chenshu chenshu 286K Sep 27 18:02 part-r-00000
-rw-r--r-- 1 chenshu chenshu 290K Sep 27 18:02 part-r-00001
-rw-r--r-- 1 chenshu chenshu 284K Sep 27 18:02 part-r-00002
-rw-r--r-- 1 chenshu chenshu 284K Sep 27 18:02 part-r-00003
-rw-r--r-- 1 chenshu chenshu 289K Sep 27 18:02 part-r-00004
-rw-r--r-- 1 chenshu chenshu 284K Sep 27 18:02 part-r-00005
-rw-r--r-- 1 chenshu chenshu 290K Sep 27 18:02 part-r-00006
-rw-r--r-- 1 chenshu chenshu 284K Sep 27 18:02 part-r-00007
-rw-r--r-- 1 chenshu chenshu 285K Sep 27 18:02 part-r-00008
-rw-r--r-- 1 chenshu chenshu 286K Sep 27 18:02 part-r-00009
-rw-r--r-- 1 chenshu chenshu 290K Sep 27 18:02 part-r-00010
-rw-r--r-- 1 chenshu chenshu 288K Sep 27 18:02 part-r-00011
-rw-r--r-- 1 chenshu chenshu 287K Sep 27 18:02 part-r-00012
-rw-r--r-- 1 chenshu chenshu 281K Sep 27 18:02 part-r-00013
-rw-r--r-- 1 chenshu chenshu 286K Sep 27 18:02 part-r-00014
-rw-r--r-- 1 chenshu chenshu    0 Sep 27 18:02 _SUCCESS

開啟其中一個part-r檔案,可以看到結果如下:
536dbba04700aab274729ce9        2
536dbba14700aab274729cf9        2
536dbba14700aab274729cff        2
536dbba14700aab274729d02        2
536dbba14700aab274729d11        2
536dbba14700aab274729d20        2
536dbba14700aab274729d89        2
536dbba14700aab274729d8f        2
536dbba14700aab274729d98        3
536dbba14700aab274729d9e        3
536dbba14700aab274729de9        2
536dbba14700aab274729def        2
536dbba14700aab274729df8        2
536dbba14700aab274729dfe        2
536dbba14700aab274729e8e        2
536dbba14700aab274729ed9        3
536dbba14700aab274729eee        2

程式執行成功了。

所有程式碼在gitlab.com上。

[email protected]:hadoop/share.git

相關推薦

MapReduce 程式設計 系列 MapReduce例子程式執行

MapReduce程式編譯是可以在普通的Java環境下進行,現在來到真實的環境上執行。首先,將日誌檔案放到HDFS目錄下$ hdfs dfs -put *.csv /user/chenshu/share/logs/ 14/09/27 17:03:22 WARN util.Na

MapReduce 程式設計 系列十二 Reduce階段內部細節和調節引數

Reduce計算分為若干階段1. copy(或者叫shuffle)階段和merge階段並行之前Map產生的結果被存放在本地磁碟上,這時需要從reduce節點將資料從map節點複製過來。放得下進記憶體,比較大的則寫到本地磁碟。同時,有兩個執行緒對已經獲得的記憶體中和磁碟上的資料

ROS系列:建立ROS程式

轉自:http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage 目錄 一個catkin程式包由什麼組成? 在catkin工作空間中的程式包 建立一個catkin程式包 程式包依賴關係 一級依賴 間接依賴 自

持久化API(JPA)系列()管理器EntityManager--執行資料庫更新

        EntityManager是應用訪問持久化上下文中的實體的介面,用來對實體Bean進行操作。我們可以使用它來建立、刪除、修改持久化的實體,以體現到資料庫中;也可以從資料庫中查詢得到實

《OpenGL程式設計精髓》光碟示例程式執行環境配置

=============================================================== 【問題】 #include <gl\glaux.h> 這一行缺少檔案,導致編譯不過 =======================

MapReduce 程式執行演示(示例PI程式 wordcount程式

你說的9000埠應該指的是fs.default.name或fs.defaultFS(新版本)這一配置屬性吧,這個屬性是描述叢集中NameNode結點的URI(包括協議、主機名稱、埠號) 50070其實是在hdfs-site.xml裡面的配置引數dfs.namenode.http-address,

java程式碼的MapReduce打包成jar 報錯: JAVA程式執行時出現:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsEx

以前的學習筆記,整理一下: java程式碼的MapReduce打包成jar 報錯: JAVA程式執行時出現:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at PrintWhat.main(Pri

大資料技術學習筆記之Hadoop框架基礎2-MapReduce程式設計執行流程

一、回顧     -》hadoop的功能?         -》海量資料儲存和海量計算問題         -》分散式檔案儲存框架hdfs和

MapReduce程式設計案例系列篇(1-9)

由於本人最開始接觸大資料工作,主要以寫MapReduce程式為主,雖然現在有流行的言論稱MapReduce這種執行很慢的分散式計算程式設計框架將要被各種記憶體計算框架取代。但是MapRedcue也會吸收很多流行的記憶體計算的各種優點,我相信,將來,MapReduce絕對不會淪

gdb系列 在GDB裡執行程式

在你開始在GDB裡執行程式前,你需要在編譯的時候產生除錯資訊。   你可以在你選定的環境裡帶引數(如果有的話)的啟動GDB。如果你是在本地除錯,你可以重定向輸入輸出,除錯一個已執行 的程序,或者結束一個程序。 4.1 為除錯而編譯   為了有效的除錯程式,你需要在編譯的時候

MapReduce程式設計 一步步地教你開啟 第一個程式wordcount

例項描述   計算出檔案中每個單詞的頻數,要求輸出結果按照單詞的字母順序進行排序,按照key-value格式輸出結果。 比如輸入檔案為: hello world hello hadoop hello mapreduce

MapTask並行度決定機制、FileInputFormat切片機制、map並行度的經驗之談、ReduceTask並行度的決定、MAPREDUCE程式執行演示(來自學筆記)

maptask的並行度決定map階段的任務處理併發度,進而影響到整個job的處理速度那麼,mapTask並行例項是否越多越好呢?其並行度又是如何決定呢?1.3.1mapTask並行度的決定機制一個job的map階段並行度由客戶端在提交job時決定而客戶端對map階段並行度的規

【Apache Hadoop】MapReuce 程式設計總結-多MapReduce執行

學習hadoop,必不可少的就是寫MapReduce程式,當然,對於簡單的分析程式,我們只需一個MapReduce就能搞定,這裡就不提單MapReuce的情況了,網上例子很多,大家可以百度Google一下。對於比較複雜的分析程式,我們可能需要多個Job或者多個Map或者Re

hadoop系列三:mapreduce的使用

count 明顯 blank api park size 當前 java mapreduce 轉載請在頁首明顯處註明作者與出處 一:說明 此為大數據系列的一些博文,有空的話會陸續更新,包含大數據的一些內容,如hadoop,spark,storm,機器學習等。

【大數據系列MapReduce示例好友推薦

trac [0 ont protect run task main orm pat package org.slp; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text;

詳解C# 網路程式設計系列:實現類似QQ的即時通訊程式

https://www.jb51.net/article/101289.htm   引言: 前面專題中介紹了UDP、TCP和P2P程式設計,並且通過一些小的示例來讓大家更好的理解它們的工作原理以及怎樣.Net類庫去實現它們的。為了讓大家更好的理解我們平常中常見的軟體QQ的工作原理,所以在本專題

Java併發程式設計(4):守護執行緒與執行緒阻塞的種情況

守護執行緒Java中有兩類執行緒:User Thread(使用者執行緒)、Daemon Thread(守護執行緒) 使用者執行緒即執行在前臺的執行緒,而守護執行緒是執行在後臺的執行緒。 守護執行緒作用是為其他前臺執行緒的執行提供便利服務,而且僅在普通、非守護執行緒仍然執行時才需要,比如垃圾回收執行緒就是一個

MapReduce程式設計

MapReduce Coding Criteria 單個MapReduce 單元運算 以WordCount為例 分別編寫Map和Reduce函式 編寫main方法,設定環境變數,進行註冊:

程式學習筆記:小程式百度地圖例子執行

  微信的小程式結構升級很快,百度的小程式demo不能直接運行了。 首先下載小程式——百度地圖的例子。https://github.com/baidumapapi/wxapp-jsapi 1、設定微信公眾平臺——小程式——設定——開發設定。 修改伺服器域名,reques

C# 多執行緒學習系列之取消、超時子執行緒操作

1、簡介 雖然ThreadPool、Thread能開啟子執行緒將一些任務交給子執行緒去承擔,但是很多時候,因為某種原因,比如子執行緒發生異常、或者子執行緒的業務邏輯不符合我們的預期,那麼這個時候我們必須關閉它,而不是讓它繼續執行,消耗資源.讓CPU不在把時間和資源花在沒有意義的程式碼上.