挨踢部落直播課堂第一期:起航2017——擁抱大數(shù)據(jù)
原創(chuàng)【51CTO.com原創(chuàng)稿件】
一、大數(shù)據(jù)框架結(jié)構(gòu)和全景概覽
似乎一夜之間,大數(shù)據(jù)(Big Data)變成一個IT行業(yè)中最時髦的詞匯。
大數(shù)據(jù)
首先,大數(shù)據(jù)并不是什么完完全全的新生事物,Google的搜索服務(wù)就是一個典型的大數(shù)據(jù)運用,根據(jù)每個用戶的需求,Google實時從全球海量的數(shù)字資產(chǎn)(或數(shù)字垃圾)中快速找出最可能的答案,呈現(xiàn)給你,就是一個最典型的大數(shù)據(jù)服務(wù)。只不過過去這樣規(guī)模的數(shù)據(jù)量處理和有商業(yè)價值的應(yīng)用太少,在IT行業(yè)沒有形成成型的概念?,F(xiàn)在隨著全球數(shù)字化、網(wǎng)絡(luò)寬帶化、互聯(lián)網(wǎng)應(yīng)用于各行各業(yè),累積的數(shù)據(jù)量越來越大,越來越多企業(yè)、行業(yè)和國家發(fā)現(xiàn),可以利用類似的技術(shù)更好地服務(wù)客戶、發(fā)現(xiàn)新商業(yè)機(jī)會、擴(kuò)大新市場以及提升效率,才逐步形成大數(shù)據(jù)這個概念。
理解大數(shù)據(jù)的兩個例子:
1、 炒股。2011年好萊塢有部高智商電影《永無止境》,講述一位落魄的作家?guī)扃辏昧艘环N可以迅速提升智力的神奇藍(lán)色藥物,然后他將這種高智商用于炒股。那庫珀是怎么炒股的呢?就是他能在短時間掌握無數(shù)公司資料和背景,也就是將世界上已經(jīng)存在的海量數(shù)據(jù)(包括公司財報、電視新聞、近二三十年的報紙、互聯(lián)網(wǎng)、小道消息等)挖掘出來,串聯(lián)起來,甚至將Facebook、Twitter的海量社交數(shù)據(jù)挖掘出來,得到普通大眾對某種股票的感情傾向,通過海量信息的挖掘、分析,使一切內(nèi)幕都不再是內(nèi)幕,
2、 航班的晚點。大家知道中國的航班晚點非常多,相比之下美國航班準(zhǔn)點情況好很多。那是因為中國比美國霧霾多,天氣不好的天數(shù)多么?當(dāng)然不是。這其中,美國航空管制機(jī)構(gòu)一個好的做法發(fā)揮了積極的作用,說起來也非常簡單,就是美國會定期公布每個航空公司、每一班航空過去一年的晚點率和平均晚點時間,這樣客戶在購買機(jī)票的時候就很自然會選擇準(zhǔn)點率高的航班,從而通過市場手段牽引各航空公司努力提升準(zhǔn)點率。這個簡單的方法比任何管理手段(如中國政府的宏觀調(diào)控手段)都直接和有效。
從這些案例來看,大數(shù)據(jù)并不是很神奇的事情。在企業(yè)、行業(yè)和國家的管理中,通常只有效使用了不到20%的數(shù)據(jù)(甚至更少),如果把剩余80%沉睡的數(shù)據(jù)價值都激發(fā)起來,世界會變得怎么樣呢?當(dāng)然更美好更超出你的想象。
單個的數(shù)據(jù)并沒有價值,但越來越多的數(shù)據(jù)累加,量變就會引起質(zhì)變。然而數(shù)據(jù)再多,但如果被屏蔽或者沒有被使用,也是沒有價值的。因此我們需要把海量的數(shù)據(jù)整合起來、串聯(lián)起來,從中挖掘出巨大的商業(yè)價值。大數(shù)據(jù)是互聯(lián)網(wǎng)深入發(fā)展的下一波應(yīng)用,是互聯(lián)網(wǎng)發(fā)展的自然延伸。目前,可以說大數(shù)據(jù)的發(fā)展到了一個臨界點,因此才成為IT行業(yè)中最熱門的詞匯之一。
下面說說大數(shù)據(jù)技術(shù)架構(gòu),提到大數(shù)據(jù)就不能不說Hadoop。當(dāng)然大數(shù)據(jù)不是只有Hadoop,下面讓我們具體了解下大數(shù)據(jù)的整體框架結(jié)構(gòu)和全景概覽。Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。Hadoop原本來自于谷歌一款名為MapReduce的編程模型包。谷歌的MapReduce框架可以把一個應(yīng)用程序分解為許多并行計算指令,跨大量的計算節(jié)點運行非常巨大的數(shù)據(jù)集。使用該框架的一個典型例子就是在網(wǎng)絡(luò)數(shù)據(jù)上運行的搜索算法。Hadoop[3] 最初只與網(wǎng)頁索引有關(guān),迅速發(fā)展成為分析大數(shù)據(jù)的領(lǐng)先平臺。
圖1文件系統(tǒng)-數(shù)據(jù)管理-業(yè)務(wù)計算-分析工具
這個圖從下往上看,一層一層剖析:
A 基礎(chǔ)文件系統(tǒng)
所有集群服務(wù)器安裝Linux的Ubuntu發(fā)行版本,文件默認(rèn)基于Ext4和NFS。分布式文件管理采用HDFS/HADOOP框架,這是大數(shù)據(jù)系統(tǒng)的標(biāo)配,不多介紹了。
B 數(shù)據(jù)管理
大數(shù)據(jù)源,就形式而言,主要是結(jié)構(gòu)化和非結(jié)構(gòu)化(以文本為主)兩類。這里綜合使用多種系統(tǒng)實現(xiàn)所有數(shù)據(jù)的管理和檢索。
Cassandra:完成所有結(jié)構(gòu)化大數(shù)據(jù)(基礎(chǔ)源數(shù)據(jù))的存儲檢索與運算支持??奢p松擴(kuò)展到未來支持千億規(guī)模的數(shù)據(jù)。相比常見的HBase方案,我們選擇Cassandra是因其在可靠性(無中心結(jié)構(gòu))、社區(qū)更新支持以及與Spark配合方面都具有更多優(yōu)勢,更適合HCR業(yè)務(wù)情況。
Postgre/Mysql:開源關(guān)系型數(shù)據(jù)庫,存儲中間統(tǒng)計結(jié)果數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)。雖然有了Cassandra,但數(shù)據(jù)體系中傳統(tǒng)關(guān)系數(shù)據(jù)庫仍然很重要:研究員分析所需的大量中間計算/統(tǒng)計結(jié)果更適合關(guān)系數(shù)據(jù)庫存儲,其多字段檢索能力(這對Cassandra則很困難)對于多維分析十分重要。集群部署+分區(qū)的模式使得其輕松應(yīng)對10億級的數(shù)據(jù)。
Infobright: 結(jié)構(gòu)化數(shù)據(jù)倉庫方案,其數(shù)據(jù)壓縮和聚合統(tǒng)計的功能很強(qiáng)。使用的免費社區(qū)版在百億數(shù)據(jù)內(nèi)性能不錯,很適合結(jié)構(gòu)化大數(shù)據(jù)下的多維統(tǒng)計分析與深入鉆取場景。
Elastic Search:管理和檢索所有非結(jié)構(gòu)化數(shù)據(jù)(非結(jié)構(gòu)化業(yè)務(wù)數(shù)據(jù)和互聯(lián)網(wǎng)數(shù)據(jù)為主)。分布式架構(gòu)對百億級數(shù)據(jù)集合支持良好,易于管理使用,其他擴(kuò)展資源(如Cassandra插件)也很豐富。
C 業(yè)務(wù)計算
業(yè)務(wù)計算是大數(shù)據(jù)技術(shù)體系的核心。包含了對所有業(yè)務(wù)邏輯計算/分析的支持。
這里面比較多,重點講兩個
分布式計算體系: 采用Spark(未使用Hadoop/MR)。相比后者,Spark更先進(jìn),輕量高效(尤其業(yè)務(wù)中存在大量機(jī)器學(xué)習(xí)處理時),代碼開發(fā)快,對人員要求統(tǒng)一,這都是我們所關(guān)注的。而其子模塊Spark Sql可快速實現(xiàn)對大數(shù)據(jù)的類sql檢索與分析,比Hive具有更強(qiáng)性能和功能。相關(guān)的機(jī)器學(xué)習(xí)庫MLib提供的機(jī)器學(xué)習(xí)算法在業(yè)務(wù)中大量用于挖掘處理,比Hadoop下的Mahout快很多。都有效支持了業(yè)務(wù)處理分析。
數(shù)據(jù)流支持工具:Kettle作為經(jīng)典ETL工具,用于各類源數(shù)據(jù)引入時的快速ETL處理,可視化界面方便易用。而Kafka的數(shù)據(jù)訂閱機(jī)制,統(tǒng)一滿足了多個上層業(yè)務(wù)模型對主題數(shù)據(jù)流的共享需求。
Storm:流式計算框架,用于滿足未來實時分析業(yè)務(wù)的需要,當(dāng)前尚未有很多上線實用的例子。
D 分析工具
分析工具是HCR大數(shù)據(jù)技術(shù)體系的最上層,主要由各種工具組成,支持各級數(shù)據(jù)研究人員完成對大數(shù)據(jù)的快速探索。
大數(shù)據(jù)全景概覽,看圖不多說了。結(jié)合云的IAAS、 PAAS 、SAAS三層做了進(jìn)一步的分解重構(gòu)。
圖2大數(shù)據(jù)全景平臺
二、企業(yè)大數(shù)據(jù)場景和不同數(shù)據(jù)源整合利用
大數(shù)據(jù)問題的分析和解決通常很復(fù)雜。如果您花時間研究過大數(shù)據(jù)企業(yè)解決方案,那么您一定知道它真的不是一個簡單的任務(wù)。為了簡化各種大數(shù)據(jù)類型的復(fù)雜性,一般我們依據(jù)來源,對各種參數(shù)進(jìn)行了分類,方便為任何大數(shù)據(jù)解決方案中涉及的各層和高級組件提供一個邏輯清晰的架構(gòu)。
下面是一個平臺化企業(yè)從數(shù)據(jù)源獲取數(shù)據(jù)----清洗整合----數(shù)據(jù)分析處理----數(shù)據(jù)應(yīng)用服務(wù)的整體結(jié)構(gòu)圖。
圖3平臺化企業(yè)
從左邊紅色一列,我們看到企業(yè)現(xiàn)在的數(shù)據(jù)源除了有內(nèi)部來自生產(chǎn)、銷售、服務(wù)、售后等結(jié)構(gòu)化的數(shù)據(jù)外,還有內(nèi)部非結(jié)構(gòu)化包括社會化媒體和其他數(shù)據(jù)集,以及來自外部的豐富媒介產(chǎn)生的數(shù)據(jù)及日志信息等。那么面對不同應(yīng)用場景如何整合不同的數(shù)據(jù)源呢?
圖4元數(shù)據(jù)
如上圖,可以得知:
首先是建立大數(shù)據(jù)的標(biāo)準(zhǔn)(對業(yè)務(wù)信息的數(shù)據(jù)、編碼、屬性進(jìn)行標(biāo)準(zhǔn)定義),其次注意各異構(gòu)數(shù)據(jù)之間按照一定的規(guī)范進(jìn)行數(shù)據(jù)交換與集成,然后對于數(shù)據(jù)資源進(jìn)行分級分權(quán)共享、發(fā)布,并將合規(guī)的數(shù)據(jù)對外開放和使用,同時維護(hù)核心數(shù)據(jù)的共享與統(tǒng)一,最后實現(xiàn)大數(shù)據(jù)變成企業(yè)資產(chǎn)的一部分將數(shù)據(jù)的應(yīng)用價值變現(xiàn)。
不同數(shù)據(jù)源的收集和整合利用:
目前市面上存在很多數(shù)據(jù)收集系統(tǒng),使用比較廣泛的有sqoop、logstash、flume。sqoop一般用在從關(guān)系型數(shù)據(jù)庫導(dǎo)數(shù)據(jù)到hdfs中;logstash一般結(jié)合elasticsearch和kibana一起使用;而使用最廣泛而且功能最強(qiáng)大的是flume。flume是分布式的可靠的可用的系統(tǒng),高效的從不同數(shù)據(jù)源收集聚合遷移大量數(shù)據(jù)到一個集中的數(shù)據(jù)存儲,使用基于事務(wù)的數(shù)據(jù)傳遞方式來保證事件傳遞的可靠性。
我們結(jié)合一個移動業(yè)務(wù)的客戶流失分析分析系統(tǒng)來說一下如何利用收集來的數(shù)據(jù)。
圖5
圖6
數(shù)據(jù)從接入系統(tǒng)進(jìn)入kafka集群后,將分別進(jìn)入實時處理的jstorm集群和離線處理的yarn和hdfs集群。
對于實時處理我們需要高穩(wěn)定性和響應(yīng)速度,我們選擇了單獨搭建jstorm集群來滿足我們實時處理的需求。一方面,單獨的jstorm集群更便于維護(hù),減少了因為資源爭用而造成的影響實時系統(tǒng)穩(wěn)定性的問題;另一方面,jstorm也支持我們做任何時間粒度實時計算的需求。
對于離線計算平臺,我們選擇了yarn和hdfs,我們在yarn之上構(gòu)建支持了不同數(shù)據(jù)計算引擎,包括spark、map-reduce和用于OLAP的kylin,通過組合這些不同的計算引擎來滿足我們各方面數(shù)據(jù)處理的需求。
最后通過分析基于用戶移動互聯(lián)網(wǎng)訪問行為的分析結(jié)果,形成詳細(xì)的戶興趣愛好列表,可進(jìn)行客戶流失的行為分析,方便個性化推薦和即時、精準(zhǔn)的廣告投放,而不斷減少客戶的反感和抱怨,增加客戶的粘度。
在這個章節(jié)的最后,總結(jié)一下自己對大數(shù)據(jù)的看法。
第一,大數(shù)據(jù)使企業(yè)真正有能力實現(xiàn)從以往的自我為中心改變?yōu)橐钥蛻魹橹行?。企業(yè)是為客戶而生,目的是為股東獲得利潤。只有服務(wù)好客戶,才能獲得利潤。但過去,很多企業(yè)是沒有能力做到以客戶為中心的,原因就是相應(yīng)客戶的信息量不大,挖掘不夠,系統(tǒng)也不支持。大數(shù)據(jù)的使用能夠使對企業(yè)的經(jīng)營對象從客戶的粗略歸納(就是所謂提煉歸納的“客戶群”)還原成一個個活生生的客戶,這樣經(jīng)營就有針對性,對客戶的服務(wù)就更好,投資效率就更高。
第二,大數(shù)據(jù)一定程度上將顛覆了企業(yè)的傳統(tǒng)管理方式?,F(xiàn)代企業(yè)的管理方式是從上至下,依賴于層層級級的組織和嚴(yán)格的流程,依賴信息的層層匯集、收斂來制定正確的決策,再通過決策在組織的傳遞與分解,以及流程的規(guī)范,確保決策得到貫徹,確保每一次經(jīng)營活動都有質(zhì)量保證,也確保一定程度上對風(fēng)險的規(guī)避。這其實是一種有用而笨拙的方式。在大數(shù)據(jù)時代,我們可能重構(gòu)企業(yè)的管理方式,通過大數(shù)據(jù)的分析與挖掘,大量的業(yè)務(wù)本身就可以自決策,不必要依靠膨大的組織和復(fù)雜的流程。
第三,大數(shù)據(jù)另外一個重大的作用是改變了商業(yè)邏輯,提供了從其他視角直達(dá)答案的可能性?,F(xiàn)在人的思考或者是企業(yè)的決策,事實上都是一種邏輯的力量在主導(dǎo)起作用。我們?nèi)フ{(diào)研,去收集數(shù)據(jù),去進(jìn)行歸納總結(jié),最后形成自己的推斷和決策意見,這是一個觀察、思考、推理、決策的商業(yè)邏輯過程。人和組織的邏輯形成是需要大量的學(xué)習(xí)、培訓(xùn)與實踐,代價是非常巨大的。但是否這是唯一的道路呢?大數(shù)據(jù)給了我們其他的選擇,就是利用數(shù)據(jù)的力量,直接獲得答案。
第四,通過大數(shù)據(jù),我們可能有全新的視角來發(fā)現(xiàn)新的商業(yè)機(jī)會和重構(gòu)新的商業(yè)模式。我們現(xiàn)在看這個世界,比如分析家中食品腐敗,主要就是依賴于我們的眼睛再加上我們的經(jīng)驗,但如果我們有一臺顯微鏡,我們一下就看到壞細(xì)菌,那么分析起來完全就不一樣了。大數(shù)據(jù)就是我們的顯微鏡,它可以讓我們從全新視角來發(fā)現(xiàn)新的商業(yè)機(jī)會,并可能重構(gòu)商業(yè)模型。
流失模型的建立取決于客戶屬性的質(zhì)量(客戶主數(shù)據(jù),比如生日、性別、位置和收入)和客戶的社交行為和使用偏好等。
首先選擇flume作為不同數(shù)據(jù)源的采集系統(tǒng)。采用flume采集數(shù)據(jù),同時入庫到多個存儲組件中,提供給計算層作為數(shù)據(jù)源。
三、大數(shù)據(jù)學(xué)習(xí)與高薪求職
個人技能:
熟悉LINUX 、shell、Python、C/C++、Java
熟悉相關(guān)算法和相關(guān)技術(shù)、常用的機(jī)器學(xué)習(xí)模型、自然語言處理、數(shù)據(jù)挖掘方法
愛學(xué)習(xí)愛思考要堅持要使出洪荒之力
高薪求職:
1、 經(jīng)驗很重要
當(dāng)被問到公司招聘具備Hadoop技能的IT人員都有哪些要求時,HR回答,“經(jīng)驗是最重要的”。當(dāng)你渴望找到一份與數(shù)據(jù)相關(guān)工作時,你也就邁進(jìn)了大數(shù)據(jù)的就業(yè)市場——雖然你總有一天會積累起經(jīng)驗,但是此刻才最重要。假如你有必要的經(jīng)驗,那就要適當(dāng)?shù)卣故境鰜怼?o:p>
2、 了解招聘中常用的術(shù)語
在簡歷、履歷和其他求職文件中,一些專業(yè)詞匯和術(shù)語往往能夠吸引招聘人員和人事經(jīng)理的眼球。舉三個有代表性的例子:大規(guī)模設(shè)計和建造可擴(kuò)展性分布式數(shù)據(jù)存儲、系統(tǒng)和管道;實現(xiàn)xxxx節(jié)點的Hadoop集群;從零開始或者從底層開始構(gòu)建。
3、 持續(xù)關(guān)注不斷發(fā)展的行業(yè)環(huán)境
Hadoop在中國是一個相對年輕的技術(shù),和整個大數(shù)據(jù)行業(yè)一樣。因此,要想在大數(shù)據(jù)行業(yè)或者相關(guān)行業(yè)得到較好的發(fā)展,及時關(guān)注最新的行業(yè)趨勢和變化特別重要。
堅持關(guān)注數(shù)據(jù)大會,比如51cto的WOT數(shù)據(jù)峰會和Hadoop技術(shù)大會。關(guān)注這些數(shù)據(jù)大會都是非常有利于了解行業(yè)前沿技術(shù),關(guān)注最新的發(fā)展,明確個人的發(fā)展方向。
Q&A
1、湖南-小劉-Java:從事大數(shù)據(jù)工作的工資每月大概多少啊
孫老師:起步15K,高級的40k--50K每月。
2、安徽-梅軒-Python:老師問一下 我想找個機(jī)器學(xué)習(xí)的工作 但是沒有工作經(jīng)驗 我還沒畢業(yè)。。直接找這方面的工作有點難 我是不是應(yīng)該先去其他的地方積累工作經(jīng)驗項目經(jīng)驗啥的?
孫老師:是的,需要參與一個完整的項目,積累經(jīng)驗就好辦了。
安徽-梅軒-Python:第一次學(xué)了Python不要我,又學(xué)了機(jī)器學(xué)習(xí)算法,還不要我,又去熟悉了一些集群式分布式啥的。想用tensorflow框架發(fā)現(xiàn)自己電腦帶不起來。
3、鄭州-李賽 自己摸索,多實踐算不算經(jīng)驗呀?畢竟個人不好搞到大量數(shù)據(jù),少量數(shù)據(jù)沒法做咯.
孫老師:也算,就是可能缺乏真實場景,遇到的問題不多。個人的大數(shù)據(jù)確實不多,如果你的微信朋友圈有5000人,每天管理挖掘這些信息也算個人大數(shù)據(jù)了。
4、廣州-狄欽dQ-PHP:看了下前面4點關(guān)于大數(shù)據(jù)的觀點,都是與企業(yè)商業(yè)運作有關(guān),個人的話似乎聯(lián)系不多,實現(xiàn)項目又要從何入手?
孫老師:先從Hadoop開始,理解其核心,然后再拓展到其他
5、湖南-小劉-Java:從事大數(shù)據(jù)對Python學(xué)習(xí)的版本有要求嗎?大數(shù)據(jù)中Python是用2.x還是3.x的版本
孫老師:版本更新快,現(xiàn)在基本3.x的版本。TensorFlow是Google去年發(fā)布的機(jī)器學(xué)習(xí)平臺,對機(jī)器配置要求要高些,建議筆記本選高配的
6、廣州-狄欽dQ-PHP:什么學(xué)習(xí)建議或?qū)W習(xí)路線的嗎?圖1可以作為參考么?關(guān)于學(xué)習(xí)計劃的制定。
孫老師:對的,這個圖很全面了,先從LINUX打基礎(chǔ),再往上深入。
7、
廣州-胖子-數(shù)據(jù)庫:相學(xué)習(xí)好大數(shù)據(jù),Java和數(shù)據(jù)庫都要熟練,linux 和shell也要熟練,這四個都不是簡單的懂就可以的,學(xué)習(xí)的越扎實,對后面越有好處。
8、
廣州-胖子-數(shù)據(jù)庫:橫著看,每一層都是一個行業(yè)或者崗位
廣州-狄欽dQ-PHP:從那張圖來看,沒有幾年的功夫都不能說會…感覺不是直招崗位,得在原來崗位摸爬滾打幾年才有機(jī)會。
9、廣州-yuliya 運營:我想問下底層數(shù)據(jù)一般如何獲???基于搜索的二次篩選。
孫老師:底層數(shù)據(jù)的獲取可以有多種方式,比如網(wǎng)絡(luò)嗅探和協(xié)議抓包、函數(shù)回調(diào)等辦法都可以獲取得到。
基于搜索的二次篩選:
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】