自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)開發(fā)中,這些讓你頭疼過嗎?

大數(shù)據(jù)
數(shù)據(jù)傾斜最籠統(tǒng)概念就是數(shù)據(jù)的分布不平衡,有些地方數(shù)據(jù)多,有些地方數(shù)據(jù)少。

[[425544]]

數(shù)據(jù)發(fā)散

什么是數(shù)據(jù)發(fā)散

在join的過程中,關(guān)聯(lián)鍵出現(xiàn)一對(duì)多,或者多對(duì)多時(shí)候,造出結(jié)果存在重復(fù)。

數(shù)據(jù)發(fā)散癥狀

癥狀

(1)結(jié)果存在重復(fù)。

(2)數(shù)據(jù)量劇增。

(3)可能導(dǎo)致無法使用正常資源處理完成。

排查

(1)出現(xiàn)這種原因就是

A left join B 的時(shí)候,使用主鍵的關(guān)聯(lián)條件中,沒有關(guān)聯(lián)到表B的最小粒度。

(2)查找是否是這種原因

select 關(guān)聯(lián)字段 from table group by 關(guān)聯(lián)字段 having count(關(guān)聯(lián)字段)>1 就可以判定是否有關(guān)聯(lián)字段出現(xiàn)不唯一的發(fā)散情況。

避免或解決

(1)如果右表關(guān)聯(lián)字段有重復(fù)值則要去重,否則數(shù)據(jù)會(huì)發(fā)散。

(2)仔細(xì)寫好SQL,是否存在業(yè)務(wù)邏輯的錯(cuò)誤(關(guān)聯(lián)字段用錯(cuò))。

笛卡兒積

什么是笛卡兒積

笛卡爾積在SQL中的實(shí)現(xiàn)方式既是交叉連接(Cross Join)。所有連接方式都會(huì)先生成臨時(shí)笛卡爾積表,笛卡爾積是關(guān)系代數(shù)里的一個(gè)概念,表示兩個(gè)表中的每一行數(shù)據(jù)任意組合 。

笛卡兒積案例

A表

id name city
1 aa 1001
2 bb 1002
3 cc 1003

B表

id city_name
1 a城
2 b城
3 c城

SQL

  1. SELECT * FROM A,B; 

結(jié)果

id name city id city_name
1 aa 1001 1 a城
1 aa 1001 2 bb
1 aa 1001 3 c城
2 bb 1002 1 a城
2 bb 1002 2 bb
2 bb 1002 3 c城
3 cc 1003 1 a城
3 cc 1003 2 bb
3 cc 1003 3 c城

產(chǎn)生原因

(1)當(dāng)連接沒有on條件是,會(huì)出現(xiàn)笛卡爾積(全部笛卡爾積)。

(2)當(dāng)連接on條件是非唯一字段時(shí),會(huì)出現(xiàn)笛卡爾積(局部笛卡爾積)。

(3)join的兩個(gè)表中都含有空值。

怎么避免或解決

(1)關(guān)聯(lián)范圍在最小粒度的列.

(2)檢查表的關(guān)聯(lián)字段是否有空值。

數(shù)據(jù)傾斜

什么是數(shù)據(jù)傾斜

數(shù)據(jù)傾斜最籠統(tǒng)概念就是數(shù)據(jù)的分布不平衡,有些地方數(shù)據(jù)多,有些地方數(shù)據(jù)少。在計(jì)算過程中有些地方數(shù)據(jù)早早地處理完了,有些地方數(shù)據(jù)遲遲沒有處理完成,造成整個(gè)處理流程遲遲沒有結(jié)束,這就是最直接數(shù)據(jù)傾斜的表現(xiàn)。

數(shù)據(jù)傾斜癥狀

Hive

hive自身的MR引擎:發(fā)現(xiàn)所有的map task全部完成,并且99%的reduce task完成,只剩下一個(gè)或者少數(shù)幾個(gè)reduce task一直在執(zhí)行,這種情況下一般都是發(fā)生了數(shù)據(jù)傾斜。說白了就是Hive的數(shù)據(jù)傾斜本質(zhì)上是MapReduce的數(shù)據(jù)傾斜。

Flink

(1)Flink 任務(wù)出現(xiàn)數(shù)據(jù)傾斜的直觀表現(xiàn)是任務(wù)節(jié)點(diǎn)頻繁出現(xiàn)反壓。

(2)部分節(jié)點(diǎn)出現(xiàn) OOM異常,是因?yàn)榇罅康臄?shù)據(jù)集中在某個(gè)節(jié)點(diǎn)上,導(dǎo)致該節(jié)點(diǎn)內(nèi)存被爆,任務(wù)失敗重啟。

Spark

(1)Executor lost,OOM,Shuffle過程出錯(cuò)。

(2)Driver OOM。

(3)單個(gè)Executor執(zhí)行時(shí)間特別久,整體任務(wù)卡在某個(gè)階段不能結(jié)束。

(4)正常運(yùn)行的任務(wù)突然失敗。

怎么避免或解決

不管再出現(xiàn)分布式計(jì)算框架出現(xiàn)數(shù)據(jù)傾斜問題解決思路如下:很多數(shù)據(jù)傾斜的問題,都可以用和平臺(tái)無關(guān)的方式解決,比如更好的數(shù)據(jù)預(yù)處理,異常值的過濾等。因此,解決數(shù)據(jù)傾斜的重點(diǎn)在于對(duì)數(shù)據(jù)設(shè)計(jì)和業(yè)務(wù)的理解,這兩個(gè)搞清楚了,數(shù)據(jù)傾斜就解決了大部分了。關(guān)注這幾個(gè)方面:

業(yè)務(wù)邏輯方面

(1)數(shù)據(jù)預(yù)處理。

(2)解決熱點(diǎn)數(shù)據(jù):分而治之(第一次打散計(jì)算,第二次再最終聚合計(jì)算)。

程序代碼層面

(1)導(dǎo)致最終只有一個(gè)Reduce任務(wù)的,需要想到用替代的關(guān)鍵字或者算子去提升Reduce任務(wù)數(shù)。

(2)調(diào)參。

熟悉自己手中的工具(框架)

優(yōu)秀的框架已經(jīng)負(fù)重前行給你優(yōu)化了好多不僅要學(xué),更學(xué)會(huì)去用,更要努力去完善拓展框架功能。

責(zé)任編輯:張燕妮 來源: 大數(shù)據(jù)左右手
相關(guān)推薦

2020-01-20 14:30:39

HTTP概念標(biāo)頭

2023-03-13 13:36:00

Go擴(kuò)容切片

2018-09-11 09:14:52

面試公司缺點(diǎn)

2017-10-11 13:42:40

DIY裝機(jī)電腦

2021-10-09 09:47:14

Java開發(fā) bug

2021-01-07 05:40:13

BLE模塊Android

2025-01-13 00:17:49

Java開發(fā)對(duì)象

2021-02-22 09:00:00

Jenkins工具開發(fā)

2018-08-01 14:45:16

PHP編程語言

2015-12-01 09:02:58

ios界面流暢

2021-06-01 05:16:49

前端開發(fā)技術(shù)熱點(diǎn)

2017-11-08 10:54:32

大數(shù)據(jù)算法機(jī)器學(xué)習(xí)

2015-04-07 12:19:30

Web開發(fā)開發(fā)資源

2012-06-20 15:01:25

iOS開發(fā)

2023-12-05 08:20:05

單例模式Python

2020-08-27 15:02:11

Progress

2019-11-25 21:46:12

數(shù)據(jù)湖云計(jì)算數(shù)據(jù)倉庫

2023-06-13 13:52:00

Java 7線程池

2018-05-24 08:58:45

數(shù)據(jù)備份磁帶

2019-12-24 08:46:49

Redis技巧數(shù)據(jù)量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)