0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于HBase的工業(yè)大數(shù)據(jù)存儲實戰(zhàn)

格創(chuàng)東智 ? 2018-12-27 22:17 ? 次閱讀


本文作者:格創(chuàng)東智大數(shù)據(jù)工程師王子超(轉載請注明作者及來源)




隨著工業(yè)4.0時代的到來,工業(yè)互聯(lián)網(wǎng)和企業(yè)的智能化、信息化都將不斷推進,傳統(tǒng)的工業(yè)實時數(shù)據(jù)庫和關系數(shù)據(jù)庫已經(jīng)難以完全勝任工業(yè)大數(shù)據(jù)的存儲,HBase為代表的NoSQL數(shù)據(jù)庫正在蓬勃發(fā)展,其完全分布式特征、高性能、多副本和靈活的動態(tài)擴展等特點,使得HBase在工業(yè)大數(shù)據(jù)的存儲上擁有強大的優(yōu)勢,打破了流程工業(yè)生產(chǎn)中的"數(shù)據(jù)壁壘"效應的瓶頸,可以促進工業(yè)生產(chǎn)水平和生產(chǎn)管理水平的提高。本期格物匯,就來給大家介紹HBase數(shù)據(jù)庫及格創(chuàng)東智相關實戰(zhàn)案例。


了解HBase

HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術可在廉價PC Server上搭建起大規(guī)模結構化存儲集群。HBASE的目標是存儲并處理大型的數(shù)據(jù),更具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數(shù)據(jù)。

HBASE是GoogleBigtable的開源實現(xiàn),但是也有很多不同之處。比如:Google Bigtable使用GFS作為其文件存儲系統(tǒng),HBASE利用HadoopHDFS作為其文件存儲系統(tǒng);Google運行MAPREDUCE來處理Bigtable中的海量數(shù)據(jù),HBASE同樣利用Hadoop MapReduce來處理HBASE中的海量數(shù)據(jù);Google Bigtable利用Chubby作為協(xié)同服務,HBASE利用Zookeeper作為協(xié)同服務。

與傳統(tǒng)數(shù)據(jù)庫的相比,HBASE具備多重優(yōu)勢

1)線性擴展,隨著數(shù)據(jù)量增多可以通過節(jié)點擴展進行支撐;

2)數(shù)據(jù)存儲在hdfs上,備份機制健全;

3)通過zookeeper協(xié)調查找數(shù)據(jù),訪問速度快。

HBase實戰(zhàn)案例

為了更好的介紹 HBase 在人工智能場景下的使用,下面我們以某半導體顯示企業(yè)為案例,給大家分析格創(chuàng)東智大數(shù)據(jù)團隊如何利用 HBase 設計出一個快速查找面板特征的系統(tǒng)。


目前,該公司的業(yè)務場景里面有很多面板相關的特征數(shù)據(jù),每張面板數(shù)據(jù)大概 3.2k。這些面板數(shù)據(jù)又被分成很多組,每個面板特征屬于某個組。組和面板的數(shù)據(jù)分布如下:

——43%左右的組含有1張面板數(shù)據(jù);

——47%左右的組含有 2 ~9張面板數(shù)據(jù);

——其余的組面板數(shù)范圍為 10 ~ 10000張。


現(xiàn)在的業(yè)務需求主要有以下兩類:

——根據(jù)組的 id 查找該組下面的所有面板數(shù)據(jù);

——根據(jù)組 id +面板id 查找某個面板的具體數(shù)據(jù)。

原有方案:MySQL+OSS

之前業(yè)務數(shù)據(jù)量比較小的情況使用的存儲主要為 MySQL 以及 OSS(對象存儲)。相關表主要有面板組表group和面板表face。表的格式如下:


group表:

group_idsize
12


glass表:

glass_idgroup_idfeature
"TB7B3695BA05"1"CASBA"


其中 feature(特征)大小為3.2k,是二進制數(shù)據(jù) base64 后存入的,這個就是真實的面板特征數(shù)據(jù)?,F(xiàn)在面板組 id 和面板id 對應關系存儲在MySQL 中,對應上面的 group 表;面板 id 和面板相關的特征數(shù)據(jù)存儲在 OSS 里面,對應上面的 face 表。

因為每個面板組包含的玻璃特征數(shù)相差很大(1 ~ 10000),所以基于上面的表設計,我們需要將面板組以及每張面板特征id存儲在每一行,那么屬于同一個面板組的數(shù)據(jù)在MySQL 里面上實際上存儲了很多行。比如某個組id對應的特征數(shù)為10000,那么需要在MySQL 里面存儲 10000 行。

我們如果需要根據(jù)面板組 id 查找該組下面的所有面板,那么需要從 MySQL 中讀取很多行的數(shù)據(jù),從中獲取到組和面板對應的關系,然后到 OSS 里面根據(jù)面板id獲取所有相關的特征數(shù)據(jù)。


這樣的查詢導致鏈路非常長。從上面的設計可看出,如果查詢的組包含的面板張數(shù)比較多的情況下,那么我們需要從 MySQL 里面掃描很多行,然后再從 OSS 里面拿到這些特征數(shù)據(jù),整個查詢時間在10秒左右,遠遠不能滿足現(xiàn)有業(yè)務快速發(fā)展的需求。


HBase解決方案:

MySQL + OSS的設計方案有兩個問題:第一,原本屬于同一條數(shù)據(jù)的內容由于數(shù)據(jù)本身大小的原因無法存儲到一行里面,導致后續(xù)查下需要訪問兩個存儲系統(tǒng);第二,由于MySQL不支持動態(tài)列的特性,所以屬于同一個面板組的數(shù)據(jù)被拆成多行存儲。


針對這兩個問題,格創(chuàng)東智的大數(shù)據(jù)團隊進行了分析,認為這是HBase 的典型場景,原因如下:

——HBase 擁有動態(tài)列的特性,支持萬億行,百萬列;

——HBase 支持多版本,所有的修改都會記錄在 HBase 中;

——HBase 2.0 引入了MOB(Medium-Sized Object)特性,支持小文件存儲。


HBase 的 MOB 特性針對文件大小在 1k~10MB 范圍的,比如圖片,短視頻,文檔等,具有低延遲,讀寫強一致,檢索能力強,水平易擴展等關鍵能力。


格創(chuàng)東智的大數(shù)據(jù)團隊使用這三個功能重新設計上面 MySQL + OSS 方案。結合應用場景的兩大查詢需求,將面板組 id 作為 HBase 的 Rowkey,在創(chuàng)建表的時候打開 MOB 功能,如下:

create'glass',{NAME=>'c',IS_MOB=>true,MOB_THRESHOLD=>2048}

上面我們創(chuàng)建了名為 glass 的表,IS_MOB屬性說明列簇 c 將啟用 MOB 特性,MOB_THRESHOLD是 MOB 文件大小的閾值,單位是字節(jié),這里的設置說明文件大于 2k 的列都當做小文件存儲。大家可能注意到上面原始方案中采用了 OSS 對象存儲,那我們?yōu)槭裁床恢苯邮褂?OSS 存儲面板特征數(shù)據(jù)呢,如果有這個疑問,可以看看下面表的性能測試:


對比屬性對象存儲云 HBase
建模能力KVKV、表格、稀疏表、SQL、
全文索引、時空、時序、圖查詢
查詢能力前綴查找前綴查找、過濾器、索引
性能優(yōu)優(yōu),特別對小對象有更低的延遲;在復雜
查詢場景下,比對象存儲有10倍以上的性能提升
成本按流量,請求次數(shù)計費,托管式,在高并發(fā),高吞吐場景有更低的成本
適合訪問頻率低的場景
擴展性優(yōu)優(yōu)
適用對象范圍通用<10MB


StringCF_DEFAULT="c";根據(jù)上面的對比,使用 HBase MOB特性來存儲小于10MB的對象相比直接使用對象存儲有一些優(yōu)勢。
我們現(xiàn)在來看看具體的表設計,使用面板id作為列名。我們只使用了HBase 的一張表就替換了之前方面的三張表!雖然我們啟用了 MOB,但是具體插入的方法和正常使用一樣,代碼片段如下:

Putput=newPut(groupId.getBytes());
put.addColumn(
CF_DEFAULT.getBytes(),glassId1.getBytes(),feature1.getBytes());
put.addColumn(
CF_DEFAULT.getBytes(),glassId2.getBytes(),feature2.getBytes());
……
put.addColumn(
CF_DEFAULT.getBytes(),glassIdn.getBytes(),featuren.getBytes());
table.put(put);

用戶如果需要根據(jù)面板組id獲取所有面板數(shù)據(jù),可以使用下面方法:

Getget=newGet(groupId.getBytes());
Resultre=table.
get(get);

這樣我們可以拿到某個組id對應的所有面板數(shù)據(jù)。如果需要根據(jù)組id+面板id查找某個面板的具體數(shù)據(jù),看可以使用下面方法:

Getget=newGet(groupId.getBytes());
get.addColumn(CF_DEFAULT.getBytes(),glassId1.getBytes())
Resultre=table.
get(get);

經(jīng)過上面的改造,在2臺 HBaseWorker 節(jié)點內存為32GB,核數(shù)為8,每個節(jié)點掛載四塊大小為 250GB 的 SSD 磁盤,并寫入100W 行,每行有1W列,讀取一行的時間在100ms-500毫秒左右。在每行有1000個face的情況下,讀取一行的時間基本在20-50毫秒左右,相比之前的10秒提升200~500倍。

從下面這張對比表,我們可以清楚的看到HBase方案的巨大優(yōu)勢。

對比屬性對象存儲MySQL+對象存儲HBase MOB
讀寫強一致YNY
查詢能力
查詢響應時間
運維成本
水平擴展YYY


現(xiàn)在,我們已經(jīng)將面板特征數(shù)據(jù)存儲在Cloudera HBase 之中,這個只是數(shù)據(jù)應用的第一步,如何將隱藏在這些數(shù)據(jù)背后的價值發(fā)揮出來?這就得借助于數(shù)據(jù)分析,在這個場景就需要采用機器學習的方法進行操作。我們可以借助大數(shù)據(jù)分析工具Spark 對存儲于 HBase 之中的數(shù)據(jù)進行分析,而且 Spark 本身支持機器學習的。最后,用戶就可以通過訪問 HBase 里面已經(jīng)挖掘好的特征數(shù)據(jù)進行其他的應用了。



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    工業(yè)數(shù)據(jù)中臺的功能和應用場景

    工業(yè)數(shù)據(jù)中臺是一個集數(shù)據(jù)采集、存儲、處理、分析和應用于一體的綜合性平臺,其主要功能和應用場景如下: 功能 1.數(shù)據(jù)采集與接入: 支持多種
    的頭像 發(fā)表于 07-04 16:18 ?186次閱讀

    大數(shù)據(jù)采集系統(tǒng)分為幾類

    大數(shù)據(jù)采集系統(tǒng)是大數(shù)據(jù)生態(tài)系統(tǒng)中的重要組成部分,它負責從各種數(shù)據(jù)源收集、整合和存儲數(shù)據(jù)。根據(jù)不同的數(shù)據(jù)
    的頭像 發(fā)表于 07-01 15:44 ?1035次閱讀

    工業(yè)大數(shù)據(jù)云平臺在設備預測性維護中的作用

    ,只有保證設備的安全穩(wěn)定運行才能保障生產(chǎn)的持續(xù),質量的可靠,提升企業(yè)產(chǎn)品競爭力。 因此,企業(yè)就需要加強對設備狀況的及時把握,并一定程度上實現(xiàn)工業(yè)設備預測性維護。為此,數(shù)之能提供的工業(yè)大數(shù)據(jù)云平臺可以全面接入
    的頭像 發(fā)表于 06-28 15:31 ?156次閱讀

    HBase集群數(shù)據(jù)在線遷移方案探索

    一、背景 訂單本地化系統(tǒng)目前一個月的訂單的讀寫已經(jīng)切至jimkv存儲,對應的HBase集群已下線。但存儲全量數(shù)據(jù)HBase集群仍在使用,計
    的頭像 發(fā)表于 06-12 11:54 ?1062次閱讀
    <b class='flag-5'>HBase</b>集群<b class='flag-5'>數(shù)據(jù)</b>在線遷移方案探索

    工業(yè)大模型的五個基本問題

    工業(yè)業(yè)大模型是大模型為賦能工業(yè)應用所產(chǎn)生的產(chǎn)業(yè)新形態(tài),是制造業(yè)數(shù)字化轉型3.0的重要載體,是一個新質體。
    發(fā)表于 04-23 16:04 ?553次閱讀
    <b class='flag-5'>工業(yè)大</b>模型的五個基本問題

    工業(yè)大數(shù)據(jù)發(fā)展面臨的問題

    工業(yè)大數(shù)據(jù)作為工業(yè)與數(shù)字經(jīng)濟之間的橋梁紐帶,對加快工業(yè)數(shù)字化轉型、推進數(shù)實融合,支撐新型工業(yè)化建設意義重大。
    的頭像 發(fā)表于 04-16 11:52 ?390次閱讀

    大數(shù)據(jù)時代的存儲革命:理解分布式存儲系統(tǒng)

    在如今的大數(shù)據(jù)時代,全球數(shù)據(jù)量正在以指數(shù)型增長。據(jù)國際數(shù)據(jù)公司(IDC)預測,到2025年,全球數(shù)據(jù)量將增至175 ZB。這種海量的數(shù)據(jù)
    的頭像 發(fā)表于 03-07 15:40 ?322次閱讀

    分布式存儲與計算:大數(shù)據(jù)時代的解決方案

    分布式存儲和計算技術應運而生,并迅速成為處理大數(shù)據(jù)的首選方案。本文將深入探討分布式存儲和計算的概念、優(yōu)勢及其在各個領域的應用情況。 1.分布式存儲和計算的概念與優(yōu)勢 分布式
    的頭像 發(fā)表于 03-07 14:42 ?565次閱讀

    大數(shù)據(jù)技術是干嘛的 大數(shù)據(jù)核心技術有哪些

    大數(shù)據(jù)技術是指用來處理和存儲海量、多類型、高速的數(shù)據(jù)的一系列技術和工具。現(xiàn)如今,大數(shù)據(jù)已經(jīng)滲透到各個行業(yè)和領域,對企業(yè)決策和業(yè)務發(fā)展起到了重要作用。本文將詳細介紹
    的頭像 發(fā)表于 01-31 11:07 ?2348次閱讀

    基于工業(yè)大數(shù)據(jù)和物聯(lián)網(wǎng)的智能工廠如何實現(xiàn)

    在中國制造2025及工業(yè)4.0技術的加持下,離散制造業(yè)的流程工業(yè)實現(xiàn)生產(chǎn)設備網(wǎng)絡化、生產(chǎn)數(shù)據(jù)可視化、生產(chǎn)現(xiàn)場無人化等現(xiàn)金數(shù)據(jù)應用,做到橫向與縱向的集成,實現(xiàn)邊緣到云端的
    的頭像 發(fā)表于 12-25 15:32 ?486次閱讀

    誠邀報名|黃向東邀您共話開源工業(yè)物聯(lián)網(wǎng)大數(shù)據(jù)

    2023 開放原子開發(fā)者大會 OPEN ATOM DEVELOPERS CONFERENCE 開源工業(yè)物聯(lián)網(wǎng)大數(shù)據(jù)分論壇 2023.12.17 物聯(lián)網(wǎng)與大數(shù)據(jù)技術的飛速進步,為工業(yè)數(shù)字
    的頭像 發(fā)表于 12-20 16:54 ?290次閱讀
    誠邀報名|黃向東邀您共話開源<b class='flag-5'>工業(yè)</b>物聯(lián)網(wǎng)<b class='flag-5'>大數(shù)據(jù)</b>

    誠邀報名|黃向東邀您共話開源工業(yè)物聯(lián)網(wǎng)大數(shù)據(jù)

    2023開放原子開發(fā)者大會 . OPEN ATOM DEVELOPERS CONFERENCE 開源工業(yè)物聯(lián)網(wǎng)大數(shù)據(jù)分論壇 2023.12.17 物聯(lián)網(wǎng)與大數(shù)據(jù)技術 的飛速進步,為工業(yè)
    的頭像 發(fā)表于 12-05 19:35 ?469次閱讀
    誠邀報名|黃向東邀您共話開源<b class='flag-5'>工業(yè)</b>物聯(lián)網(wǎng)<b class='flag-5'>大數(shù)據(jù)</b>

    分布式數(shù)據(jù)恢復-hbase+hive分布式存儲誤刪除文件的數(shù)據(jù)恢復方案

    hbase+hive分布式存儲數(shù)據(jù)恢復環(huán)境: 16臺某品牌R730XD服務器節(jié)點,每臺物理服務器節(jié)點上有數(shù)臺虛擬機,虛擬機上配置的分布式,上層部署hbase
    的頭像 發(fā)表于 11-24 15:55 ?331次閱讀

    工業(yè)設備大數(shù)據(jù)云平臺:提升生產(chǎn)效率的重要工具

    ,為工廠企業(yè)自身的發(fā)展帶來了新的機遇。 數(shù)之能推出的工業(yè)設備大數(shù)據(jù)云平臺通過云計算、大數(shù)據(jù)和物聯(lián)網(wǎng)等技術,實現(xiàn)對設備運行數(shù)據(jù)的實時采集、存儲
    的頭像 發(fā)表于 10-08 14:06 ?348次閱讀

    3項“工業(yè)大模型”測試床通過立項

    近年來,隨著AI技術的不斷發(fā)展和應用,工業(yè)生產(chǎn)和高端制造領域也開始逐漸實現(xiàn)智能化轉型,工業(yè)智能與工業(yè)大模型受到越來越多的關注,為了探索工業(yè)大模型在
    的頭像 發(fā)表于 09-22 15:38 ?536次閱讀