1. 程式人生 > >京東實時大資料平臺

京東實時大資料平臺

JRDW(JD Realtime Data Warehouse)是京東大資料部為了解決公司越來越廣泛的實時業務需求,而推出的一整套技術解決方案,包括資料的實時接入、實時解析、實時傳輸、實時計算和實時查詢等技術環節。通過JRDW來解決實時業務開發中各環節的技術難點,在流程上統一業務開發需求,使業務方只專注於業務開發,不用過多關心技術上的問題,極大地降低了實時業務開發的技術難度。
源起
京東大資料部早在2012年就在公司內最早開始嘗試了實時相關業務需求的開發。早期通過對流量日誌的實時抓取和訂單訊息的實時消費進行了流量和訂單資料的實時業務開發,並通過商家資料羅盤對外提供了服務。在2012到2013年期間,大資料部陸續開發了一系列的實時業務需求,比如支援搜尋團隊使用實時技術實現了使用者個性化搜尋,實時展現使用者搜尋和購買行為。在此期間,我們逐漸總結出了一些在實時方面的技術經驗,並發現了當時在解決實時業務開發時的一些難點。
2013年底,我們確立了要實現一整套實時業務開發的技術解決方案,來降低業務開發的難度,更好的支援業務需求。我們總結了在實時領域每個技術環節的經驗,結合京東實際業務情況,梳理出了JRDW整個產品線。

背景
運營場景
-實時感知業務執行情況,實時實現決策支援,比如調整運營策略,庫房排班等
營銷場景
-根據使用者位置、實時瀏覽軌跡、商品價格變化等實現精準推薦、廣告
-Top排行榜:銷量排行、熱度排行等。
優化離線資料倉庫資料抽取環節
-傳統 "1+1"模式的資料倉庫每天凌晨第一件事就是增量或全量抽取業務資料,隨著資料抽取任務的不斷增長,資料抽取時間成本不斷增長,離線計算啟動時間段被推遲。
實時資料平臺要解決的幾個問題
實時資料採集---數怎麼來
-資料要全
-延遲要低
實時資料儲存---數放在哪
-資料儲存統一
-方便使用、搞吞吐量
實時資料計算---數怎麼算
-及時性
-只是高複雜度場景
攻堅
我們首要解決的問題是找到一套標準的技術流程來解決實時資料接入的問題。我們在分析技術難度和業務需求後,決定首要解決的是當時公司內生產系統廣泛使用的SQL Server資料庫日誌的實時抓取和解析問題。我們在組成攻堅小組後,開始了SQL Server日誌的抓取和解析攻堅工作。

由於開源界對SQL Server資料庫異構實時傳輸的需求幾乎沒有,我們不得不從SQL Server官方文件和16進位制日誌內容本身進行猜解來入手。經過一個多月的攻堅,在2014春節前,我們終於從官方API介面找到了日誌資料實時獲取的穩定可靠方式,並順利實現了對16進位制日誌解碼的自主研發。由於MySQL日誌是開源標準,我們也順利自主研發實現了MySQL日誌的解析。其他公司內各種主流生產資料來源,我們也都在14年實現了實時接入和解析,主要包括Oracle、業務應用日誌、JMQ等產品。今年我們也實現了HBase資料的實時接入。

做大資料大概要解決三個問題:資料接入、資料儲存和資料計算。
解決 實時接入 的問題,技術上我們支援基於資料庫日誌的模式,基於系統日誌檔案的實時採集,也支援使用者自助把資料上報。如果要做到資料庫日誌接入需要解決如下幾個問題: 異構資料來源適配(要支援MySQL、SQLServer、Oracle、Hive、Hbase、檔案MongoDB等之間相互資料搬運),各種資料庫日誌 協議的解析,格式的統一,分表資料的合併(線上系統有一兩千張表,消費資料的人希望這是一份資料),敏感的資料(比如使用者的手機號和地址)的過濾等。此 外,作為自助的平臺,只有技術是不行的,京東還把這些技術包裝成一個產品——JDBUS,讓使用者通過JDBUS自助地完成更高效的接入。

彥偉:京東實時資料平臺架構設計與實現思路實時儲存 ,我們有采取了一個業內常見的分散式訊息佇列,並針對京東特有的場景擴充套件了一些功能,包括跨機房的容災、消費資料的許可權控制、叢集複製等。為了解決穩定性,以及解決使用者管理的任務,我們也提供視覺化的產品。實時儲存的另外一個價值是實現一次接入多次消費。
實時計算 ,我們經過調研之後,選擇基於Storm打造這個平臺。這是參考了Spark Streaming和Storm的穩定性、社群活躍度以及它們在國內應用的現狀。Storm應該是最流行的產品,而且在穩定性、易用性上更適合京東的開發 者的思路,更匹配京東的現狀,未來的擴充套件和升級更方便。
基於Storm, 針對發現的問題,我們也做了自己的擴充套件 ,比如Storm的Nimbus本身是單點的,對於分散式來說這是很恐怖的事情,所以我們也擴充套件了Nimbus,實現了Nimbus的HA。同時 Nimbus作為Storm的核心排程器,在叢集資源使用率超過一定規模之後,Nimbus會變得越來越慢,任務的提交、終止可能從幾秒鐘慢到三五分鐘的 級別,我們也做了優化,讓Nimbus在高負載的情況下依然效率非常高,降到了秒級。平臺還必須要做到更友好的資源隔離,基於傳統的CGroup解決方 案,我們做了資源的隔離。平臺還必須要解決穩定性的問題,解決叢集的跨機房的容災的問題,我們實現了Storm程式包跨叢集的共享,有一套工具完成任務的 遷移,包含自動的模式和手工的模式。
對於實時計算平臺我們同樣在技術之上 封裝了一個視覺化的產品 方便使用者使用,以告別命令列操作方式的不便。基於京東的許可權體系,開發者可以在平臺上直接上傳任務,可以重啟、管理、檢視任務日誌、可以隨時啟動它、停止 它,包括申請程式包和版本控制,在這個過程當中會有服務目錄體系管理這套業務,有一套全新的審計流程,畢竟所有執行的業務都是線上業務,升級和變動是非常 嚴謹的事情。總的來說,我們用JDBUS解決實時資料接入的問題,用JDQ解決實時資料儲存問題,用JRC實時計算平臺解決實時計算的問題。資料基於這個 平臺算出來之後,最終應用在推薦系統、廣告系統、倉儲系統、配送系統,提升京東的GMA、商家的滿意度或者使用者的滿意度等等。這就是京東在實時資料平臺的 架構和應用。

彥偉:京東實時資料平臺架構設計與實現思路

京東平臺採用比較成熟、比較常用的技術,更多的精力花費在工具或者平臺的穩定性保障上,尤其是當平臺到一定量級之後。比如管理一個Hadoop叢集,在 10臺、100臺規模,和在2000臺、3000臺的規模,各方面的成本是不在一個量級的,對技術的要求也不在一個量級。實時資料平臺也是這樣,我們快速把平臺搭建起來,隨著京東有越來越多的實時業務在平臺上運轉,我們必須要對工具或者產品有更深層次的理解,才能更 好地保證它的穩定性,更大地發揮它的價值。對於集群系統調優、配置修改等等,要有非常專業的能力才能控制,比方你對Storm的Nimbus有一個非常深 的理解你才能動它,要不然僅僅是使用的程度。這種工具產品的應用,在推出1.0版本的時候相對比較容易。隨著2.0、3.0版本的到來,同時叢集規模越來 越大,你會發現要求的技術深度要求越來越高,也就是說對高階的技術人才需求越來越迫切。

為了解決穩定性,剛開始我們用到了開源的產品,最終發現它還是有侷限性,因為這些東西不是你開發的,所以針對一些關鍵點,我們會在適合的時間推出我們自主研發的產品,用來更大地提升對平臺的控制力。只有有更強的控制力,才能支撐更多的業務。同時,我們在14年也完成了實時資料傳輸平臺數據直通車、實時計算平臺JRC、資料傳輸工具JDQ、即席查詢工具JES的產品化工作。在14年下半年,業務方資料研發已經可以使用我們一整套JRDW實時資料產品來完成實時業務開發。目前我們的JRDW已經支援了公司內主要業務部門的開發需求,包括CMO、COO、雲平臺、無線業務部、京東到家、微信手Q業務部等。

發展
在解決資料的接入和解析的過程中,我們意識到搭建一個穩定可靠的實時任務執行平臺的重要性。通過早期我們對各種大資料開源平臺(Storm, Hadoop, HBase, Kafka等)的經驗,我們自主開發了一套實時任務的高可用排程平臺—Magpie。該平臺對我們不斷增長的實時任務提供了高可用保證,並標準化了實時任務的開發模式,保證了實時平臺更長遠的發展需求。該平臺目前運行了近千個實時任務,主要包括實時資料接入、解析、分發和各種實時需求任務。

京東大資料

感悟
兩三年來在大資料實時領域的研發經驗,讓我們感受到業務需求和技術發展的快速變化,讓我們在面對新的業務問題時,大多數時候可以在開源領域找到相關的經驗可以快速借鑑,在方案成熟時又可以結合我們的業務場景對技術方案進行提煉和昇華,在技術發展上走出了我們自己的路。
在實際工作中,找一個解決問題的辦法往往不是最難的,最難的是結合我們的情況找出符合長遠業務發展的技術解決路線圖。這就要求我們研發的小夥伴們時刻關注行業前沿技術發展,保持對技術追求永遠有一顆火熱的心。在這個過程中,我們京東技術人通過自己的技術實力解決了高要求的業務需求,實現了我們自身的技術價值。
來自:
http://www.36dsj.com/archives/32805
http://www.open-open.com/news/view/e98f84
http://www.wtoutiao.com/p/a66sMM.html  關鍵環節詳解 

彥偉:京東實時資料平臺架構設計與實現思路實時儲存 ,我們有采取了一個業內常見的分散式訊息佇列,並針對京東特有的場景擴充套件了一些功能,包括跨機房的容災、消費資料的許可權控制、叢集複製等。為了解決穩定性,以及解決使用者管理的任務,我們也提供視覺化的產品。實時儲存的另外一個價值是實現一次接入多次消費。
實時計算 ,我們經過調研之後,選擇基於Storm打造這個平臺。這是參考了Spark Streaming和Storm的穩定性、社群活躍度以及它們在國內應用的現狀。Storm應該是最流行的產品,而且在穩定性、易用性上更適合京東的開發 者的思路,更匹配京東的現狀,未來的擴充套件和升級更方便。
基於Storm, 針對發現的問題,我們也做了自己的擴充套件 ,比如Storm的Nimbus本身是單點的,對於分散式來說這是很恐怖的事情,所以我們也擴充套件了Nimbus,實現了Nimbus的HA。同時 Nimbus作為Storm的核心排程器,在叢集資源使用率超過一定規模之後,Nimbus會變得越來越慢,任務的提交、終止可能從幾秒鐘慢到三五分鐘的 級別,我們也做了優化,讓Nimbus在高負載的情況下依然效率非常高,降到了秒級。平臺還必須要做到更友好的資源隔離,基於傳統的CGroup解決方 案,我們做了資源的隔離。平臺還必須要解決穩定性的問題,解決叢集的跨機房的容災的問題,我們實現了Storm程式包跨叢集的共享,有一套工具完成任務的 遷移,包含自動的模式和手工的模式。
對於實時計算平臺我們同樣在技術之上 封裝了一個視覺化的產品 方便使用者使用,以告別命令列操作方式的不便。基於京東的許可權體系,開發者可以在平臺上直接上傳任務,可以重啟、管理、檢視任務日誌、可以隨時啟動它、停止 它,包括申請程式包和版本控制,在這個過程當中會有服務目錄體系管理這套業務,有一套全新的審計流程,畢竟所有執行的業務都是線上業務,升級和變動是非常 嚴謹的事情。總的來說,我們用JDBUS解決實時資料接入的問題,用JDQ解決實時資料儲存問題,用JRC實時計算平臺解決實時計算的問題。資料基於這個 平臺算出來之後,最終應用在推薦系統、廣告系統、倉儲系統、配送系統,提升京東的GMA、商家的滿意度或者使用者的滿意度等等。這就是京東在實時資料平臺的 架構和應用。

彥偉:京東實時資料平臺架構設計與實現思路

京東平臺採用比較成熟、比較常用的技術,更多的精力花費在工具或者平臺的穩定性保障上,尤其是當平臺到一定量級之後。比如管理一個Hadoop叢集,在 10臺、100臺規模,和在2000臺、3000臺的規模,各方面的成本是不在一個量級的,對技術的要求也不在一個量級。
實時資料平臺也是這樣,我們快速把平臺搭建起來,隨著京東有越來越多的實時業務在平臺上運轉,我們必須要對工具或者產品有更深層次的理解,才能更 好地保證它的穩定性,更大地發揮它的價值。對於集群系統調優、配置修改等等,要有非常專業的能力才能控制,比方你對Storm的Nimbus有一個非常深 的理解你才能動它,要不然僅僅是使用的程度。這種工具產品的應用,在推出1.0版本的時候相對比較容易。隨著2.0、3.0版本的到來,同時叢集規模越來 越大,你會發現要求的技術深度要求越來越高,也就是說對高階的技術人才需求越來越迫切。
為了解決穩定性,剛開始我們用到了開源的產品,最終發現它還是有侷限性,因為這些東西不是你開發的,所以針對一些關鍵點,我們會在適合的時間推出我們自主研發的產品,用來更大地提升對平臺的控制力。只有有更強的控制力,才能支撐更多的業務。

相關推薦

京東實時資料平臺

JRDW(JD Realtime Data Warehouse)是京東大資料部為了解決公司越來越廣泛的實時業務需求,而推出的一整套技術解決方案,包括資料的實時接入、實時解析、實時傳輸、實時計算和實時查詢等技術環節。通過JRDW來解決實時業務開發中各環節的技術難點,在流程上

實時資料平臺技術選型概要

一、DELETED 1-1 業務背景、業務場景、業務模式 背景: 為了更好的做到個性化服務、使用者體驗提升、智慧分析、風險控制,在大資料離線(批)處理之外,搭建實時(流式)處理平臺迫在眉睫。比如說對實時性要求較高。。。。。。 [批流統一,業界暫時還沒有成熟方案

攜程實時資料平臺演進

攜程最初基於穩定和成熟度選擇了Storm+Kafka,解決了資料共享、資源控制、監控告警、依賴管理等問題之後基本上覆蓋了攜程所有的技術團隊。今年的兩個新嘗試是Streaming CQL(華為開源)和JStorm(阿里開源),意在提升開發效率、效能和處理訊息擁塞能力,目前已

資料平臺核心競爭力:業務敏捷性,實時性,效能

最近在考慮新一年的架構的時候,我就在想一個大資料平臺核心競爭力到底是什麼?每個平臺發展的階段可能不太一樣,所以所需要的核心競爭力不同。但是做架構,做設計的朋友一定要常常思考下你負責的平臺到底核心競爭力是什麼。 我們現在做的平臺不是自用的,是銷售給第三方。我覺得排在前三核

Ebay開源 Pulsar:實時資料分析平臺

作者:汪興朗 汪明明王巧玲   eBay作為全球性的商務平臺和支付行業領先者,擁有海量的使用者行為資料。基於現有的hadoop大資料處理,已經不能夠滿足業務上對實時性的需求。基於eBay過去的大資料處理的經驗和對最新技術的運用,eBay探索出一個對海量的資料流進行實時的收集

京東資料平臺產品體系揭祕

對於剛剛成長起來的京東大資料平臺來說,資料產品並不是一個新鮮事物,2011年自建資料倉庫上線的同時,第一款資料產品排程平臺也一同上線並正式投入使用。在Tiger的指導下,排程平臺無論是UI、功能還是使用者體驗各方面都獲得一致的好評。 排程平臺 訂單交易,倉儲物流等眾多京東

基於Kafka與Spark的實時資料質量監控平臺

微軟的ASG (應用與服務集團)包含Bing,、Office,、Skype。每天產生多達5 PB以上資料,如何構建一個高擴充套件性的data audit服務來保證這樣量級的資料完整性和實時性非常具有挑戰性。本文將介紹微軟ASG大資料團隊如何利用Kafka、Spark以及Elasticsear

TOP100summit:【分享實錄-Microsoft】基於Kafka與Spark的實時資料質量監控平臺

本篇文章內容來自2016年TOP100summit Microsoft資深產品經理邢國冬的案例分享。 編輯:Cynthia 邢國冬(Tony Xing):Microsoft資深產品經理、負責微軟應用與服務集團的大資料平臺構建,資料產品與服務. 導讀:微軟的

資料脫敏介紹(資料平臺 )

資料脫敏(Data Masking),又稱資料漂白、資料去隱私化或資料變形。百度百科對資料脫敏的定義為:指對某些敏感資訊通過脫敏規則進行資料的變形,實現敏感隱私資料 的可靠保護。這樣,就可以在開發、測試和其它非生產環境以及外包環境中安全地使用脫敏後的真實資料集。 可以看到資料脫敏具有幾個關鍵點:

資料來源/資料平臺

【彙總】資料來源/大資料平臺 一、網路趨勢分析   站長工具:5118 | chinaz   指數工具:艾瑞指數 | 百度指數 | 微指數 | 搜狗指數    

資料平臺架構思考

筆者早期從事資料開發時,使用spark開發一段時間,感覺大資料開發差不多學到頭了,該會的似乎都會了。在後來的實踐過程中,發現很多事情需要站在更高的視角來看問題,不然很容易陷入“不識廬山真面目”的境界。最近在思考資料資產管理平臺的建設,進行血緣分析開發,有如下感悟: 大資料平臺從資料層面來說,包括資料本身和元

【福利】送Spark資料平臺視訊學習資料

沒有套路真的是送!! 大家都知道,大資料行業spark很重要,那話我就不多說了,貼心的大叔給你找了份spark的資料。   多囉嗦兩句,一個好的程式猿的基本素養是學習能力和自驅力。視訊給了你們,能不能堅持下來學習,就只能靠自己了,另外大叔每週會不定期更新《每日五分鐘搞定

美團資料平臺

今天給大家介紹的內容主要包括以下四個部分首先是介紹一下美團大資料平臺的架構,然後回顧一下歷史,看整個平臺演進的時間演進線,每一步是怎麼做的,以及一些挑戰和應對策略,最後總結一下,聊一聊我對平臺化的看法。     謝語宸是來自美團的大資料構建平臺的架構師。他在QCon2016北

【備忘】小象視訊教程 Hadoop 2.X資料平臺V3

第1講 :hadoop生態系統以及版本演化 第2講:HDFS 2.0應用場景、原理、基本架構及使用方法 第3講:Yarn應用場景、基本架構與資源排程 第4講: MapReduce 2.0基本原理與架構 第5講 :MapReduce 2.0程式設計實踐(涉及多語言程式設計) 第6講:Hbase應用場

雙11奇蹟背後的資料平臺,不喧譁,自有聲!

00:02:05 成交額超100億00:57:56 成交額超666億01:47:26 成交額超1000億15:49:39 成交額超1682億22:28:37 成交額超2000億 2018年雙11新紀錄2135億 高速跳轉的數字,不斷重新整理的狀態,光纜中狂奔的程式碼,鍵盤上飛舞的手指…

DataPipeline在資料平臺資料流實踐

文 | 呂鵬 DataPipeline架構師 進入大資料時代,實時作業有著越來越重要的地位。本文將從以下幾個部分進行講解DataPipeline在大資料平臺的實時資料流實踐。 一、企業級資料面臨的主要問題和挑戰 1.資料量不斷攀升 隨著網際網路+的蓬勃發展和使用者規模的急劇擴張,企業資

資料平臺SQL編碼開發規範--轉自阿里雲DataWorks

本文向您介紹SQL編碼的基本原則和詳細的編碼規範。 編碼原則 SQL程式碼的編碼原則如下: 程式碼功能完善,健壯。 程式碼行清晰、整齊,具有一定的可觀賞性。 程式碼編寫要充分考慮執行速度最優的原則。 程式碼行整體層次分明、結構化強。 程式碼中應有必要的註釋以

資料平臺hive原生搭建教程

環境準備 centos 7.1系統 需要三臺雲主機: master(8) 作為 client 客戶端 slave1(9) 作為 hive server 伺服器端 slave2(10) 安裝 mysql server 安裝包使用的是官網下載的 將hive上傳到master ,mys

資料平臺--Hadoop原生搭建教程

環境準備: 三臺虛擬機器 master(8)、slave1(9)、slave2(10) centos 7.1、jdk-8u171-linux-x64.tar.gz、hadoop-2.7.3.tar.gz 0x1環境準備 首先先在三臺虛擬機器中建立hadoop資料夾 mdkir /

資料平臺中資源控制在不同作業系統上的實現

大資料平臺中資源控制在不同作業系統上的實現 在大資料迅速發展的今天,很大一部分支援來自於底層技術的不斷髮展,其中非常重要的一點就是系統資源的管理和控制,大資料平臺的核心就是對資源的排程管理,在排程和管理之後如何對這些資源進行控制便成了另一個重要的問題。大資料系統中使用者成千上萬的作業程序