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