Spark和Hive處理資料傾斜的兩種解決方案

2021-10-05 06:26:47 字數 345 閱讀 3388

比如處理80tb的資料,partition數量為15000,理論上平均每個節點是5-6g的資料,但是實際上根據key-value在儲存時,很有可能因為某個key的數量特別多,導致資料傾斜。這樣就會出現超過物理記憶體限制的報錯。偶爾重試可能會通過,但是會比較不穩定;

目前我們這邊的兩種解決辦法是:

1. 如果傾斜的key數量比較少,那麼過濾出來,對其進行單獨處理;

2. 如果傾斜的key數量比較多,那麼將key值 map成 key_01到key_100,join的另一邊map成key_1~100的隨機數,那麼這樣join之後,原本同樣的key值會落到同乙個partition,現在變成隨機落到了100個節點上,使得資料分布更加平均。

hive資料處理

剛工作兩周,大量使用到hive,總結一下使用過程中遇到的問題和容易犯的錯誤!示例一.解析出中的12345678,類似於這樣的需求。一眼看到這樣的需求,第一反應就是這是乙個正則匹配的問題,用正則解析函式一下就搞定了regex extract uri,d 2 但是在實際中會發現當資料量特別大了以後效率特...

hive處理json資料

今天練習一下在hive中使用get json object這個函式,首先建立乙個表將json格式的資料匯入 create table json01 line string 將資料匯入 load data local inpath home hadoop json test into table js...

hive處理json資料

1.載入hcatalog包,這個包已經在hive目錄檔案中 hive add jar hcatalog share hcatalog hive hcatalog core 1.2.0.jar 2.建立處理json格式資料的表 注意 org.apache.hive.hcatalog.data.json...