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

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

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

大數(shù)據(jù)分布式中各個框架總結(jié)

上海磐啟微電子有限公司 ? 來源:大數(shù)據(jù)左右手 ? 作者:王了個博 ? 2021-09-01 10:02 ? 次閱讀

前言在大數(shù)據(jù)分布式中,分區(qū),分桶,分片是設(shè)計框架的重點。此篇就來總結(jié)各個框架。建議收藏

目錄

Hive分區(qū)與分桶

ES分片

Kafka分區(qū)

HBase分區(qū)

Kudu分區(qū)

HiveHive分區(qū)

是按照數(shù)據(jù)表的某列或者某些列分為多區(qū),在hive存儲上是hdfs文件,也就是文件夾形式?,F(xiàn)在最常用的跑T+1數(shù)據(jù),按當天時間分區(qū)的較多。

把每天通過sqoop或者datax拉取的一天的數(shù)據(jù)存儲一個區(qū),也就是所謂的文件夾與文件。在查詢時只要指定分區(qū)字段的值就可以直接從該分區(qū)查找即可。創(chuàng)建分區(qū)表的時候,要通過關(guān)鍵字 partitioned by (column name string)聲明該表是分區(qū)表,并且是按照字段column name進行分區(qū),column name值一致的所有記錄存放在一個分區(qū)中,分區(qū)屬性name的類型是string類型。

當然,可以依據(jù)多個列進行分區(qū),即對某個分區(qū)的數(shù)據(jù)按照某些列繼續(xù)分區(qū)。

向分區(qū)表導(dǎo)入數(shù)據(jù)的時候,要通過關(guān)鍵字partition((column name=“xxxx”)顯示聲明數(shù)據(jù)要導(dǎo)入到表的哪個分區(qū)

設(shè)置分區(qū)的影響

首先是hive本身對分區(qū)數(shù)有限制,不過可以修改限制的數(shù)量;

set hive.exec.dynamic.partition=true;

set hive.exec.max.dynamic.partitions=1000;

set hive.exec.dynamic.partition.mode=nonstrict;

set hive.exec.parallel.thread.number=264;

hdfs對單個目錄下的目錄數(shù)量或者文件數(shù)量也是有限制的,也是可以修改的;

NN的內(nèi)存肯定會限制,這是最重要的,如果分區(qū)數(shù)很大,會影響NN服務(wù),進而影響一系列依賴于NN的服務(wù)。所以最好合理設(shè)置分區(qū)規(guī)則,對小文件也可以定期合并,減少NN的壓力。

Hive分桶

在分區(qū)數(shù)量過于龐大以至于可能導(dǎo)致文件系統(tǒng)崩潰時,我們就需要使用分桶來解決問題

分桶是相對分區(qū)進行更細粒度的劃分。分桶則是指定分桶表的某一列,讓該列數(shù)據(jù)按照哈希取模的方式隨機、均勻的分發(fā)到各個桶文件中。因為分桶操作需要根據(jù)某一列具體數(shù)據(jù)來進行哈希取模操作,故指定的分桶列必須基于表中的某一列(字段)要使用關(guān)鍵字clustered by 指定分區(qū)依據(jù)的列名,還要指定分為多少桶

create table test(id int,name string) cluster by (id) into 5 buckets 。..。..。

insert into buck select id ,name from p cluster by (id)

Hive分區(qū)分桶區(qū)別

分區(qū)是表的部分列的集合,可以為頻繁使用的數(shù)據(jù)建立分區(qū),這樣查找分區(qū)中的數(shù)據(jù)時就不需要掃描全表,這對于提高查找效率很有幫助

不同于分區(qū)對列直接進行拆分,桶往往使用列的哈希值對數(shù)據(jù)打散,并分發(fā)到各個不同的桶中從而完成數(shù)據(jù)的分桶過程

分區(qū)和分桶最大的區(qū)別就是分桶隨機分割數(shù)據(jù)庫,分區(qū)是非隨機分割數(shù)據(jù)庫

ElasticSearch分片主分片:用于解決數(shù)據(jù)水平擴展的問題,一個索引的所有數(shù)據(jù)是分布在所有主分片之上的(每個主分片承擔一部分數(shù)據(jù),主分片又分布在不同的節(jié)點上),一個索引的主分片數(shù)量只能在創(chuàng)建時指定,后期無法修改,除非對數(shù)據(jù)進行重新構(gòu)建索引(reindex操作)。

副本分片:用于解決數(shù)據(jù)高可用的問題,一個副本分片即一個主分片的拷貝,其數(shù)量可以動態(tài)調(diào)整,通過增加副本分片也可以實現(xiàn)提升系統(tǒng)讀性能的作用。

在集群中唯一一個空節(jié)點上創(chuàng)建一個叫做 blogs 的索引。默認情況下,一個索引被分配 5 個主分片

{

“settings”: {

“number_of_shards”: 5,

“number_of_replicas”: 1

}

}

到底分配到那個shard上呢?

shard = hash(routing) % number_of_primary_shards

routing 是一個可變值,默認是文檔的 _id ,也可以設(shè)置成一個自定義的值。routing 通過 hash 函數(shù)生成一個數(shù)字,然后這個數(shù)字再除以 number_of_primary_shards (主分片的數(shù)量)后得到余數(shù) 。這個在 0 到 number_of_primary_shards 之間的余數(shù),就是所尋求的文檔所在分片的位置。

如果數(shù)量變化了,那么所有之前路由的值都會無效,文檔也再也找不到了

分片過少如15個節(jié)點,5個主分片,1個副本會造成每個索引最多只能使用10個節(jié)點(5個主分片,5個從分片),剩余5節(jié)點并沒有利用上;資源浪費如:3節(jié)點;3分主分片,1副本當數(shù)據(jù)量較大的時,每個分片就會比較大

分片過多

創(chuàng)建分片慢:es創(chuàng)建分片的速度會隨著集群內(nèi)分片數(shù)的增加而變慢。

集群易崩潰:在觸發(fā)es 自動創(chuàng)建Index時,由于創(chuàng)建速度太慢,容易導(dǎo)致大量寫入請求堆積在內(nèi)存,從而壓垮集群。

寫入拒絕:分片過多的場景中,如果不能及時掌控業(yè)務(wù)的變化,可能經(jīng)常遇到單分片記錄超限、寫入拒絕等問題。

分片的注意事項

避免使用非常大的分片,因為這會對群集從故障中恢復(fù)的能力產(chǎn)生負面影響。對分片的大小沒有固定的限制,但是通常情況下很多場景限制在 30GB 的分片大小以內(nèi)。

當在ElasticSearch集群中配置好你的索引后, 你要明白在集群運行中你無法調(diào)整分片設(shè)置。 既便以后你發(fā)現(xiàn)需要調(diào)整分片數(shù)量, 你也只能新建創(chuàng)建并對數(shù)據(jù)進行重新索引。

如果擔心數(shù)據(jù)的快速增長, 建議根據(jù)這條限制: ElasticSearch推薦的最大JVM堆空間 是 30~32G, 所以把分片最大容量限制為 30GB, 然后再對分片數(shù)量做合理估算。例如, 如果的數(shù)據(jù)能達到 200GB, 則最多分配7到8個分片。

kafka分區(qū)生產(chǎn)者

分區(qū)的原因

方便在集群中擴展,每個Partition可以通過調(diào)整以適應(yīng)它所在的機器,而一個topic又可以有多個Partition組成,因此整個集群就可以適應(yīng)任意大小的數(shù)據(jù)了;

可以提高并發(fā),因為可以以Partition為單位讀寫了。

分區(qū)的原則

指明 partition 的情況下,直接將指明的值直接作為 partiton 值;

沒有指明 partition 值但有 key 的情況下,將 key 的 hash 值與 topic 的 partition 數(shù)進行取余得到 partition 值;

既沒有 partition 值又沒有 key 值的情況下,第一次調(diào)用時隨機生成一個整數(shù)(后面每次調(diào)用在這個整數(shù)上自增),將這個值與 topic 可用的 partition 總數(shù)取余得到 partition 值,也就是常說的 round-robin 算法。

消費者

分區(qū)分配策略

一個consumer group中有多個consumer,一個 topic有多個partition,所以必然會涉及到partition的分配問題,即確定那個partition由哪個consumer來消費Kafka有三種分配策略,一是RoundRobin,一是Range。高版本還有一個StickyAssignor策略將分區(qū)的所有權(quán)從一個消費者移到另一個消費者稱為重新平衡(rebalance)。當以下事件發(fā)生時,Kafka 將會進行一次分區(qū)分配:

同一個 Consumer Group 內(nèi)新增消費者

消費者離開當前所屬的Consumer Group,包括shuts down 或 crashes

Range分區(qū)分配策略

Range是對每個Topic而言的(即一個Topic一個Topic分),首先對同一個Topic里面的分區(qū)按照序號進行排序,并對消費者按照字母順序進行排序。然后用Partitions分區(qū)的個數(shù)除以消費者線程的總數(shù)來決定每個消費者線程消費幾個分區(qū)。如果除不盡,那么前面幾個消費者線程將會多消費一個分區(qū)。假設(shè)n=分區(qū)數(shù)/消費者數(shù)量,m=分區(qū)數(shù)%消費者數(shù)量,那么前m個消費者每個分配n+1個分區(qū),后面的(消費者數(shù)量-m)個消費者每個分配n個分區(qū)。假如有10個分區(qū),3個消費者線程,把分區(qū)按照序號排列

0,1,2,3,4,5,6,7,8,9

消費者線程為

C1-0,C2-0,C2-1

那么用partition數(shù)除以消費者線程的總數(shù)來決定每個消費者線程消費幾個partition,如果除不盡,前面幾個消費者將會多消費一個分區(qū)。在我們的例子里面,我們有10個分區(qū),3個消費者線程,10/3 = 3,而且除除不盡,那么消費者線程C1-0將會多消費一個分區(qū),所以最后分區(qū)分配的結(jié)果看起來是這樣的:

C1-0:0,1,2,3

C2-0:4,5,6

C2-1:7,8,9

如果有11個分區(qū)將會是:

C1-0:0,1,2,3

C2-0:4,5,6,7

C2-1:8,9,10

假如我們有兩個主題T1,T2,分別有10個分區(qū),最后的分配結(jié)果將會是這樣:

C1-0:T1(0,1,2,3) T2(0,1,2,3)

C2-0:T1(4,5,6) T2(4,5,6)

C2-1:T1(7,8,9) T2(7,8,9)

RoundRobinAssignor分區(qū)分配策略

RoundRobinAssignor策略的原理是將消費組內(nèi)所有消費者以及消費者所訂閱的所有topic的partition按照字典序排序,然后通過輪詢方式逐個將分區(qū)以此分配給每個消費者。使用RoundRobin策略有兩個前提條件必須滿足:

同一個消費者組里面的所有消費者的num.streams(消費者消費線程數(shù))必須相等;

每個消費者訂閱的主題必須相同。

加入按照 hashCode 排序完的topic-partitions組依次為

T1-5, T1-3, T1-0, T1-8, T1-2, T1-1, T1-4, T1-7, T1-6, T1-9

我們的消費者線程排序為

C1-0, C1-1, C2-0, C2-1

最后分區(qū)分配的結(jié)果為:

C1-0 將消費 T1-5, T1-2, T1-6 分區(qū)

C1-1 將消費 T1-3, T1-1, T1-9 分區(qū)

C2-0 將消費 T1-0, T1-4 分區(qū)

C2-1 將消費 T1-8, T1-7 分區(qū)

StickyAssignor分區(qū)分配策略

Kafka從0.11.x版本開始引入這種分配策略,它主要有兩個目的:

分區(qū)的分配要盡可能的均勻,分配給消費者者的主題分區(qū)數(shù)最多相差一個

分區(qū)的分配盡可能的與上次分配的保持相同。

當兩者發(fā)生沖突時,第一個目標優(yōu)先于第二個目標。鑒于這兩個目的,StickyAssignor策略的具體實現(xiàn)要比RangeAssignor和RoundRobinAssignor這兩種分配策略要復(fù)雜很多。

假設(shè)消費組內(nèi)有3個消費者

C0、C1、C2

它們都訂閱了4個主題:

t0、t1、t2、t3

并且每個主題有2個分區(qū),也就是說整個消費組訂閱了

t0p0、t0p1、t1p0、t1p1、t2p0、t2p1、t3p0、t3p1這8個分區(qū)

最終的分配結(jié)果如下:

消費者C0:t0p0、t1p1、t3p0

消費者C1:t0p1、t2p0、t3p1

消費者C2:t1p0、t2p1

這樣初看上去似乎與采用RoundRobinAssignor策略所分配的結(jié)果相同

此時假設(shè)消費者C1脫離了消費組,那么消費組就會執(zhí)行再平衡操作,進而消費分區(qū)會重新分配。如果采用RoundRobinAssignor策略,那么此時的分配結(jié)果如下:

消費者C0:t0p0、t1p0、t2p0、t3p0

消費者C2:t0p1、t1p1、t2p1、t3p1

如分配結(jié)果所示,RoundRobinAssignor策略會按照消費者C0和C2進行重新輪詢分配。而如果此時使用的是StickyAssignor策略,那么分配結(jié)果為:

消費者C0:t0p0、t1p1、t3p0、t2p0

消費者C2:t1p0、t2p1、t0p1、t3p1

可以看到分配結(jié)果中保留了上一次分配中對于消費者C0和C2的所有分配結(jié)果,并將原來消費者C1的“負擔”分配給了剩余的兩個消費者C0和C2,最終C0和C2的分配還保持了均衡。

如果發(fā)生分區(qū)重分配,那么對于同一個分區(qū)而言有可能之前的消費者和新指派的消費者不是同一個,對于之前消費者進行到一半的處理還要在新指派的消費者中再次復(fù)現(xiàn)一遍,這顯然很浪費系統(tǒng)資源。StickyAssignor策略如同其名稱中的“sticky”一樣,讓分配策略具備一定的“粘性”,盡可能地讓前后兩次分配相同,進而減少系統(tǒng)資源的損耗以及其它異常情況的發(fā)生。

到目前為止所分析的都是消費者的訂閱信息都是相同的情況,我們來看一下訂閱信息不同的情況下的處理。

舉例,同樣消費組內(nèi)有3個消費者:

C0、C1、C2

集群中有3個主題:

t0、t1、t2

這3個主題分別有

1、2、3個分區(qū)

也就是說集群中有

t0p0、t1p0、t1p1、t2p0、t2p1、t2p2這6個分區(qū)

消費者C0訂閱了主題t0

消費者C1訂閱了主題t0和t1

消費者C2訂閱了主題t0、t1和t2

如果此時采用RoundRobinAssignor策略:

消費者C0:t0p0

消費者C1:t1p0

消費者C2:t1p1、t2p0、t2p1、t2p2

如果此時采用的是StickyAssignor策略:

消費者C0:t0p0

消費者C1:t1p0、t1p1

消費者C2:t2p0、t2p1、t2p2

此時消費者C0脫離了消費組,那么RoundRobinAssignor策略的分配結(jié)果為:

消費者C1:t0p0、t1p1

消費者C2:t1p0、t2p0、t2p1、t2p2

StickyAssignor策略,那么分配結(jié)果為:

消費者C1:t1p0、t1p1、t0p0

消費者C2:t2p0、t2p1、t2p2

可以看到StickyAssignor策略保留了消費者C1和C2中原有的5個分區(qū)的分配:

t1p0、t1p1、t2p0、t2p1、t2p2。

從結(jié)果上看StickyAssignor策略比另外兩者分配策略而言顯得更加的優(yōu)異,這個策略的代碼實現(xiàn)也是異常復(fù)雜。

注意

在實際開發(fā)過程中,kafka與spark或者flink對接的較多,一個分區(qū)對應(yīng)的是一個并行度,如果并行度不夠,這個時候會多個分區(qū)數(shù)據(jù)集中到一個并行度上。所以需要合理設(shè)置并行度

HBase分區(qū)HBase每張表在底層存儲上是由至少一個Region組成,Region實際上就是HBase表的分區(qū)。HBase新建一張表時默認Region即分區(qū)的數(shù)量為1,一般在生產(chǎn)環(huán)境中我們都會手動給Table提前做 “預(yù)分區(qū)”,使用合適的分區(qū)策略創(chuàng)建好一定數(shù)量的分區(qū)并使分區(qū)均勻分布在不同regionserver上。一個分區(qū)在達到一定大小時會自動Split,一分為二

HBase分區(qū)過多有哪些影響:

頻繁刷寫:我們知道Region的一個列族對應(yīng)一個MemStore,假設(shè)HBase表都有統(tǒng)一的1個列族配置,則每個Region只包含一個MemStore。通常HBase的一個MemStore默認大小為128 MB,見參數(shù)hbase.hregion.memstore.flush.size。當可用內(nèi)存足夠時,每個MemStore可以分配128 MB空間。當可用內(nèi)存緊張時,假設(shè)每個Region寫入壓力相同,則理論上每個MemStore會平均分配可用內(nèi)存空間。因此,當節(jié)點Region過多時,每個MemStore分到的內(nèi)存空間就會很小。這個時候,寫入很小的數(shù)據(jù)量就會被強制Flush到磁盤,將會導(dǎo)致頻繁刷寫。頻繁刷寫磁盤,會對集群HBase與HDFS造成很大的壓力,可能會導(dǎo)致不可預(yù)期的嚴重后果。

壓縮風(fēng)暴:因Region過多導(dǎo)致的頻繁刷寫,將在磁盤上產(chǎn)生非常多的HFile小文件,當小文件過多的時候HBase為了優(yōu)化查詢性能就會做Compaction操作,合并HFile減少文件數(shù)量。當小文件一直很多的時候,就會出現(xiàn) “壓縮風(fēng)暴”。Compaction非常消耗系統(tǒng)io資源,還會降低數(shù)據(jù)寫入的速度,嚴重的會影響正常業(yè)務(wù)的進行。

MSLAB內(nèi)存消耗較大:MSLAB(MemStore-local allocation buffer)存在于每個MemStore中,主要是為了解決HBase內(nèi)存碎片問題,默認會分配 2 MB 的空間用于緩存最新數(shù)據(jù)。如果Region數(shù)量過多,MSLAB總的空間占用就會比較大。比如當前節(jié)點有1000個包含1個列族的Region,MSLAB就會使用1.95GB的堆內(nèi)存,即使沒有數(shù)據(jù)寫入也會消耗這么多內(nèi)存。

Master assign region時間較長:HBase Region過多時Master分配Region的時間將會很長。特別體現(xiàn)在重啟HBase時Region上線時間較長,嚴重的會達到小時級,造成業(yè)務(wù)長時間等待的后果。

影響MapReduce并發(fā)數(shù):當使用MapReduce操作HBase時,通常Region數(shù)量就是MapReduce的任務(wù)數(shù),Region數(shù)量過多會導(dǎo)致并發(fā)數(shù)過多,產(chǎn)生過多的任務(wù)。任務(wù)太多將會占用大量資源,當操作包含很多Region的大表時,占用過多資源會影響其他任務(wù)的執(zhí)行。

具體計算HBase合理分區(qū)數(shù)量

((RS memory) * (total memstore fraction)) / ((memstore size)*(column families))

字段解釋

RS memory表示regionserver堆內(nèi)存大小,即HBASE_HEAPSIZE

total memstore fraction表示所有MemStore占HBASE_HEAPSIZE的比例,HBase0.98版本以后由hbase.regionserver.global.memstore.size參數(shù)控制,老版本由hbase.regionserver.global.memstore.upperLimit參數(shù)控制,默認值0.4

memstore size即每個MemStore的大小,原生HBase中默認128M

column families即表的列族數(shù)量,通常情況下只設(shè)置1個,最多不超過3個

假如一個集群中每個regionserver的堆內(nèi)存是32GB,那么節(jié)點上最理想的Region數(shù)量應(yīng)該是32768*0.4/128 ≈ 102,所以,當前環(huán)境中單節(jié)點理想情況下大概有102個Region最理想情況是假設(shè)每個Region上的填充率都一樣,包括數(shù)據(jù)寫入的頻次、寫入數(shù)據(jù)的大小,但實際上每個Region的負載各不相同,可能有的Region特別活躍負載特別高,有的Region則比較空閑。所以,通常我們認為2-3倍的理想Region數(shù)量也是比較合理的,針對上面舉例來說,大概200-300個Region算是合理的。

如果實際的Region數(shù)量比2~3倍的計算值還要多,就要實際觀察Region的刷寫、壓縮情況了,Region越多則風(fēng)險越大。經(jīng)驗告訴我們,如果單節(jié)點Region數(shù)量過千,集群可能存在較大風(fēng)險

Kudu分區(qū)為了提供可擴展性,Kudu 表被劃分為稱為 tablets 的單元,并分布在許多 tablet servers 上。行總是屬于單個 tablet 。將行分配給 tablet 的方法由在表創(chuàng)建期間設(shè)置的表的分區(qū)決定。kudu提供了3種分區(qū)方式:

Range Partitioning(范圍分區(qū))范圍分區(qū)可以根據(jù)存入數(shù)據(jù)的數(shù)據(jù)量,均衡的存儲到各個機器上,防止機器出現(xiàn)負載不均衡現(xiàn)象

create table people(id Type.INT32, name Type.STRING , age Type.INT32)

RANGE (age) (

PARTITION 0 <= VALUES < 10,

PARTITION 10 <= VALUES < 20,

PARTITION 20 <= VALUES < 30,

PARTITION 30 <= VALUES < 40,

PARTITION 40 <= VALUES < 50,

PARTITION 50 <= VALUES < 60,

PARTITION 60 <= VALUES < 70,

PARTITION 70 <= VALUES < 80,

PARTITION 80 <= VALUES < 120

Hash Partitioning(哈希分區(qū))哈希分區(qū)通過哈希值將行分配到許多 buckets ( 存儲桶 )之一;哈希分區(qū)是一種有效的策略,當不需要對表進行有序訪問時。哈希分區(qū)對于在 tablet 之間隨機散布這些功能是有效的,這有助于減輕熱點和 tablet 大小不均勻。

create table rangeTable(id Type.INT32, name Type.STRING , age Type.INT32)

HASH (id) PARTITIONS 5,

RANGE (id) (

PARTITION UNBOUNDED

Multilevel Partitioning(多級分區(qū))

create table rangeTable(id Type.INT32, name Type.STRING , age Type.INT32)

HASH (age) PARTITIONS 5,

RANGE (age) (

PARTITION 0 <= VALUES < 10,

PARTITION 10 <= VALUES < 20,

PARTITION 20 <= VALUES < 30,

PARTITION 30 <= VALUES < 40,

PARTITION 40 <= VALUES < 50,

PARTITION 50 <= VALUES < 60,

PARTITION 60 <= VALUES < 70,

PARTITION 70 <= VALUES < 80,

PARTITION 80 <= VALUES < 120

哈希分區(qū)有利于最大限度地提高寫入吞吐量,而范圍分區(qū)可避免 tablet 無限增長的問題;hash分區(qū)和range分區(qū)結(jié)合,可以極大提升kudu性能。

責(zé)任編輯:haq

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

    關(guān)注

    13

    文章

    4123

    瀏覽量

    85279
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    396

    瀏覽量

    17270
  • 大數(shù)據(jù)
    +關(guān)注

    關(guān)注

    64

    文章

    8805

    瀏覽量

    136993

原文標題:全面總結(jié)大數(shù)據(jù)框架(分區(qū),分桶,分片)

文章出處:【微信號:gh_6a53af9e8109,微信公眾號:上海磐啟微電子有限公司】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    探秘IO分布式模塊設(shè)計:讓大數(shù)據(jù)處理更高效

    隨著互聯(lián)網(wǎng)的飛速發(fā)展,大數(shù)據(jù)、云計算、人工智能等技術(shù)逐漸成為時代的主流。在這個數(shù)據(jù)爆炸的時代,如何高效地處理海量數(shù)據(jù)成為企業(yè)面臨的重大挑戰(zhàn)。IO分布式模塊設(shè)計作為一種有效的解決方案,越
    的頭像 發(fā)表于 07-26 13:54 ?452次閱讀
    探秘IO<b class='flag-5'>分布式</b>模塊設(shè)計:讓<b class='flag-5'>大數(shù)據(jù)</b>處理更高效

    鴻蒙開發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedData (分布式數(shù)據(jù)管理)】

    分布式數(shù)據(jù)管理為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)庫的分布式協(xié)同能力。通過調(diào)用分布式數(shù)據(jù)
    的頭像 發(fā)表于 06-07 09:30 ?721次閱讀
    鴻蒙開發(fā)接口<b class='flag-5'>數(shù)據(jù)</b>管理:【@ohos.data.distributedData (<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>管理)】

    HarmonyOS開發(fā)實例:【分布式數(shù)據(jù)服務(wù)】

    分布式數(shù)據(jù)服務(wù)(Distributed Data Service,DDS)為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)分布式的能力。
    的頭像 發(fā)表于 04-18 10:18 ?559次閱讀
    HarmonyOS開發(fā)實例:【<b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>服務(wù)】

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

    管理的效率極低。因此,分布式存儲系統(tǒng)應(yīng)運而生。 分布式存儲就是將數(shù)據(jù)存儲在眾多的服務(wù)器或網(wǎng)絡(luò)節(jié)點上,而不是集中在單個位置。這種方式的好處包括:方便擴容、數(shù)據(jù)冗余備份提高容錯性、避免單點
    的頭像 發(fā)表于 03-07 15:40 ?323次閱讀

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

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

    分布式大屏控制系統(tǒng)的工作原理

    分布式大屏控制系統(tǒng)是一種基于分布式計算、云計算和大數(shù)據(jù)技術(shù)的控制系統(tǒng),具有高效、穩(wěn)定、靈活的特點。該系統(tǒng)通過將各個子系統(tǒng)進行模塊化設(shè)計,使得各個
    的頭像 發(fā)表于 01-29 14:24 ?536次閱讀

    什么是分布式架構(gòu)?

    1.獨立性:分布式架構(gòu)各個節(jié)點是獨立運行的,它們沒有依賴關(guān)系,可以單獨進行升級、維護和擴展。 2.通信性:分布式架構(gòu)
    的頭像 發(fā)表于 01-12 15:04 ?982次閱讀
    什么是<b class='flag-5'>分布式</b>架構(gòu)?

    分布式IO工業(yè)自動化數(shù)據(jù)采集與分析的核心

    代替人工操縱機器和機器體系進行加工生產(chǎn)的趨勢,分布式I/O可以與各種傳感器、執(zhí)行器和控制系統(tǒng)相連接,實現(xiàn)生產(chǎn)線的自動化控制。通過實時采集和傳輸數(shù)據(jù)分布式I/O能夠精確控制生產(chǎn)過程
    發(fā)表于 12-28 14:47

    鴻蒙原生應(yīng)用開發(fā)——分布式數(shù)據(jù)對象

    ;change\", globalThis.changeCallback) 當同一組網(wǎng)內(nèi)分布式數(shù)據(jù)對象發(fā)生改變時,同一組網(wǎng)的所有分布式數(shù)據(jù)
    發(fā)表于 12-08 10:01

    分布式系統(tǒng)硬件資源池原理和接入實踐

    一個無中心對稱的分布式硬件外設(shè)管理系統(tǒng)。同時,分布式硬件框架定義了外設(shè)熱插拔,虛擬硬件?;畹葯C制,保證業(yè)務(wù)可靠性。在運行時,各個硬件外設(shè)的業(yè)務(wù)運行于獨立進程
    發(fā)表于 12-06 10:02

    zookeeper分布式原理

    是提供一個高可用的、一致性的機制,用于解決分布式系統(tǒng)中常見的一致性問題,比如Leader選舉、分布式鎖等。在本文中,我們將詳細介紹Zookeeper的原理和工作機制。 數(shù)據(jù)模型 Zookeeper的
    的頭像 發(fā)表于 12-03 16:33 ?519次閱讀

    分布式通信是什么 分布式網(wǎng)絡(luò)搭建

    上的任務(wù)分配。 分布式通信 什么叫分布式? 機器人功能是由各種節(jié)點組成的,這些節(jié)點可能位于不同的計算機,這種結(jié)構(gòu)可以將原本資源消耗較多的任務(wù),分配到不同的平臺上,減輕計算壓力,這就是分布式
    的頭像 發(fā)表于 11-27 15:49 ?620次閱讀
    <b class='flag-5'>分布式</b>通信是什么 <b class='flag-5'>分布式</b>網(wǎng)絡(luò)搭建

    springcloud分布式事務(wù)解決方案

    Spring Cloud是一套用于構(gòu)建分布式系統(tǒng)的開源框架,它提供了一系列組件和工具,可以幫助開發(fā)人員快速構(gòu)建和管理基于微服務(wù)架構(gòu)的應(yīng)用程序。在分布式系統(tǒng),事務(wù)的處理是一個重要的問題
    的頭像 發(fā)表于 11-16 11:03 ?1883次閱讀

    springcloud如何實現(xiàn)分布式

    ,我們可以快速搭建分布式系統(tǒng),并且靈活地進行伸縮和擴展。 要實現(xiàn)分布式系統(tǒng),我們可以按照以下步驟來使用Spring Cloud: 服務(wù)注冊與發(fā)現(xiàn): 分布式系統(tǒng)
    的頭像 發(fā)表于 11-16 11:01 ?562次閱讀

    spring分布式框架有哪些

    Spring分布式框架是一套基于Spring框架的解決方案,用于構(gòu)建分布式系統(tǒng)。它提供了一系列的組件和模塊,可以幫助開發(fā)人員輕松地構(gòu)建可擴展、高可用、高性能的
    的頭像 發(fā)表于 11-16 10:58 ?651次閱讀