2015年,整個IT技術領域發生了許多深刻而又復雜的變化。本文是大數據解讀篇,在這篇文章里我們將回顧2015展望2016,看看過去的一年里廣受關注的技術有哪些進展,了解下數據科學家這個職業的火熱。
在關鍵技術進展部分,從大數據生態圈眾多技術中選取了Hadoop、Spark、Elasticsearch和Apache Kylin四個點,分別請了四位專家:Hulu的董西成、明略數據的梁堰波、精碩科技的盧億雷、eBay的韓卿,來為大家解讀2015里的進展。
【回顧2015】
1,關鍵技術進展:
Hadoop:
Hadoop作為大數據平臺中最基礎與重要的系統,在2015年提高穩定性的同時,發布了多個重要功能與特性,這使得Hadoop朝著多類型存儲介質和異構集群的方向邁進了一大步。
●HDFS
HDFS 之前是一個以磁盤單存儲介質為主的分布式文件系統。但隨著近幾年新存儲介質的興起,支持多存儲介質早就提上了日程。如今,HDFS 已經對多存儲介質有了良好的支持,包括Disk、Memory 和SSD 等,對異構存儲介質的支持,使得HDFS 朝著異構混合存儲方向發展。目前HDFS支持的存儲介質如下:
ARCHIVE:高存儲密度但耗電較少的存儲介質,通常用來存儲冷數據。
DISK:磁盤介質,這是HDFS最早支持的存儲介質。
SSD:固態硬盤,是一種新型存儲介質,目前被不少互聯網公司使用。
RAM_DISK :數據被寫入內存中,同時會往該存儲介質中再(異步)寫一份。
●YARN
YARN作為一個分布式數據操作系統,主要作用是資源管理和資源調度。在過去一年,YARN新增了包括基于標簽的調度、對長服務的支持、對Docker 的支持等多項重大功能。
基于標簽的調度,使得YARN 能夠更好地支持異構集群調度。它的基本思想是,通過打標簽的方式為不同的節點賦予不同的屬性,這樣,一個大的Hadoop集群按照節點類型被分成了若干個邏輯上相互獨立(可能交叉)的集群。這種集群跟物理上獨立的集群很不一樣,用戶可以很容易地通過動態調整label,實現不同類型節點數目的增減,這具有很好的靈活性。
對長服務的支持,使得YARN逐漸變為一個通用資源管理和調度系統。目前,YARN既支持像類似MapReduce,Spark 的短作業,也支持類似Web Service,MySQL 這樣的長服務。支持長服務是非常難的一件事情,YARN 需要解決以下問題:服務注冊、日志滾動、ResourceManager HA、NodeManager HA(NM 重啟過程中,不影響Container)和ApplicationMaster 永不停止,重啟后接管之前的Container。截止2.7.0版本,以上問題都已經得到了比較完整的解決。
對Docker的支持,使得YARN能夠為上層應用提供更好的打包、隔離和運行方式。YARN通過引入一種新的ContainerExecutor,即DockerContainerExecutor,實現了對Docker的支持,但目前仍然是alpha版本,不建議在生產環境中使用。
●HBase
在2015 年,HBase 迎來了一個里程碑——HBase 1.0 release,這也代表著HBase 走向了穩定。HBase新增特性包括:更加清晰的接口定義,多Region 副本以支持高可用讀,Family 粒度的Flush以及RPC 讀寫隊列分離等。
spark:
2015年的Spark發展很快,JIRA數目和PR數目都突破了10000,contributors數目超過了1000,可以說是目前最火的開源大數據項目。這一年Spark發布了多個版本,每個版本都有一些亮點:
●2014年12月,Spark 1.2發布引入ML pipeline作為機器學習的接口。
●2015年3月,Spark 1.3發布引入了DataFrame作為Spark的一個核心組件。
●2015年6月,Spark 1.4發布引入R語言作為Spark的接口。R語言接口在問世一個多月之后的調查中就有18%的用戶使用。
●2015年9月,Spark 1.5發布。Tungsten項目第一階段的產出合并入DataFrame的執行后端,DataFrame的執行效率得到大幅提升。
●2016年1月,Spark 1.6發布引入Dataset接口。
Spark目前支持四種語言的接口,除了上面提到的R語言的使用率以外,Python的使用率也有很大提升,從2014年的38%提升到2015年的58%;而Scala接口的使用率有所下降,從84%下降到71%。同時Spark的部署環境也有所變化,51%的部署在公有云上,48% 使用standalone方式部署,而在YARN上的只有40%了。可見Spark已經超越Hadoop,形成了自己的生態系統。而在形成Spark生態系統中起到關鍵作用的一個feature就是外部數據源支持,Spark可以接入各種數據源的數據,然后把數據導入Spark中進行計算、分析、挖掘和機器學習,然后可以把結果在寫出到各種各樣的數據源。到目前為止Spark已經支持非常多的外部數據源,像Parquet/JSON/CSV/JDBC/ORC/HBase/Cassandra/Mongodb等等。
上面這些調查數據來自美國,中國的情況有所區別,但是還是有一定的借鑒意義的。國內的Spark應用也越來越多:騰訊的Spark規模到了8000+節點,日處理數據1PB+。阿里巴巴運行著目前最長時間的Spark Job:1PB+數據規模的Spark Job長達1周的時間。百度的硅谷研究院也在探索Spark+Tachyon的應用場景。
Spark MLlib的ALS算法已經在很多互聯網公司用于其推薦系統中。基本上主流的互聯網公司都已經部署了Spark平臺并運行了自己的業務。上面說的更多的互聯網的應用,實際上Spark的應用場景有很多。在Databricks公司的調查中顯示主要應用依次是:商務智能、數據倉庫、推薦系統、日志處理、欺詐檢測等。
除了互聯網公司以外,傳統IT企業也把Spark作為其產品的一個重要組成。IBM在今年6月的Spark summit期間宣布重點支持Spark這個開源項目,同時還開源了自己的機器學習系統SystemML并推進其與Spark的更好合作。美國大數據巨頭Cloudera,Hortonworks和MapR都表示Spark是其大數據整體解決方案的核心產品。可以預見Spark是未來若干年最火的大數據項目。
在深度學習方面2015年可謂非常熱鬧,如Google開源其第二代機器學習系統TensorFlow,Facebook開源Torch和人工智能硬件服務器Big Sur等等。Spark社區也不甘落后,在1.5版本中發布了一個神經網絡分類器MultiplayerPerceptronClassifier作為其深度學習的雛形。雖然這個模型還有很多地方需要優化,大家不妨嘗試下,畢竟它是唯一一個基于通用計算引擎的分布式深度學習系統。
除了現在非常火的深度學習,在傳統統計和機器學習領域,Spark這一年也有非常大的變化,包括GLM的全面支持,SparkR GLM的支持,A/B test,以及像WeightesLeastSquares這樣的底層優化算法等。
Elasticsearch:
Elasticsearch 是一個可伸縮的開源全文搜索和分析引擎。它可以快速地存儲、搜索和分析海量數據。Elasticsearch 基于成熟的Apache Lucene 構建,在設計時就是為大數據而生,能夠輕松的進行大規模的橫向擴展,以支撐PB級的結構化和非結構化海量數據的處理。Elasticsearch生態圈發展狀態良好,整合了眾多外圍輔助系統,如監控Marvel,分析Logstash,安全Shield等。近年來不斷發展受到廣泛應用,如Github、StackOverflow、維基百科等,是數據庫技術中倍受關注的一匹黑馬。
沙龍旗下【蘿卜網】推出互聯網人必學的的精品課,注冊即送7天VIP! 點此查看詳情!
Elasticsearch在今年下半年發布了2.0版本,性能提升不少,主要改變為:
●Pipeline Aggregation
流式聚合,像管道一樣,對聚合的結果進行再次聚合。原來client端需要做的計算工作,下推到ES,簡化client代碼,更容易構建強大的查詢。
●Query/Filter 合并
取消filters,所有的filter語句自動轉換為query語句。在上下文語義是query時,進行相關性計算;上下文語義是filter時,簡單排除b不匹配的doc,像現在的filter所做的一樣。這個重構以為著所有的query執行會以最
沙龍旗下【蘿卜網】推出互聯網人必學的的精品課,注冊即送7天VIP! 點此查看詳情!
過去的一年多是Apache Kylin發展的重要的一年:
●2014年10月1日,Kylin 代碼在github.com上正式開源
●2014年11月25日,正式加入Apache孵化器并正式啟用Apache Kylin作為項目名稱
●2015年6月10日,Apache Kylin v0.7.1-incubating發布,這是加入Apache后的第一個版本,依據Apache的規范作了很多修改,特別是依賴包,license等方面,同時簡化了安裝,設置等,并同時提供二進制安裝包
●2015年9月6日,Apache Kylin v1.0-incubating正式發布,增強了SQL處理,提升了HBase coprocessor 的性能,同時提供了Zeppelin Interpreter等
●2015年9月16日,Apache Kylin與Spark,Kafka,Storm,H2O,Flink,Elasticsearch,Mesos等一起榮獲InfoWorld Bossie Awards 2015:最佳開源大數據工具獎,這是業界對Kylin的認可
●2015年11月18日,Apache Kylin正式畢業成為Apache頂級項目
●2015年12月15日,Apache Kylin v1.2正式發布,這是升級為頂級項目后的第一個版本,提供了對Excel,PowerBI,Tableau 9等的支持,對高基維度增強了支持,修復了多個關鍵Bug等
●2016年,Apache Kylin將迎來重要的2.x版本,該版本對底層架構和設計作了重大重構,提供可插拔的設計及Lambda架構,同時提供對歷史數據查詢,Streaming及Realtime查詢等,同時在性能,任務管理,UI等各個方面提供增強。
同時,過去一年也是社區發展的重要一年,在過去一年內發展了來自eBay,美團,京東,明略數據,網易等眾多committer,社區每天的討論也是非常熱鬧。社區提交了很多新特性和Bug修復,包括來自美團的不同HBase寫入,來自京東的明細數據查詢,來自網易的多Hive源等多個重大特性為Apache Kylin帶來了巨大的增強。
社區合作
在開源后的一年時間內,Apache Kylin也和其他社區建立了良好的合作關系,Apache Calcite作為Kylin 的SQL引擎被深入的整合進來,我們也向Calcite提交了很多改進和修復,Calcite的作者,Julian Hyde也是Kylin的mentor。HBase是Kylin的存儲層,在實際運維中,我們碰到過無數問題,從可靠性到性能到其他各個方面,Kylin社區和HBase社區積極合作解決了絕大部分關鍵問題。另外,現在越來越多的用戶考慮使用Apache Zeppelin作為前端查詢和展現的工具,為此我們開發了Kylin Interperter并貢獻給了Zeppelin,目前可以直接從最新版的Zeppelin代碼庫中看到這塊。同樣,我們也和其他各個社區積極合作,包括Spark,Kafka等,為構建和諧的社區氛圍和形成良好合作打下了堅實的基礎。
技術發展
技術上,這一年來Apache Kylin主要在以下幾個方面:
●Fast Cubing
在現在的版本中,Cube的計算依賴MapReduce,并且需要多個步驟的MR Job來完成計算,且MR Job的多少和維度相關,越多的維度會帶來更多的MR job。而每一次MR job的啟停都需要等待集群調度,并且MR job之間的數據需要多次在HDFS落地和傳輸,從而導致消耗了大量的集群資源。為此我們引入了一種新的算法:Fast Cubing。一個MapReduce即可完成Cub的計算,測試結果表明整個Cubing的時間可以降低30~50%左右,網絡傳輸可以下降5倍,這在超大規模數據集的計算上帶來了客觀的性能改進。
●Streaming OLAP
Kylin作為一個預計算系統,不可避免的有著數據刷新延遲的限制,這在大部分用戶案例中并不是問題,但隨著業務和技術的發展,Streaming甚至Realtime的需求越來越高。2015年Kylin的主要發展都在Streaming OLAP上,為了支持低延遲的數據刷新,從整體的架構和設計上都做了相當大的重新設計,目前已經可以支持從Kafka讀取數據并進行聚合計算的能力,同時提供SQL接口為前端客戶端提供標準的訪問接口,數據延遲已經可以做到分鐘級別。
●Spark Cubing
Spark作為MapReduce的一種替代方案一直在社區中被問及Kylin是否可以支持直接使用Spark來作為計算。為此我們在2015年下半年實現了同樣算法的Spark Cubing引擎,目前還在測試中。
●可插拔架構
為了更廣泛的可擴展性,并支持如上各種新特性,Kylin在2.x的代碼中引入了可插拔架構和設計,從而解決了對特定技術的依賴問題。在新的設計中,數據源可以從Hive,SparkSQL等各種SQL on Hadoop技術讀取,并支持Kafka;在計算引擎方面,除了MapReduce方面的Fast Cubing外,實現了Spark Cubing,Streaming Cubing等多種計算框架,并為將來其他計算框架留下了擴展接口;在存儲上,HBase目前依然是唯一的存儲層,但在上層設計中已經很好的進行了抽象,很容易可以擴展到其他Key-Value系統。
2,大數據與機器學習
機器學習是數據分析不可缺少的一部分。機器學習被贊譽為大數據分析和商務智能發展的未來,成功的機器學習項目依賴于很多因素,包括選擇正確的主題,運行環境,合理的機器學習模型,最重要的是現有的數據,大數據為機器學習提供了很好的用武之地。
機器學習正很快從一個被很少人關注的技術主題轉變為被很多人使用的管理工具。優秀的算法,大數據和高性能的計算資源的條件的滿足使得機器學習快速發展,機器學習在今年第一次進入Gartner技術成熟曲線的報告中,已直接越過了期望鵬展期的高峰,進入大數據一樣的應用期;而機器學習也是報告中第一個出現的技術。2015年是機器學習豐收年,發生了很多令人矚目的大事。
沙龍旗下【蘿卜網】推出互聯網人必學的的精品課,注冊即送7天VIP! 點此查看詳情!
各大巨頭開源:
●2015年1月,Facebook開源前沿深度學習工具“Torch”。
●2015年4月,亞馬遜啟動其機器學習平臺Amazon Machine Learning,這是一項全面的托管服務,讓開發者能夠輕松使用歷史數據開發并部署預測模型。
●2015年11月,谷歌開源其機器學習平臺TensorFlow。
●同一月,IBM開源SystemML并成為Apache官方孵化項目。
●同時,微軟亞洲研究院將分布式機器學習工具DMTK通過Github開源。DMTK由一個服務于分布式機器學習的框架和一組分布式機器學習算法組成,可將機器學習算法應用到大數據中。
●2015年12月,Facebook開源針對神經網絡研究的服務器“Big Sur”,配有高性能圖形處理單元(GPUs),轉為深度學習方向設計的芯片。
大公司不僅是用開源社區來增強自己的機器學習工具,而且也會以收購來提升自身的機器學習實力。如IBM于今年3月收購了AIchemyAPI,AIchemyAPI能夠利用深度學習人工智能,搜集企業、網站發型的圖片和文字等來進行文本識別和數據分析。
此外,2015年不僅僅是關于大公司的,利用機器學習的各種創業公司也占了同等地位。比如EverString完成B輪融資,該公司利用企業內部銷售數據,和不斷主動挖掘分析全球新聞數據,社交媒體等外部數據,通過機器學習自動建立量化客戶模型,為企業預測潛在客戶。
3,數據科學家的崛起
大數據需要數據分析,數據分析需要人才。數據科學是早就存在的詞匯,而數據科學家卻是近年來突然出現的新詞。在Google、Amazon、Quora、Facebook等大公司的背后,都有一批數據科學專業人才,將大量數據變為可開發有價值的金礦。在大數據時代,數據科學家等分析人才的需求在激增。
據相關報告,國內大數據人才缺口目前已達百萬,一名高級數據挖掘工程師月薪高達30K-50K。招聘網站上的每天都會產生大量的大數據相關職位需求。據拉勾網提供的統計來看,從2014年到2015年,IT行業關于大數據的崗位需求增長了2.4倍。人才培養迫在眉睫。復旦大學于今年成立了全國首個大數據學院。阿里云于年底宣布新增30所合作高校,開設云計算大數據專業,計劃用3年時間培養5萬名數據科學家。各知名大學也將數據科學設為碩士課程。
無論是國內還是國外,數據科學都是目前炙手可熱的研究領域,數據科學家、數據分析師都是非常火爆的職位,幾乎所有的產業都需要數據科學家來從大量的數據中挖掘有價值的信息。大數據分析領域的專屬首席級別頭銜也愈發多見。美國政府今年任命了DJ Patil作為政府的首席數據科學家(Chief Data Scientist),這也是美國政府內部首次設立“數據科學家”這個職位。
【展望2016】
●Hadoop。對于HDFS,會朝著異構存儲介質方向發展,尤其是對新興存儲介質的支持;對于YARN,會朝著通用資源管理和調度方向發展,而不僅僅限于大數據處理領域,在加強對MapReduce、Spark等短類型應用支持的同時,加強對類似Web Service 等長服務的支持;
●對于Hbase,將會花費更多精力在穩定性和性能方面,正嘗試的技術方向包括:對于HDFS 多存儲介質的使用;減少對ZooKeeper 的使用以及通過使用堆外內存緩解Java GC的影響。
●Spark 2.0預計明年三四月份發布,將會確立以DataFrame和Dataset為核心的體系架構。同時在各方面的性能上會有很大的提升。
●Apache Kylin 2.0即將發布,隨著各項改進的不斷完善,該版本將在2016年在OLAP on Hadoop上更進一步!
●ElasticSearch開源搜索平臺,機器學習,Data graphics,數據可視化在2016年會更加火熱。
●大數據會越來越大,IOT、社交媒體依然是一個主要的推動因素。
●大數據的安全和隱私會持續受到關注。
專家介紹:
董西成 就職于Hulu,專注于分布式計算和資源管理系統等相關技術。《Hadoop 技術內幕:深入解析MapReduce 架構設計與實現原理》和《Hadoop 技術內幕:深入解析YARN 架構設計與實現原理》作者,dongxicheng.org 博主。
梁堰波 明略數據技術合伙人,開源愛好者,Apache Spark項目核心貢獻者。北京航空航天大學計算機碩士,曾就職于Yahoo!、美團網、法國電信從事機器學習和推薦系統相關的工作,在大數據、機器學習和分布式系統領域具備豐富的項目經驗。
盧億雷 精碩科技(AdMaster)技術副總裁兼總架構師,大數據資深專家,CCF(中國計算學會)大數據專委委員,北航特聘教授。主要負責數據的采集、清洗、存儲、挖掘等整個數據流過程,確保提供高可靠、高可用、高擴展、高性能系統服務,提供Hadoop/HBase/Storm/Spark/ElasticSearch等離線、流式及實時分布式計算服務。對分布式存儲和分布式計算、超大集群、大數據分析等有深刻理解及實踐經驗。有超過10年云計算、云存儲、大數據經驗。曾在聯想、百度、Carbonite工作,并擁有多篇大數據相關的專利和論文。
韓卿(Luke Han) eBay全球分析基礎架構部(ADI) 大數據平臺產品負責人,Apache Kylin 副總裁,聯合創始人,管理和驅動著Apache Kylin的愿景,路線圖,特性及計劃等,在全球各地不同部門中發展客戶,開拓內外部合作伙伴及管理開源社區等,建立與大數據廠商,集成商及最終用戶的聯系已構建健壯的Apache Kylin生態系統。在大數據,數據倉庫,商務智能等方面擁有超過十年的工作經驗。