MRJob 极速入门教程,使用Python玩转Hadoop
想要Hadoop乖巧地運(yùn)行Python程序,學(xué)習(xí)mrjob可能是最直接、最簡單的方法了,你甚至都不要按安裝部署Hadoop集群。mrjob擁有很多優(yōu)秀的特性比如:
-
支持多步驟的MapReduce任務(wù)工作流
-
支持內(nèi)嵌、本地、遠(yuǎn)程亞馬遜以及Hadoop
-
調(diào)試方便不需要任務(wù)環(huán)境支持
本教程通過 python 中 mrjob 模塊來調(diào)用 hadoop 處理數(shù)據(jù)。通過本次實(shí)驗,你可以初步入門mrjob,輕松編寫mr來使用hadoop。主要知識點(diǎn):
-
Python MRJob模塊的安裝
-
Hadoop——Python各模塊介紹
-
使用MRJob實(shí)現(xiàn)文本統(tǒng)計
-
Python MRJob的運(yùn)行方式
-
重寫MRJob函數(shù)實(shí)現(xiàn)復(fù)雜數(shù)據(jù)處理
效果展示。該展示數(shù)據(jù)含義是通過mrjob將每個用戶(cuid)看過哪些電影(vid)進(jìn)行統(tǒng)計并輸出。
mrjob支持python2和python3 。mrjob可以通過pip直接安裝,也可以通過下載源碼通過setup.py安裝,可參考mrjob安裝說明。 本實(shí)驗中,使用shiyanlou賬戶通過sudo權(quán)限進(jìn)行安裝。pip安裝指令:
目前常見的Python框架有以下幾個,這里再簡單介紹一下各框架的大體特點(diǎn),想了解更多可去博客查閱。 Hadoop Streaming。提供了使用其他可執(zhí)行程序來作為Hadoop的mapper或者reduce的方式,必須使用規(guī)定的語義從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),然后將結(jié)果輸出到標(biāo)準(zhǔn)輸出。直接使用Streaming 的一個缺點(diǎn)是當(dāng)reduce的輸入是按key分組的時候,仍然是一行行迭代的,必須由用戶來辨識key與key之間的界限。
mrjob。開源的Python框架,封裝Hadoop的數(shù)據(jù)流,并積極開發(fā)Yelp的。由于Yelp的運(yùn)作完全在亞馬遜網(wǎng)絡(luò)服務(wù),mrjob的整合與EMR是令人難以置信的光滑和容易(使用 boto包)。
dumbo。同樣使用Hadoop流包裝的框架。dumbo出現(xiàn)的較早,但由于缺少文檔,造成開發(fā)困難。這也是不如mrjob的一點(diǎn)。dumbo通過typedbytes執(zhí)行序列化,能允許更簡潔的數(shù)據(jù)傳輸,也可以更自然的通過指定JavaInputFormat讀取SequenceFiles或者其他格式的文件
hadoopy。是一個兼容dumbo的Streaming封裝,也使用typedbytes序列化數(shù)據(jù),并直接把 typedbytes 數(shù)據(jù)寫到HDFS。它有一個很棒的調(diào)試機(jī)制, 在這種機(jī)制下它可以直接把消息寫到標(biāo)準(zhǔn)輸出而不會干擾Streaming過程。它和dumbo很相似,但文檔要好得多。
pydoop。與其他框架相比,pydoop 封裝了Hadoop的管道(Pipes),這是Hadoop的C++ API。 正因為此,該項目聲稱他們能夠提供更加豐富的Hadoop和HDFS接口,以及一樣好的性能。需要注意de所有的輸入輸出都必須是字符串。
其他 -happy、Disco、octopy、Mortar、Luigi 等。
后面便是使用mrjob實(shí)現(xiàn)詞組統(tǒng)計以及mrjob多種運(yùn)行方式等等的介紹。完整的教程已經(jīng)配套的練習(xí)可以在實(shí)驗樓的主站去學(xué)習(xí)。
說明:該教程僅限實(shí)驗樓會員學(xué)習(xí)。因為是剛上線的新課,目前還1天的免費(fèi)時間,任何人都可以學(xué)習(xí);感興趣的同學(xué)可以:點(diǎn)我學(xué)習(xí)
相關(guān)推薦:
MyBatis 框架基礎(chǔ)入門
Python3 實(shí)現(xiàn)火車票查詢工具
Python3 實(shí)現(xiàn)色情圖片識別
高德API + Python 解決租房問題
Python 破解驗證碼
更多免費(fèi)教程,請進(jìn)入shiyanlou.com
總結(jié)
以上是生活随笔為你收集整理的MRJob 极速入门教程,使用Python玩转Hadoop的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “脚踢各大Python Web框架”,S
- 下一篇: 29个人,耗时84天,硬刚Python,