騰訊雲大資料實戰案例
內容來源:2017年5月20日,騰訊高階軟體工程師吳友強在“中生代技術沙龍系列之網際網路大資料”進行《騰訊雲大資料實戰》演講分享。IT 大咖說作為獨家視訊合作方,經主辦方和講者審閱授權釋出。
閱讀字數:1954 | 3分鐘閱讀
嘉賓演講視訊回顧及PPT,請點選:http://t.cn/RgMHJEC
摘要
騰訊雲是騰訊公司傾力打造的面向廣大企業和個人的公有云平臺。騰訊高階軟體工程師吳友強將為我們分享大資料在騰訊雲的實踐。
一、TDF(資料工坊)簡介
TDF簡介
源於騰訊雲數智大資料套件的輕量雲上大資料產品,提供基於SQL的大資料計算框架。
適用於需要動態靈活獲取大資料計算能力進行批量計算、日誌處理或資料倉儲應用的場景。
因為公有云上的使用者需要簡單,所以要有一個視覺化的整合開發環境,在這環境中可以進行資料血緣管理、工程/工作流管理、使用者管理和告警/日誌。通過一些工具把資料匯入到資料儲存裡面,然後對資料進行處理,最終輸出資料。下層的任務和資源排程是用來排程使用者的任務在各個資源上執行起來。底層就是騰訊雲的基礎設施。
二、CDP(資料管道)實現詳解
CDP整體架構-設計
上圖是我們剛開始在開發之前做的設計。最左邊有很多客戶的資料點,比如log、DB Binlog、自建的Kafka以及自定義資料。我們會利用一些工具開發一個Flume外掛,幫助它把資料上雲。
資料到達中間部分,對資料進行校驗和處理。處理完成後根據使用者的需求通過外掛的方式實時匯入到TDF、COS或者其它儲存裡面。
CDP整體架構-目前
上圖是目前我們已經實施的工作。我們自己開發了一個Flume外掛,把資料實時傳送到騰訊公有云的資料接收器endpoint上。資料接收器會根據使用者的選擇來決定用Kafka還是CKafka。CKafka也是騰訊雲內部自行研發的一套相容轉換協議的訊息系統,基於C++開發,效能方面會比原生的提升很多。把資料匯入到Nifi裡進行二次開發,最終導到Hive中。
Flume簡介
FlumeNG是一個分散式、可靠、可用的系統。它能夠將不同資料來源的海量日誌進行高效收集、聚合、移動,最後儲存到一箇中心化資料儲存系統中。由原來的Flume OG到現在的Flume NG,進行了架構重構,並且現在NG版本完全不相容原來的OG版本。經過架構重構後,Flume NG更像是一個輕量級的小工具,非常簡單,容易適應各種方式日誌收集,並支援failover和負載均衡。
Flume的架構主要有一下幾個核心概念:
Event:一個資料單元,帶有一個可選的訊息頭。
Flow:Event從源點到達目的點的遷移的抽象。
Client:操作位於源點處的Event,將其傳送到Flume Agent。
Agent:一個獨立的Flume程式,包含元件Source、Channel、Sink。
Source:用來消費傳遞到該元件的Event。
Channel:中轉Event的一個臨時儲存,儲存有Source元件傳遞過來的Event。
Sink:從Channel中讀取並移除Event,將Event傳遞到Flow Pipeline中的下一個Agent(如果有的話)。
Flume外掛
Flume支援外掛開發,最簡單的方法就是直接拷貝已有外掛進行改造。
我們提供的endpoint需要許可權驗證,主要是基於騰訊雲的一些帳號,通過這個方式可以實時地在客戶端進行加密或格式化的儲存。
首先我們是多使用者的系統,其次要防止使用者資料量過大。通過資料大小限制能夠滿足90%以上的使用者需求,而對於資料大小的限制是根據自身配置來決定的。
在傳輸過程中我們採用了一些自定義的協議,這個協議基於avro進行格式化,主要是便於對資料進行序列化和反序列化。
Kafka客戶端改造支援CKafka
CKafka(Cloud Kafka)是一個分散式的、高吞吐量、高可擴充套件性的訊息系統,100%相容開源 Kafka API(0.9版本)。Ckafka 基於釋出/訂閱模式,通過訊息解耦,使生產者和消費者非同步互動,無需彼此等待。Ckafka 具有資料壓縮、同時支援離線和實時資料處理等優點,適用於日誌壓縮收集、監控資料聚合等場景。
CKafka主要開放給公有云上的部分VIP使用者使用,VIP只能繫結對應的虛擬機器,這樣保證了它的安全性。但我們是直接使用內網IP訪問的,所以我們需要調整客戶端的互動協議,通過某種手段把VIP替換成真實的IP,以保證資料的通暢。還有自定義的管理API和封裝Java SDK。
NiFi
ApacheNiFi 是一個易於使用、功能強大而且可靠的資料處理和分發系統。Apache NiFi 是為資料流設計。它支援強大且可高度配置的基於有向圖的資料路由、轉換和系統中介邏輯,支援從多種資料來源動態拉取資料。Apache NiFi原來是NSA的一個專案,現在開源出來,由Apache基金會進行管理。
主要特性:
基於web的使用者介面:無縫體驗設計、控制和監控。
高度可配置:資料丟失容錯和保證交付;低延遲和高吞吐量;動態優先順序;流可以在執行時修改;背壓(Back presure)。
資料來源:從始至終跟蹤資料流。
為擴充套件設計:構建自己資料處理器;支援快速開發和有效的測試。
安全:支援SSL、SSH、HTTPS加密內容等等;多租戶授權和內部授權/策略管理。
Hive外掛
獲取後設資料:獲取Hive表結構資訊,是否支援Streaming API寫入。
資料寫入:insert插入,支援多分割槽批量插入;支援streaming;可以直接寫hdfs。
CDP未來?
1、支援etl功能,對前端進行分組和做一些實時的計算。
2、支援實時的計算和分析。使用者需要可以直接拿到結構去在前端進行展示,而不是再到其它系統上去做計算和分析。
3、支援實時SQL。實時計算對部分使用者來說使用成本可能會更高,大部分做資料統計的人員對SQL的掌握度會更高。實時SQL是對資料進行SQL的查詢計算。
4、視覺化影像操作介面。使用者的需求越來越多樣化,騰訊雲上的很多產品都需要用到資料來做,我們希望以這種方式讓使用者可以自己選擇資料來源。
我今天的分享就到這裡,感謝聆聽!
相關文章
- 騰訊雲EMR大資料實時OLAP分析案例解析大資料
- 實戰案例丨車企資料上雲,騰訊雲如何幫助車企築牢雲上防線?
- 騰訊雲專訪滴滴CTO張博:生死戰役,大資料、雲服務助跑大資料
- 遊戲資料分析的三大實戰案例深度解讀遊戲
- 如何理解騰訊雲資料庫戰略升級?資料庫
- 實戰案例:醫療臨床大資料實時流日誌分析大資料
- 3.0 阿里雲大資料專案實戰開發阿里大資料
- 網際網路大資料日誌收集離線實時分析實戰案例大資料
- ElasticSearch 億級資料檢索案例實戰Elasticsearch
- 實戰案例|拒絕資訊洩露,騰訊雲助力電商對抗網路爬蟲爬蟲
- 騰訊雲 雲資料庫遷移資料庫
- Python技術棧與Spark交叉資料分析雙向整合進階實戰–大資料ML樣本集案例實戰PythonSpark大資料
- Python技術棧與Spark交叉資料分析雙向整合技術實戰--大資料ML樣本集案例實戰PythonSpark大資料
- Python技術棧與Spark交叉資料分析雙向整合進階實戰--大資料ML樣本集案例實戰PythonSpark大資料
- NoSQL 資料庫案例實戰 -- MongoDB資料備份、恢復SQL資料庫MongoDB
- 騰訊雲 CHDFS — 雲端大資料存算分離的基石大資料
- 騰訊遊戲效能實戰案例分享之幀率陡變遊戲
- 【雲端大資料實戰】大資料誤區、大資料處理步驟分析大資料
- 權威認可!騰訊雲資料安全中臺入選2021先鋒實踐案例
- Python環境安裝及資料基本預處理-大資料ML樣本集案例實戰Python大資料
- 永洪科技與騰訊雲達成戰略合作,共同發力企業大資料市場大資料
- 技術集錦 | 大資料雲原生技術實戰及最佳實踐系列大資料
- 大資料資產管理在騰訊遊戲的實踐大資料遊戲
- 大資料實戰:電商該如何利用大資料獲取流量?大資料
- 雲資料庫FinOps實戰覆盤資料庫
- 【大資料】MapReduce開發小實戰大資料
- 信用卡欺詐行為邏輯迴歸資料分析-大資料ML樣本集案例實戰邏輯迴歸大資料
- 大資料應用案例大資料
- 七牛大資料平臺的實時資料分析實戰大資料
- 騰訊雲資料庫生態經資料庫
- 騰訊雲資料庫的向上之路資料庫
- 被低估的騰訊雲資料庫資料庫
- 案例|政務大資料平臺資料安全建設實踐大資料
- 騰訊雲ClickHouse如何實現自動化的資料均衡?
- 騰訊雲王義成 騰訊雲資料庫賦能企業釋放資料生產力資料庫
- 騰訊雲聯手cSphere希雲推Docker免費實戰課程Docker
- Spark SQL:Hive資料來源複雜綜合案例實戰SparkSQLHive
- Spark SQL:JDBC資料來源複雜綜合案例實戰SparkSQLJDBC