Hadoop 的實常式序有哪些推薦?
01-04
最近在學Hadoop,不過網上的程序大多是諸如wordcount之類的。能否推薦幾個更有實際操作的,以及相對wordcount更複雜的採用更大數據量的程序。謝謝 !
必須推薦https://github.com/intel-hadoop/HiBench 啊,大數據benchmark,涵蓋wordcount,sort,SQL,machine learning,data mining各種你想到的hadoop應用實例啊。
關鍵是簡單又強大啊,一鍵運行有木有,自動數據生成有木有,數據量可配置有木有,簡直就是居家旅行,開發測試,玩轉大數據必備神器啊。WordCount也可以運行在很大量的數據上,比如你有整個互聯網的網頁數據。 邏輯相對更複雜的實例一般都與業務相關,公司是不會公開細節的。
GitHub - chubbyjiang/MapReduce: MapReduce Demo自己在學習過程中收集整理的一些MapReduce場景Demo,希望有所幫助
提供一些基礎資料:
本人有關hadoop學習的技術博客,歡迎拍磚http://blog.csdn.net/liushahe2012本人github上的小程序用例,求starHadoop案例之年份溫度排序:https://github.com/liushahe2012/hadoop_yearTemperatureHadoop案例之單表關聯輸出祖孫關係:liushahe2012/hadoop_SingleTableJoinhadoop_wordCount:liushahe2012/hadoop_wordCountHadoop案例之倒排索引:liushahe2012/Hadoop_InvertedIndexHadoop案例之二度人脈與好友推薦:liushahe2012/Hadoop_Deg2friend
Hadoop案例之基於物品的協同過濾演算法ItemCF:liushahe2012/Hadoop_ItemCFHadoop案例之自定義分片策略解決大量小文件問題:liushahe2012/Hadoop_MuiltiSmallFileCombineApplicationMaster的簡化版,演示了YARN服務庫和事件庫的使用方法:liushahe2012/Hadoop_SimpleApplicationMasterHadoop源碼解析之RPC協議:liushahe2012/Hadoop_RPCDemo理解MR很重要,這裡先不說內部原理,你目前最關心的應該是處理過程的問題MR是一行一行數據處理的。M,如果你讀取的是HDFS上的文件,M每次處理就會獲取一行數據,在map()方法裡面處理,至於如何處理看你喜好,基本都是字元串處理。R,也是一行一行處理的,M的每一行來自於文件上的讀取數據,R的每一行來自於M的輸出。所以在M的map()處理完後想丟給R的就要context.write(key, value);給R處理
注意:write時的key、value。所有相同的key會被組合成一個數據給R處理
假設M輸出write時,有key=a,value=1key=a,value=2key=a,value=2key=b,value=3key=b,value=4R會處理兩次,分別是key=a,value=1,2,2key=a,value=3,4在R裡面,通過迭代獲取value裡面的值,至於數據如何處理個人喜好。
同樣R也有write輸出,輸出內容會放到HDFS指定位置HDFS -&> M -&> R -&> HDFS當然M的來源不止一個,例如可以來源於HBase等理解了wordcount之後,可以試圖將一些經典演算法問題抽象為mapreduce模型。會對培養mapreduce思維有幫助,呵呵。
最代碼網站上有分享的hadoop代碼,有興趣的可以看看:hadoop入門教程及其實例代碼搜索"hadoop"的分享列表
比如分析pv、uv,比如分析熱門商品等等。可以看看hive,了解facebook是如何實現以及使用的,淘寶的可以看http://velocity.oreilly.com.cn/2010/index.php?func=sessionname=%E6%B7%98%E5%AE%9D%E4%BA%91%E6%A2%AF%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A1%E7%AE%97%E5%B9%B3%E5%8F%B0%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84
有個數據挖掘的開源框架叫mahout,裡面很多演算法(如協同過濾、聚類)都有mapreduce實現的版本。可以看看mapreduce在商業領域是如何實用的。
你需要海量的數據,如果沒有可以自己造數據。複雜的程序一般都是因為業務複雜,和公司有關的程序當然不方便公開,建議你可以看看Hive是如何把HSQL轉化為MapReduce程序的。
其實沒有什麼應用,只是規模大一點,邏輯上最多是在模仿 SQL。
對Hadoop感興趣但還沒深究過,不過看到Apache網站上提到這些與Hadoop相關的項目,對你或許有幫助:
- Avro?: A data serialization system.
- Cassandra?: A scalable multi-master database with no single points of failure.
- Chukwa?: A data collection system for managing large distributed systems.
- HBase?: A scalable, distributed database that supports structured data storage for large tables.
- Hive?: A data warehouse infrastructure that provides data summarization and ad hoc querying.
- Mahout?: A Scalable machine learning and data mining library.
- Pig?: A high-level data-flow language and execution framework for parallel computation.
- ZooKeeper?: A high-performance coordination service for distributed applications.
網址就在:http://hadoop.apache.org/里
推薦閱讀:
※物聯網、大數據、雲計算、人工智慧之間的關係如何?
※中國為什麼沒有類似 Amazon AWS 的雲計算公司?在中國做這樣的公司會有哪些阻礙?
※微軟的雲計算服務 Azure 與亞馬遜的 AWS 有什麼區別?
※Google 的雲計算業務為什麼沒有 Amazon 的 AWS 成功?