無(wú)論是在構(gòu)建大數(shù)據(jù)的應(yīng)用程序,還是僅僅只想從開(kāi)發(fā)的移動(dòng)應(yīng)用中得到一點(diǎn)點(diǎn)啟發(fā),程序員現(xiàn)在比以往任何時(shí)候都需要數(shù)據(jù)分析工具。這絕對(duì)是一個(gè)好東西,所以很多公司從程序員的需求和技能出發(fā),構(gòu)建了一些數(shù)據(jù)分析工具。以下是小編為你整理的怎么自學(xué)大數(shù)據(jù) ?
BitDeli:BitDeli是今年11月份在舊金山成立的一家初創(chuàng)公司。它能衡量出任何使用Python腳本的應(yīng)用程序的指標(biāo),聯(lián)合創(chuàng)始人兼CEO Ville Tuulos告訴Derrick,腳本可以很簡(jiǎn)單,也可以很復(fù)雜——甚至未來(lái)可以延伸到機(jī)器學(xué)習(xí)。不過(guò)和“重量級(jí)選手”Hadoop相比,BitDeli自認(rèn)為是一個(gè)輕量級(jí)的Ruby。 ?
Continuuity:Continuuity是前Yahoo首席云架構(gòu)師Todd Papaioannou和Facebook HBase的工程師Jonathan Gray的心血結(jié)晶,Continuuity想讓所有的公司都能像Yahoo、Facebook一樣運(yùn)營(yíng)。該團(tuán)隊(duì)創(chuàng)建了一個(gè)大數(shù)據(jù)工具,它可以簡(jiǎn)化Hadoop以及HBase集群的復(fù)雜性,而且包含一系列開(kāi)發(fā)套件,旨在幫助程序員開(kāi)發(fā)大數(shù)據(jù)應(yīng)用,該平臺(tái)采用Hadoop技術(shù),允許開(kāi)發(fā)者在防火墻內(nèi)外對(duì)大數(shù)據(jù)應(yīng)用軟件進(jìn)行部署、擴(kuò)展和管理。公司聯(lián)合創(chuàng)始人兼首席執(zhí)行官Todd Papaioannou表示,作為一家初創(chuàng)企業(yè),Continuuity正在試圖掀起下一波大數(shù)據(jù)應(yīng)用軟件的浪潮,公司所提供的工具能夠大大提高處于開(kāi)發(fā)狀態(tài)的軟件不同部分與階段的擴(kuò)展性。
?
Flurry:Flurry是移動(dòng)應(yīng)用統(tǒng)計(jì)分析領(lǐng)域里的標(biāo)桿,正因?yàn)樵谛袠I(yè)內(nèi)獨(dú)特的優(yōu)勢(shì),它每年的營(yíng)收高達(dá)一億美元。Flurry擁有非常全面的功能,不僅僅只是幫助開(kāi)發(fā)者構(gòu)建移動(dòng)應(yīng)用,它還幫助開(kāi)發(fā)者分析所有的數(shù)據(jù),進(jìn)而產(chǎn)生更大的效益。其實(shí)數(shù)據(jù)也支撐了該公司的廣告網(wǎng)絡(luò),他們通過(guò)數(shù)據(jù)分析可以幫助開(kāi)發(fā)者推送準(zhǔn)確的廣告到需要的用戶面前。不過(guò)單純從移動(dòng)應(yīng)用的數(shù)據(jù)統(tǒng)計(jì)功能來(lái)看,F(xiàn)lurry絕對(duì)是處于領(lǐng)先地位。其功能模塊設(shè)置合理,分析維度全面,分析流程也易于理解。 ?
Infochimps:盡管Infochimps非常努力的想讓自己成為一家企業(yè)級(jí)的IT公司,但是顯然還有一定的差距。不過(guò)與公司同名的平臺(tái)的確為開(kāi)發(fā)者們帶來(lái)了真正的價(jià)值。配置和管理大數(shù)據(jù)環(huán)境的工具稱之為Wukong——這是一個(gè)基于Ruby的命令行界面,開(kāi)發(fā)者可以編寫大數(shù)據(jù)應(yīng)用調(diào)用Data Delivery Service或Hadoop,使用的語(yǔ)法也非常簡(jiǎn)單,開(kāi)發(fā)者*MapReduce或者Flume。Infochimps的首席戰(zhàn)略官Dhruv Bansal介紹:常見(jiàn)的情況是,客戶用Infochimps的平臺(tái)開(kāi)發(fā)程序處理分析數(shù)據(jù),只有在需要批量分析海量數(shù)據(jù)時(shí)才會(huì)用到Hadoop?;谶@種經(jīng)驗(yàn),他們的新版本關(guān)注的重點(diǎn)是對(duì)數(shù)據(jù)的實(shí)時(shí)處理功能(而不是Hadoop)。 ?
? ?
如何實(shí)現(xiàn)數(shù)據(jù)化 ?
企業(yè)要為此做好計(jì)劃,到底需要保存什么樣的數(shù)據(jù),以人為中心的數(shù)據(jù)還是以產(chǎn)品為中心,還是更關(guān)注企業(yè)運(yùn)營(yíng),需要做好這樣的計(jì)劃,然后再將企業(yè)生產(chǎn)經(jīng)營(yíng)中的數(shù)據(jù)保存下來(lái),即便是現(xiàn)在看來(lái)沒(méi)什么用的數(shù)據(jù),未來(lái)也可能產(chǎn)生巨大的價(jià)值。比如說(shuō)像售樓處、體驗(yàn)店客戶的來(lái)訪數(shù)據(jù),就有必要完整的記錄下來(lái)。包括怎么過(guò)來(lái)的,一個(gè)人來(lái)還是幾個(gè)人,有老人和小孩嗎,穿什么樣的衣服等等,還有客戶的情緒,看了什么,問(wèn)了什么問(wèn)題,*買了什么東西,都是非常重要的數(shù)據(jù)。另外,企業(yè)內(nèi)部人力資源的各個(gè)方面也都可以記錄下來(lái),這些可以進(jìn)行挖掘和分析的數(shù)據(jù)。他舉例說(shuō),長(zhǎng)虹公司在自己的生產(chǎn)線設(shè)置了很多傳感器,監(jiān)測(cè)溫度、濕度、震動(dòng)、噪音、顆粒等等因素,希望了解到生產(chǎn)過(guò)程中哪些因素會(huì)對(duì)員工產(chǎn)生明顯影響。他們此前都認(rèn)為溫度和顆??赡軐?duì)于員工操作和產(chǎn)品質(zhì)量影響*,但是事實(shí)上最終數(shù)據(jù)分析的結(jié)果,溫度是沒(méi)有什么影響的,恒溫的控制對(duì)于生產(chǎn)效率和合格率的貢獻(xiàn)并不像想象中那么大,反而是噪音對(duì)于員工情緒以及生產(chǎn)的影響非常重要。要成為大數(shù)據(jù)企業(yè),*步企必須要實(shí)現(xiàn)數(shù)據(jù)化。 ?
對(duì)于很多企業(yè),做大數(shù)據(jù)并不是意味著要自己去建設(shè)數(shù)據(jù)中心。隨著云計(jì)算和云數(shù)據(jù)中心出現(xiàn),使用外部數(shù)據(jù)中心的成本已經(jīng)非常低了,數(shù)據(jù)存儲(chǔ)的費(fèi)用也是在成倍的下降。但是,企業(yè)要做大數(shù)據(jù),必須要在IT基礎(chǔ)設(shè)施方面具有比較好的數(shù)據(jù)處架構(gòu),要用大一些工具比如數(shù)據(jù)分布式存儲(chǔ)、Hadoop等等。很關(guān)鍵的企業(yè)不僅要具備一個(gè)數(shù)據(jù)中心的硬件,還要考慮和企業(yè)業(yè)務(wù)方向結(jié)合,不僅就是包括了數(shù)據(jù)的采集、數(shù)據(jù)庫(kù)架構(gòu),向上的分析模塊,再往上的API數(shù)據(jù)出口,以及橫向的一些業(yè)務(wù)模塊和出口這些東西。要做成企業(yè)的大數(shù)據(jù)管理應(yīng)用平臺(tái),我們強(qiáng)調(diào)一定要從企業(yè)的業(yè)務(wù)出發(fā),量體裁衣,企業(yè)首先必須要搞清楚自己的業(yè)務(wù)形態(tài)是什么。 ?
? ?
深入掌握抓包分析技術(shù) ?
事實(shí)上,很多網(wǎng)站都會(huì)做一些反爬措施,即不想讓你爬到他的數(shù)據(jù)。最常見(jiàn)的反爬手段就是對(duì)數(shù)據(jù)進(jìn)行隱藏處理,這個(gè)時(shí)候,你就無(wú)法直接爬取相關(guān)的數(shù)據(jù)了。作為爬蟲(chóng)方,如果需要在這種情況下獲取數(shù)據(jù),那么你需要對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行抓包分析,然后再根據(jù)分析結(jié)果進(jìn)行處理。一般推薦掌握的抓包分析工具是Fiddler,當(dāng)然你也可以用其他的抓包分析工具,沒(méi)有特別的要求。
?
精通一款爬蟲(chóng)框架 ?
事實(shí)上,當(dāng)你學(xué)習(xí)到這一步的時(shí)候,你已經(jīng)入門了。 ?
這個(gè)時(shí)候,你可能需要深入掌握一款爬蟲(chóng)框架,因?yàn)椴捎每蚣荛_(kāi)發(fā)爬蟲(chóng)項(xiàng)目,效率會(huì)更加高,并且項(xiàng)目也會(huì)更加完善。 ?
同樣,你可以有很多爬蟲(chóng)框架進(jìn)行選擇,比如Scrapy、pySpider等等,一樣的,你沒(méi)必要每一種框架都精通,只需要精通一種框架即可,其他框架都是大同小異的,當(dāng)你深入精通一款框架的時(shí)候,其他的框架了解一下事實(shí)上你便能輕松使用,在此推薦掌握Scrapy框架,當(dāng)然你可以根據(jù)習(xí)慣進(jìn)行選擇。 ?
掌握常見(jiàn)的反爬策略與反爬處理策略 ?
反爬,是相對(duì)于網(wǎng)站方來(lái)說(shuō)的,對(duì)方不想給你爬他站點(diǎn)的數(shù)據(jù),所以進(jìn)行了一些限制,這就是反爬。 ?
反爬處理,是相對(duì)于爬蟲(chóng)方來(lái)說(shuō)的,在對(duì)方進(jìn)行了反爬策略之后,你還想爬相應(yīng)的數(shù)據(jù),就需要有相應(yīng)的攻克手段,這個(gè)時(shí)候,就需要進(jìn)行反爬處理。 ?
事實(shí)上,反爬以及反爬處理都有一些基本的套路,萬(wàn)變不離其宗,這些后面作者會(huì)具體提到,感興趣的可以關(guān)注。 ?
? ?
啟動(dòng)Storm各個(gè)后臺(tái)進(jìn)程 ?
在Storm主控節(jié)點(diǎn)上運(yùn)行"bin/storm nimbus >/dev/null 2>&1 &"啟動(dòng)Nimbus后臺(tái)程序,并放到后臺(tái)執(zhí)行; ?
在Storm各個(gè)工作節(jié)點(diǎn)上運(yùn)行"bin/storm supervisor >/dev/null 2>&1 &"啟動(dòng)Supervisor后臺(tái)程序,并放到后臺(tái)執(zhí)行; ?
在Storm主控節(jié)點(diǎn)上運(yùn)行"bin/storm ui >/dev/null 2>&1 &"啟動(dòng)UI后臺(tái)程序,并放到后臺(tái)執(zhí)行,啟動(dòng)后可以通過(guò)http://{nimbus host}:8080觀察集群的worker資源使用情況、Topologies的運(yùn)行狀態(tài)等信息。 ?
END ?
向集群提交任務(wù) ?
輸入命令啟動(dòng)Storm Topology: ?
storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3 ?
其中,allmycode.jar是包含Topology實(shí)現(xiàn)代碼的jar包,org.me.MyTopology的main方法是Topology的入口,arg1、arg2和arg3為org.me.MyTopology執(zhí)行時(shí)需要傳入的參數(shù)。 ?
輸入命令停止Storm Topology: ?
storm kill {toponame} ?
其中,{toponame}為Topology提交到Storm集群時(shí)指定的Topology任務(wù)名稱。 ?