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