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