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

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

3天內(nèi)不再提示

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

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


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




隨著工業(yè)4.0時代的到來,工業(yè)互聯(lián)網(wǎng)和企業(yè)的智能化、信息化都將不斷推進,傳統(tǒng)的工業(yè)實時數(shù)據(jù)庫和關(guān)系數(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īng)的瓶頸,可以促進工業(yè)生產(chǎn)水平和生產(chǎn)管理水平的提高。本期格物匯,就來給大家介紹HBase數(shù)據(jù)庫及格創(chuàng)東智相關(guān)實戰(zhàn)案例。


了解HBase

HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。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é)同服務(wù),HBASE利用Zookeeper作為協(xié)同服務(wù)。

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

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

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

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

HBase實戰(zhàn)案例

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


目前,該公司的業(yè)務(wù)場景里面有很多面板相關(guān)的特征數(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è)務(wù)需求主要有以下兩類:

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

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

原有方案:MySQL+OSS

之前業(yè)務(wù)數(shù)據(jù)量比較小的情況使用的存儲主要為 MySQL 以及 OSS(對象存儲)。相關(guān)表主要有面板組表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 對應(yīng)關(guān)系存儲在MySQL 中,對應(yīng)上面的 group 表;面板 id 和面板相關(guān)的特征數(shù)據(jù)存儲在 OSS 里面,對應(yīng)上面的 face 表。

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

我們?nèi)绻枰鶕?jù)面板組 id 查找該組下面的所有面板,那么需要從 MySQL 中讀取很多行的數(shù)據(jù),從中獲取到組和面板對應(yīng)的關(guān)系,然后到 OSS 里面根據(jù)面板id獲取所有相關(guān)的特征數(shù)據(jù)。


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


HBase解決方案:

MySQL + OSS的設(shè)計方案有兩個問題:第一,原本屬于同一條數(shù)據(jù)的內(nèi)容由于數(shù)據(jù)本身大小的原因無法存儲到一行里面,導(dǎo)致后續(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 范圍的,比如圖片,短視頻,文檔等,具有低延遲,讀寫強一致,檢索能力強,水平易擴展等關(guān)鍵能力。


格創(chuàng)東智的大數(shù)據(jù)團隊使用這三個功能重新設(shè)計上面 MySQL + OSS 方案。結(jié)合應(yīng)用場景的兩大查詢需求,將面板組 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é),這里的設(shè)置說明文件大于 2k 的列都當做小文件存儲。大家可能注意到上面原始方案中采用了 OSS 對象存儲,那我們?yōu)槭裁床恢苯邮褂?OSS 存儲面板特征數(shù)據(jù)呢,如果有這個疑問,可以看看下面表的性能測試:


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


StringCF_DEFAULT="c";根據(jù)上面的對比,使用 HBase MOB特性來存儲小于10MB的對象相比直接使用對象存儲有一些優(yōu)勢。
我們現(xiàn)在來看看具體的表設(shè)計,使用面板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對應(yīng)的所有面板數(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é)點內(nèi)存為32GB,核數(shù)為8,每個節(jié)點掛載四塊大小為 250GB 的 SSD 磁盤,并寫入100W 行,每行有1W列,讀取一行的時間在100ms-500毫秒左右。在每行有1000個face的情況下,讀取一行的時間基本在20-50毫秒左右,相比之前的10秒提升200~500倍。

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

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


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



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

    評論

    相關(guān)推薦

    緩存對大數(shù)據(jù)處理的影響分析

    緩存對大數(shù)據(jù)處理的影響顯著且重要,主要體現(xiàn)在以下幾個方面: 一、提高數(shù)據(jù)訪問速度 在大數(shù)據(jù)環(huán)境中,數(shù)據(jù)存儲通常采用分布式
    的頭像 發(fā)表于 12-18 09:45 ?171次閱讀

    西北工業(yè)大學(xué)OpenHarmony技術(shù)俱樂部正式揭牌成立

    11月15日,由OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)項目群技術(shù)指導(dǎo)委員會與西北工業(yè)大學(xué)共同舉辦的“西北工業(yè)大學(xué)OpenHarmony技術(shù)俱樂部成立大會”在
    的頭像 發(fā)表于 11-19 18:04 ?325次閱讀
    西北<b class='flag-5'>工業(yè)大</b>學(xué)OpenHarmony技術(shù)俱樂部正式揭牌成立

    raid 在大數(shù)據(jù)分析中的應(yīng)用

    RAID(Redundant Array of Independent Disks,獨立磁盤冗余陣列)在大數(shù)據(jù)分析中的應(yīng)用主要體現(xiàn)在提高存儲系統(tǒng)的性能、可靠性和容量上。以下是RAID在大數(shù)據(jù)分析中
    的頭像 發(fā)表于 11-12 09:44 ?265次閱讀

    智慧城市與大數(shù)據(jù)的關(guān)系

    的建設(shè)需要對海量的數(shù)據(jù)資源進行收集、整合、存儲與分析。大數(shù)據(jù)技術(shù)的應(yīng)用,如智能感知、分布式存儲等,使得這些數(shù)據(jù)能夠被高效地處理和利用。 決策
    的頭像 發(fā)表于 10-24 15:27 ?738次閱讀

    云計算在大數(shù)據(jù)分析中的應(yīng)用

    云計算在大數(shù)據(jù)分析中的應(yīng)用廣泛且深入,它為用戶提供了存儲、計算、分析和預(yù)測的強大能力。以下是對云計算在大數(shù)據(jù)分析中應(yīng)用的介紹: 一、存儲和處理海量數(shù)
    的頭像 發(fā)表于 10-24 09:18 ?501次閱讀

    基于Kepware的Hadoop大數(shù)據(jù)應(yīng)用構(gòu)建-提升數(shù)據(jù)價值利用效能

    處理超大數(shù)據(jù)集。 Hadoop的生態(tài)系統(tǒng)非常豐富,包括許多相關(guān)工具和技術(shù),如Hive、Pig、HBase等,這些工具可以方便地構(gòu)建復(fù)雜的大數(shù)據(jù)應(yīng)用。Hadoop廣泛應(yīng)用于各種場景,包括數(shù)據(jù)
    的頭像 發(fā)表于 10-08 15:12 ?166次閱讀
    基于Kepware的Hadoop<b class='flag-5'>大數(shù)據(jù)</b>應(yīng)用構(gòu)建-提升<b class='flag-5'>數(shù)據(jù)</b>價值利用效能

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

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

    大數(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 ?1608次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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