成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

吳維偉:京東大數據的強一致、高可用跨域存儲實踐,及冷熱數據分層存儲實踐

大數據 新聞
隨著業務調整和集群資源整合需求,大數據系統中集群數據遷移復雜混亂。本文將以京東大數據平臺為例,介紹京東近一年在數據分布式存儲和分層存儲上的探索和實踐。

今天的介紹會從下面三點展開:

  • 京東數據平臺架構簡介
  • 跨域存儲
  • 分層存儲

01京東數據平臺架構簡介?

圖片

京東數據平臺的整體架構主要由六部分組成,其中數據存儲作為計算存儲層的底層組件支撐著上游的計算引擎調度,以及更高層的工具層、服務層和應用層。在整個數據平臺架構中,底層數據存儲起到了基建的作用,是整個大數據平臺的基礎。

該數據存儲系統的體量是數EB(1EB=1024PB),有數萬個節點,三地多中心,每天的吞吐量是百PB級別。面對如此大的數據量,京東大數據平臺采用了可視化管理,通過監控系統可快速方便地定位到集群問題,保證了集群的穩定性和服務的高可用。

02 跨域存儲

1. 跨域存儲——問題

圖片

在跨域存儲架構應用之前,跨機房數據的同步主要通過業務方在不同機房之間進行Distcp實現,這種方式便會存在一些隱患問題:

  • 第一個問題:元數據一致性由業務方保證,數據遷移需要業務介入,成本高時間長。
  • 第二個問題:跨機房的流量不受控,影響同步任務,需要借助外部調度系統和存儲。 
  • 第三個問題:產生多份冗余數據,數據共享和同步成本高,比如在不同機房不同數據節點間載入了多份相同數據,導致冗余。
  • 第四個問題:不具備多機房集群的容災系統,未充分利用多機房優勢。

2. 跨域存儲——架構

圖片

基于以上,京東大數據平臺在底層存儲模塊設計了一個跨域數據同步功能來解決歷史數據存儲同步帶來的問題。選擇在底層解決該問題不僅可以把控跨域數據的一致性,還提供了業務無感知的跨域數據同步與分享功能,以減少業務方重復工作,使存儲系統具備跨域遷移和跨域容災的能力。

該京東跨域存儲架構的主要思路是通過“全量存儲+全網拓撲”,實現跨機房故障域,最終實現大數據關鍵數據異地容災及跨機房存儲能力。

這個項目的主要挑戰有:

  • 單集群規模龐大,達到數萬個。
  • 跨域補塊與流動,存在性能瓶頸。
  • 跨域心跳與塊匯報,遇到限制。

該方案的主要優勢有:

  • 強一致性:全局文件一致性,數據自動同步避免數據參差和冗余。
  • 復用原理:自主跨機房補塊,跨域數據補塊由后臺自動進行。
  • 易遷移:數據異動成本低,將數據與業務分開,降低成本,提高效率。
  • 高可用:支持跨機房切換,提高機房容災率,增加數據安全性。

3. 跨域存儲——跨域數據流

圖片

在實現跨域存儲過程中,采用了兩種數據流方式

  • 異步數據流?

?將數據先寫到本地機房,再通過namenode(NN)自動進行跨域同步。該數據傳輸方式寫入性能與現有未跨域場景一致,同步時延優于 distcp 方案。

  • 同步數據流

建立pipeline數據管道,串聯機房全部datanode(DN),一次將數據同步。該種傳輸方式針對數據一致性和可靠性要求高的業務。

4. 跨域存儲——拓撲與機房感知

圖片

拓撲與機房感知是解決“節點定位”這一跨域存儲核心問題的關鍵模塊?;谠撃K可控制數據塊分布和控制客戶端流量。該模塊主要從兩個方面解決問題

  • 拓撲管理

通過改造節點的拓撲方式,在拓撲管理中增加一個機房維度,同時選塊邏輯要基于全網拓撲模塊進行適配,以兼容多機房。

  • 機房感知

針對跨域版本的客戶端,可通過在RPC頭部攜帶機房信息,以便識別和檢索;針對不支持跨域版本的客戶端,可通過京東網絡服務團隊提供的ip映射到機房的服務, 實現客戶端對應機房的檢索和查詢。

5. 跨域存儲——跨域標識

圖片

跨域標識模塊是解決“數據跨機房存放”問題的關鍵設計,我們采用一個支持副本和EC的屬性標簽來描述數據的跨域屬性。例如A:3,B:2,C:2,A,status,[period],[start,end],即表示在A機房有3個副本;B機房有2個副本;C機房有2個副本;A機房是跨域傳輸的主機房;[status]為標識存量數據內部流轉的狀態,包括“init、processing、done、invalid”四個狀態;[period]用于跨域機房配置的時間戳,描述跨域數據的生命周期策略;[start,end]是另外一種數據共享生命周期配置方式,數據共享起止時間可通過絕對時間指定。

EC包含數據塊和校驗塊兩種類型, 相對于副本模式其跨域同步的支持更加復雜,需要支持在同機房內的數據重構和重構條件不具備時的跨域數據拷貝,以減少 EC 數據在跨域場景下的跨域同步流量。

加快整體跨域數據處理的速度,采用了三種方法:

  • 將元數據固化在XATTR上
  • 在內存上構建了Inode Proto
  • 在每個數據塊上,創建塊屬性標識

6. 跨域存儲——跨域補塊及流控

圖片

針對跨域補塊和流控,采用了三種方法保證了性能

  • 在處理跨域補塊時遵從的原理是跨域處理與原有流程隔離,保證新增的跨域處理流程不影響原先同機房的補塊處理,在遇到機房網絡中斷等極端情況可以保障單機房元數據服務可用。
  • 新增異步跨域更新器,結合跨域標簽屬性,實現HA切換接續補塊,解決存量數據問題。
  • 采用CR-Checker程序替代原有的DistCopy任務,可以將原先的跨集群同步任務平滑升級成跨域同步任務,最大限度減少跨域架構升級對原有存量任務的沖擊。

跨域補塊的邏輯如右圖所示。對于增量的數據,分為兩個模塊,同機房塊的增量數據通過原有的RedundancyMonitor進行補塊,對于跨域塊會放置到CrossRegionRedundancyMonitor模塊進行補塊。新增的更新器主要處理跨域配置和目錄變更等跨域標簽變更場景,經過跨域要求判斷后加入到CrossRegionRedundancyMonitor模塊進行補塊處理。

圖片

跨域流控分為四個部分

  • 跨域補塊流控,通過配置帶寬嚴格控制跨域帶寬。
  • 讀寫優先客戶端同機房DN,基于前面介紹的機房感知功能,去匹配客戶端和DN所屬機房,確保只讀取同機房的DN數據,避免產生跨域流量。
  • 跨域讀寫流控,針對沒有攜帶跨域標識的數據有跨域客戶端訪問時,對新版本用戶端和老版本用戶端有兩種處理方法。對新版本客戶端,會在NN做流量的統計和背壓處理,保證讀寫不會影響核心專線的流量帶寬;對于老版本客戶端,會在DN處對流量進行統計和上報,如果超過限額后,會進行背壓處理。
  • Balancer機房內部均衡,在同機房節點上進行數據均衡。

03分層存儲?

1. 分層存儲——問題

圖片

數據分層存儲是為了解決原有框架所存在的問題

  • 冷熱數據未區分對待。例如實時核心數據與舊數據未區分,導致無法做核心數據的加速處理。
  • 不同硬件類型未區分對待。存儲系統長期演進,集群內存在多種不同類型的存儲機型,之前版本對不同存儲機型未加區分處理,無法充分利用硬件特性。
  • 數據治理需要協同用戶處理,存在較大工作量,推進困難。

2. 分層存儲

圖片

針對以上問題,我們需要在分層存儲上完成以下功能要求:實現數據自動整理,將冷熱數據通過打標簽進行分級處理——分為Hot、Warm、Cold。將不同硬件機型也進行分級處理——分為SSD、HDD、高密存儲。將實時熱數據與性能較好的DN相匹配,存儲在SSD的硬件上,而冷數據則存儲在高密存儲硬件上,實現資源合理搭配。

3. 分層存儲——使用場景

圖片

圖片

針對上述數據分層存儲的實現方案,主要有以下三個應用場景:

  • 存儲加速?

對熱數據和核心數據提供加速手段,分時分層。例如在夜晚核心時間段,將其分為三個時間段,在對應時段將該時段的熱數據搬移到高性能的存儲機器上,這種處理方法可以在核心時段賦能更多的業務數據。

  • 冷存歸檔?

僵冷數據存儲到高密存儲機器上,優化單位存儲成本。業務方通過配置集群維度的動態規則,完成冷熱數據的自動分配,將冷數據存儲到高密數據上,對于過度僵冷的數據會直接轉化為EC(Erasure Coding),進一步降低存儲成本。

  • 邏輯子集群?

支持按業務/目錄維度劃分邏輯子集群,實現數據隔離。針對新上線的機型,可采用該邏輯去摸索其性能;針對服務器擴容,可對新服務器增加寫權重,提高存入數量。對于應急情況,可快速分離出故障機器,不影響整體的存量數據可靠性。

4. 分層存儲——架構

圖片

上面介紹了分層存儲的邏輯和應用場景,下面將介紹分層存儲的架構,整個框架主要是在NN內部實現的:

  • 分層策略配置:提供外部API下發及內部配置。
  • 分層配置API:提供分層策略下發接口,外部可通過離線數據分析及業務側下發分層邏輯。
  • 內置分層策略:可配置和動態刷新的分層策略,默認通過訪問監控器統計數據進行LRU分層策略配置。
  • 標簽管理器:實現目錄標簽和節點標簽管理,指導選塊模塊及分布校驗器等模塊進行數據遷移。
  • 數據分布校驗器:實現對新增數據的分布校驗,指導數據按照標簽進行分布。
  • 存量數據滿足器:對存量數據進行掃描驗證,指導存量數據塊遷移;實現數據生命周期管理功能。

5. 分層存儲——核心設

圖片

分層存儲的核心設計,可以分為兩個模塊,一個是元數據上根據目錄樹進行標簽管理,對數據進行冷熱數據分配;另一塊是節點拓撲樹,采用虛擬多拓撲樹在邏輯上將不同標簽的節點進行區分,不同標簽類型會有自己獨立的拓撲樹,實現更高效的選節點性能。虛擬拓撲樹有兩種更新方式,分別為根據節點權重進行異步更新和上下線數據進行同步更新。

圖片

增量數據和存量數據在處理流程上有以下差異

  • 增量數據:對于寫入請求,先判斷標簽,然后根據匹配對應節點,寫入數據。
  • 存量數據:后臺數據分布校驗會掃描數據的標簽,基于虛擬拓撲樹匹配對應的節點,然后完成數據遷移或轉換。

04 問答?

Q1:數據遷移到高密集群是通過什么方法,基于什么策略?

A1:我們是基于分層功能來實現數據遷移,整體的處理邏輯是基于動態規則的設定,將數據分為冷、溫、熱三種類型。針對溫數據采用類 Balancer 的實現方式,將數據搬移到高密存儲上;針對冷數據我們是在 HDFS 內部實現一套簡單的調度系統,將掃描發現的冷數據發送給DN,由 DN實現數據的搬移和原地轉EC。

Q2:京東有做HDFS計費的考慮嗎,有哪些維度?

A2:計費功能也是我們下一步要重點投入的方向,整體的思路是通過計費功能指導業務方更合理高效的使用存儲集群。目前我們將寫操作和讀操作進行分級,因為寫操作對NN的壓力比較大,因此寫操作的計費權重會超過讀操作計費權重,比例大概是 10 倍左右。在NN側會將計費信息匯總到HDFS Router,做一個統一全集群的計費匯總統計。HDFS Router會定期將統計信息下發給NN,NN基于統計信息對用戶訪問進行分級處理,超過預設額度的業務方訪問會被降級處理。

Q3:NN的壓力會不會很大,對NN有何優化處理?

A3:在NameNode 內部新增模塊時,會實時統計各模塊對 NameNode 內部核心鎖的占用時間,當新增模塊的占鎖時間超過設定閾值,程序會動態縮減模塊的占鎖時間,保證不影響NameNode對外的吞吐量。

今天的分享就到這里,謝謝大家。

責任編輯:張燕妮 來源: DataFunTalk
相關推薦

2024-10-15 08:14:51

2023-01-12 15:25:51

Curve數據存儲

2024-05-29 07:56:41

2018-06-07 16:33:31

大數據冷熱數據存儲平臺

2014-08-08 15:34:49

京東大數據技術

2017-08-07 18:09:04

強一致高可用自動容災

2021-01-20 10:53:41

云計算云存儲云遷移

2018-10-08 13:52:28

Android數據安全存儲安全

2017-05-25 09:45:35

2017-03-24 16:54:52

PhxSQL微信開源MySQL

2017-11-02 10:23:48

冷熱分層存儲

2017-01-17 10:25:06

HBase集群運維

2018-12-08 11:14:00

京東

2022-07-04 15:03:24

財經支付數據庫存儲

2024-02-22 08:35:49

2019-11-21 10:19:45

數據應用場景系統

2011-07-25 17:38:32

數據存儲一致性模型

2018-05-25 09:31:00

數據存儲高可用

2015-12-08 10:00:18

大數據架構實踐

2013-08-08 10:07:43

大數據存儲結構化數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产欧美一区二区 | 国产精品久久性 | 中日韩av| 天天草天天操 | 亚洲国产中文字幕 | 在线视频亚洲 | 午夜影院黄 | 一级片在线观看 | 91成人免费观看 | 亚洲成人免费 | 欧美精品片| 一级做a爰片性色毛片16 | www.狠狠干| 成人午夜性成交 | 午夜精品久久久久久久99黑人 | 欧洲免费毛片 | 伦理二区 | 亚洲一区二区三区免费视频 | a欧美 | 久久精品国产99国产 | 久久久国产一区二区三区 | www.99精品| 国产精品久久久久一区二区三区 | 日韩电影a | 国产精品99久久久精品免费观看 | av网站观看 | 伊人狠狠操 | 97精品久久| 亚洲欧美日韩系列 | 久久91精品国产一区二区 | 在线免费观看成人 | 久久久久久久久久久福利观看 | 日本国产一区二区 | 久久亚洲一区二区 | 久久午夜视频 | 亚洲三区在线观看 | 亚洲精品一区二区三区蜜桃久 | 国产成人精品一区二区三区网站观看 | 免费毛片网 | 免费观看成人鲁鲁鲁鲁鲁视频 | 欧美日韩成人影院 |