方艾,張玉忠,徐雄,金鐸
(中國電信股份有限公司廣州研究院,廣東 廣州 510630)
基于MapR的IPTV用戶收視行為分析的方案與實踐
方艾,張玉忠,徐雄,金鐸
(中國電信股份有限公司廣州研究院,廣東 廣州 510630)
互動電視業(yè)務開放平臺是運營商的互聯(lián)網(wǎng)+IPTV轉(zhuǎn)型實踐,是用戶、終端、內(nèi)容、商家等之間相互連接的樞紐。平臺目前擁有百萬級的活躍用戶,每天產(chǎn)生接近1 TB的用戶收視行為、系統(tǒng)運行日志等數(shù)據(jù),這些數(shù)據(jù)可用于業(yè)務運營分析、用戶畫像、系統(tǒng)運維分析等。MapR是適合此類分析的大數(shù)據(jù)處理框架之一,結(jié)合實際需求介紹MapR的主要特點、核心組件,闡述基于MapR的分析系統(tǒng)的架構(gòu)設(shè)計及應用效果。
大數(shù)據(jù);互聯(lián)網(wǎng)+;MapR;Apache Drill;SQL on Hadoop
IPTV面向移動互聯(lián)網(wǎng)轉(zhuǎn)型,互動電視應用將成為一個重要的突破口,IPTV需要建立用戶與終端、用戶與用戶、用戶與內(nèi)容、人與商家之間的連接,讓用戶可以充分參與內(nèi)容、發(fā)現(xiàn)服務、社交互動,使電視真正成為家庭媒體娛樂中心?;与娨晿I(yè)務開放平臺是互動電視應用的解決方案在廣東IPTV的實踐,目前平臺用戶每日PV(page view,頁面瀏覽量)超過7億,每天產(chǎn)生近1 TB的數(shù)據(jù)文件,內(nèi)容包括用戶收視行為日志、系統(tǒng)運行日志等。通過對數(shù)據(jù)的實時處理、關(guān)鍵質(zhì)量指標分析,通過系統(tǒng)監(jiān)控,可指導系統(tǒng)的持續(xù)優(yōu)化,為用戶提供更好的體驗;從用戶行為與業(yè)務使用上分析,輸出業(yè)務運營指標,可為業(yè)務優(yōu)化提供依據(jù),并形成反饋、驗證的閉環(huán),從用戶的行為中分析挖掘用戶需求、分析用戶特點,可為用戶提供更有價值的、個性化的服務。
實現(xiàn)上述在運維、運營、用戶關(guān)懷等方面業(yè)務需求的一個難點是系統(tǒng)產(chǎn)生的海量數(shù)據(jù),由于數(shù)據(jù)產(chǎn)生的速度快、數(shù)據(jù)量大,對數(shù)據(jù)分析系統(tǒng)提出了較高要求:一方面要求高時效性,做到實時采集應用服務器集群產(chǎn)生的數(shù)據(jù)文件,并實時完成數(shù)據(jù)清洗、關(guān)聯(lián)、加載等預處理;另一方面要求高效率分析,即能夠方便、高效地進行數(shù)據(jù)分析,快速得到結(jié)果。
數(shù)據(jù)應用的場景可分為兩大類:一類是傳統(tǒng)的分析型應用,如針對歷史數(shù)據(jù)的統(tǒng)計、分析與建模;另一類是基于數(shù)據(jù)與事件驅(qū)動的運營型應用,將用戶的行為或事件產(chǎn)生的實時數(shù)據(jù)與歷史積累的數(shù)據(jù)結(jié)合,實現(xiàn)快速響應的實時應用,如實時用戶趨勢、實時推薦等。
2.1 系統(tǒng)目標
2.1.1 業(yè)務運營分析
系統(tǒng)提供從用戶、產(chǎn)品、內(nèi)容等不同角度,從地區(qū)、時間等不同維度進行全方位多層次的實時分析能力,快速為業(yè)務運營提供決策依據(jù)。
分析工作可分為實時與非實時兩類:實時分析提供了對當前用戶收視行為的實時監(jiān)控與統(tǒng)計分析,例如針對收視率的實時分析,實時獲知當前全省及各個城市最熱門的直播頻道與節(jié)目,實時獲知用戶流向等。實現(xiàn)實時發(fā)現(xiàn)熱點頻道、實時向用戶提醒熱門節(jié)目信息,或指導后臺視頻源服務動態(tài)調(diào)度等。離線分析提供系統(tǒng)日常運營報表,包括平臺UV、PV、TopN等業(yè)務統(tǒng)計。
運營人員通過查詢界面,在線查詢、分析驗證運營效果。
2.1.2 用戶分析建模
基于用戶行為及業(yè)務數(shù)據(jù)的建模形成用戶特征畫像,感知用戶興趣,為個性化服務、精準營銷提供基礎(chǔ)。例如通過用戶最常看的頻道與節(jié)目內(nèi)容,進行在線時段/時長等分析,指導在合適的時間推送合適的內(nèi)容,屏蔽不恰當?shù)膬?nèi)容。通過用戶聚類分析,衍生出社交應用,如圈子推薦、活動組織等。
2.1.3 系統(tǒng)運維分析
針對系統(tǒng)運維層面提供系統(tǒng)運作的關(guān)鍵質(zhì)量指標,為保障系統(tǒng)正常運作提供支撐,結(jié)合業(yè)務負載、系統(tǒng)資源等分析提供系統(tǒng)優(yōu)化依據(jù)并驗證系統(tǒng)優(yōu)化的效果。實時分析應用于系統(tǒng)異常的實時告警,當設(shè)定的指標超過一定閾值時,提醒運維人員處理。通過對系統(tǒng)負載、響應時間、用戶體驗指標等的分析與跟蹤,指導系統(tǒng)的優(yōu)化,對比優(yōu)化前后的分析結(jié)果并對結(jié)果進行確認。
2.2 框架選型
借助大數(shù)據(jù)處理框架Hadoop可實現(xiàn)上述目標,目前Hadoop存在多個商業(yè)發(fā)行版,例如cloudera版本(CDH)、Hortonworks版本(HDP)、MapR等,但它們各有側(cè)重,需選擇適合本系統(tǒng)的框架,通過對比主流大數(shù)據(jù)框架的特點與差異,結(jié)合本系統(tǒng)的實際需求,最終選取MapR作為數(shù)據(jù)分析的基礎(chǔ)框架,主要原因有:MapR建立在適合實時分析的文件系統(tǒng)上,滿足本系統(tǒng)的應用要求,支持Apache Drill、Spark等工具進行方便高效的數(shù)據(jù)分析,Drill可查詢文本文件,特別適合本系統(tǒng)當前數(shù)據(jù)變動頻繁的情況。
2.2.1 MapR主要特點
MapR提出了融合分析型應用與運營型應用的架構(gòu)[1],如圖1所示,通過3個組件——MapR-FS(文件系統(tǒng))、MapR-DB(數(shù)據(jù)庫)和MapR streams(流處理)構(gòu)建了底層數(shù)據(jù)框架,在此基礎(chǔ)上,支持各種開源與商業(yè)的分析工具,如Hadoop生態(tài)、Spark高性能運算框架、Apache Drill分析工具等。另外,還提供管理監(jiān)控的界面或接口,可與第三方監(jiān)控工具結(jié)合,方便進行集群的管理和監(jiān)控。
圖1 MapR架構(gòu)示意
2.2.2 MapR-FS介紹
MapR-FS采用標準POSIX文件系統(tǒng),與HDFS相比[2],MapR-FS采用不同的架構(gòu),一是解決namenode(文件命名空間管理)單點的問題,實現(xiàn)namenode角色的分布式;二是實現(xiàn)更靈活高效的文件操作,特別是支持多次讀寫。由于HDFS文件采用一次寫入方式,因此無法直接修改,需刪除后再寫入,這種機制不適合實時數(shù)據(jù)的寫入,例如在每秒更新的場景下,會造成許多文件碎片,這與設(shè)計初衷不符。MapR-FS則支持全面的讀寫操作,并采用Linux方式的ACE權(quán)限控制。通過NFS(network file system,網(wǎng)絡(luò)文件系統(tǒng))服務器,MapR-FS可被掛載到Linux的本地目錄,像操作本地文件一樣操作。相比 HDFS通過客戶端或REST接口操作數(shù)據(jù)的方式,更為方便。另外MapR-FS實現(xiàn)了對用戶透明的壓縮機制,實測中,純文本占用的空間僅是原文件的1/3,正好彌補了冗余所需的空間。
MapR-FS由以下幾個部分構(gòu)成[3]。
· 存儲池(storage pool):由一組磁盤構(gòu)成,一般是3塊磁盤,用于寫數(shù)據(jù)。
· 容器(container):抽象實體,一類用于存放數(shù)據(jù)文件、文件塊、表塊等,另一類用于保存命名空間等信息,相當于HDFS的namenode,但由于分布在多節(jié)點中,避免了namenode單點的問題。
· 卷(volume):管理實體,用于存儲和組織容器,也用于分布元數(shù)據(jù)、設(shè)置權(quán)限。一般由一個命名容器和若干個數(shù)據(jù)容器組成。圖2示意一個跨越了3個節(jié)點的卷。卷可以被快照,發(fā)生問題時可用于回滾,也可以鏡像到其他集群作為冗余,或在異地集群上實現(xiàn)災備。
圖2 跨越3個節(jié)點的卷示意
2.2.3 Apache Drill介紹
Apache Drill是SQL on Hadoop[4]的方式之一,與CDH的Impala類似,是對Google Dremel的開源實現(xiàn),旨在提供低時延的在線數(shù)據(jù)查詢與分析,支持ANSI標準SQL。本系統(tǒng)采用Apache Drill的另一個原因是其支持對文本文件的操作,不依賴 Hive表的元數(shù)據(jù),通過定義存儲格式(storage),主要是文件路徑、文件格式(如文本、CSV、JSON等)、分隔符等,可使用SQL語法查詢MapR-FS或本地文件。由于本系統(tǒng)在發(fā)展初期變化較快,數(shù)據(jù)內(nèi)容與格式不時發(fā)生變動,如采用需預定義表結(jié)構(gòu)的存儲方式,如Hive,則由于數(shù)據(jù)更新頻繁,帶來較大的工作量。采用Apache Drill時,可將數(shù)據(jù)解析成JSON格式,支持靈活的結(jié)構(gòu),大大加快了開發(fā)流程。當然,由于每個字段都帶有鍵值,存儲空間要求更多。
程序或用戶可通過C++API、REST接口、Drill Shell或ODBC/JDBC與Drill交互。在每個節(jié)點上部署Drill-bit服務,Drill-bit接受客戶端的SQL查詢請求后,先解析成為邏輯計劃,經(jīng)過優(yōu)化后轉(zhuǎn)換成物理計劃。物理計劃進一步被并行器組織成一個執(zhí)行樹[5](如圖3所示),執(zhí)行樹的葉子是一批并行運行的分片,負責掃描、過濾數(shù)據(jù),并通過樹枝一層層地返回結(jié)果。
圖3 Drill執(zhí)行樹示意
3.1 MapR部署
本系統(tǒng)將MapR基礎(chǔ)框架部署在大數(shù)據(jù)定制型物理機上,每臺服務器配備了較大內(nèi)存和硬盤空間,CPU則為中等配置。由于使用了MapR的社區(qū)版,未有高可用(high available,HA)模式。
盡管目前而言,核燃料只占核聚變電站發(fā)電成本的一小部分,但是考慮到核聚變電站自身較高的基建成本,就其商業(yè)化推廣而言目前仍有一定困難。
系統(tǒng)部署示意如圖4所示。系統(tǒng)部署的主要組件介紹如下。
·YARN(資源調(diào)度):每個節(jié)點都部署節(jié)點管理器,其中一臺還作為資源管理器。
·MapR-FS(文件系統(tǒng)):每個節(jié)點上部署了文件服務器,除操作系統(tǒng)的磁盤外,所有磁盤都作為存儲使用。其中一個節(jié)點作為NFS網(wǎng)關(guān),另一個節(jié)點作為CLDB(管理集群容器位置的數(shù)據(jù)庫)。
·分析工具Apache Drill,每個節(jié)點安裝了Drill-bit服務。
·Web服務器:選取一個節(jié)點安裝Web服務器,作為集群管理界面的入口。
·Zookeeper(集群協(xié)同服務),部署在奇數(shù)個節(jié)點上。
3.2 架構(gòu)設(shè)計
系統(tǒng)框架設(shè)計如圖5所示。數(shù)據(jù)主要來源是互動電視平臺應用服務器產(chǎn)生的日志。最初,日志通過實時流方式進入平臺,隨著數(shù)據(jù)量的增大,實時流采集方式由于受處理能力、網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)穩(wěn)定性等因素的影響,有可能發(fā)生丟失,為確保歷史數(shù)據(jù)的完整性,后續(xù)加入了準實時同步方式。實時應用則可按需訂閱數(shù)據(jù),只獲取部分指定數(shù)據(jù)內(nèi)容或字段,減少網(wǎng)絡(luò)傳輸?shù)牧髁?。?shù)據(jù)采集使用了自主開發(fā)的程序,未使用Flume或Kafaka等組件。
數(shù)據(jù)經(jīng)過ETL后存儲到MapR-FS,對歷史數(shù)據(jù)的ETL流程主要采用了Hadoop流處理,結(jié)果以JSON格式存放在MapR-FS。對實時數(shù)據(jù)的處理則按應用所需提取。
圖4 系統(tǒng)部署示意
圖5 系統(tǒng)框架設(shè)計
3.3 分析模型
系統(tǒng)支持不同類型的分析任務,按數(shù)據(jù)更新頻率可分為實時分析與離線分析:實時分析一般指數(shù)據(jù)一旦產(chǎn)生即進行處理,輸出計算結(jié)果的頻率一般為秒級;離線分析一般指時效性要求不高的批量分析作業(yè),涉及數(shù)據(jù)量較大的歷史數(shù)據(jù)。計算方法包括過濾、篩選、分類、匯總、關(guān)聯(lián)、累計等。典型的分析模型如圖6所示:從數(shù)據(jù)源篩選必要的字段,進行一系列的計算,例如對用戶賬號、所在頻道進行頻道用戶數(shù)累計等,每隔一定間隔(如以1 s為時間窗口)輸出結(jié)果;每次計算的耗時應小于時間窗口,以確保新產(chǎn)生的數(shù)據(jù)能夠被及時處理。
圖6 典型的分析模型
3.4 應用實踐
(1)實時分析
直播頻道實時收視榜單是本系統(tǒng)實時分析的應用之一,目的是隨時了解當前最受歡迎的頻道以及用戶的流向,收視行為數(shù)據(jù)中記錄了用戶的賬號、用戶進入的頻道、進入的時間點等信息,系統(tǒng)每隔4 s計算一次當前各個頻道的用戶數(shù)與占比、進出各個頻道的用戶數(shù)等,之后通過Web socket輸出到Web頁面,展示成圖表。圖7所示的界面顯示了在某個時刻,某個城市最受歡迎的前幾個頻道及相應的用戶數(shù)、占比以及當時進入、離開的人數(shù)。該榜單每4 s更新一次。
目前,該應用平均每秒需處理上萬條數(shù)據(jù)記錄,總體的計算耗時為毫秒級,滿足了實時輸出的要求。
(2)離線分析
業(yè)務運營報表是離線分析的一類應用,目前系統(tǒng)每天需完成10多個分析作業(yè),輸出包括每小時的用戶數(shù)、訪問量,頻道用戶分布,城市用戶分布,機頂盒開機分布等多個報表,隨著業(yè)務發(fā)展和數(shù)據(jù)量的增長,參與計算的數(shù)據(jù)量從200 GB增長到500 GB,相應的作業(yè)處理總時間從25 min增加到41 min(如圖8所示),顯示出較好的性能,滿足了需求。
圖8 分析作業(yè)運算性能
MapR(v5.1)提供了運行穩(wěn)定、操作方便的基礎(chǔ)環(huán)境,MapR-FS發(fā)揮了其優(yōu)勢作用,系統(tǒng)運行5個月來基本穩(wěn)定,目前僅使用了數(shù)量較少、性能中等的幾臺服務器,實現(xiàn)了多項應用需求,特別是實時榜單、實時告警等應用。目前使用的Apache Drill(v1.6)仍存在一些不足,需要特別的注意或處理,例如對空值、中文、同一字段含有不同類型數(shù)據(jù)的處理,文件目錄中存在空文件時出錯等,需要上、下游的流程配合。
系統(tǒng)建設(shè)初期一般采用默認配置,隨著數(shù)據(jù)量的增長與任務的增加,系統(tǒng)產(chǎn)生瓶頸需進行調(diào)優(yōu),可先在操作系統(tǒng)參數(shù)、集群配置、分析工具參數(shù)配置等方面挖掘縱向潛力,再考慮水平拓展。借助資源監(jiān)控與測試分析瓶頸。本系統(tǒng)運行中出現(xiàn)過局部內(nèi)存不足等問題,已通過調(diào)整配置[6]解決。隨著業(yè)務需求的發(fā)展和數(shù)據(jù)量的增加,未來也可考慮使用MapR streams進行實時流計算、嘗試應用MapR-DB等,結(jié)合生態(tài)中的相關(guān)工具,實現(xiàn)更優(yōu)化的架構(gòu)。
圖7 實時收視分析結(jié)果
[1]MapR converged data platform[EB/OL].(2015-10-01)[2016-11-10]. https://www.mapr.com/products/mapr-converged-data-platform.
[2]MapR-FS vs.HDFS:the 5-minute guide to understanding their differences-whiteboard walkthrough [EB/OL]. (2016-01-10) [2016-11-10].https://www.mapr.com/blog/mapr-fs-vs-hdfs-5-minuteguide-understanding-their-differences-whiteboard-walkthrough.
[3]MapR-FS provides high performance enterprise-grade storage for big data[EB/OL].(2016-02-10)[2016-11-10].https://www. mapr.com/products/mapr-fs.
[4]SQL on Hadoop[EB/OL].(2015-02-10)[2016-11-10].https:// www.mapr.com/why-hadoop/sql-hadoop.
[5]Drill query execution[EB/OL].(2016-01-10)[2016-11-10].https:// drill.apache.org/docs/drill-query-execution/.
[6]Performancetuningintroduction[EB/OL].(2016-02-10)[2016-11-10]. https://drill.apache.org/docs/performance-tuning-introduction/.
Scheme and practice of IPTV user viewing behavior analysis based on MapR
FANG Ai,ZHANG Yuzhong,XU Xiong,JIN Duo
Guangzhou Research Institute of China Telecom Co.,Ltd.,Guangzhou 510630,China
Interactive TV business open platform is the internet and IPTV transformation practice for operators.It’s the interconnected hub between users,terminals,content,business and other.The platform now has millions of active users,generating nearly 1 TB of daily viewing activity and system log data.They can be used for business analysis,user portraits and system analysis.MapR was one of the large data processing frameworks suitable for this kind of analysis.The main features and core components of MapR were introduced combined with actual demand, and the architecture design and application effect of analysis system based on MapR was elaborated.
big data,Internet+,MapR,Apache Drill,SQL on Hadoop
TP302.1
A
10.11959/j.issn.1000-0801.2017030
方艾(1981-),男,中國電信股份有限公司廣州研究院工程師,主要研究方向為移動互聯(lián)網(wǎng)與大數(shù)據(jù)應用。
張玉忠(1974-),男,中國電信股份有限公司廣州研究院工程師,主要研究方向為移動互聯(lián)網(wǎng)與大數(shù)據(jù)應用。
徐雄(1974-),男,中國電信股份有限公司廣州研究院高級工程師,主要研究方向為移動互聯(lián)網(wǎng)應用。
金鐸(1970-),男,中國電信股份有限公司廣州研究院高級工程師,主要研究方向為移動互聯(lián)網(wǎng)應用。
2016-11-10;
2017-01-19