大資料實戰 Hive 技巧實戰

2021-10-21 08:19:45 字數 2426 閱讀 2968

select ***,address from test where dt='20210218' union all select ***,address from test where dt='20210218';

+------+----------+--+

| *** | address |

+------+----------+--+

| m | a |

| m | a |

| m | b |

| m | b |

| m | b |

| m | b |

+------+----------+--+

select ***,address from test where dt='20210218' union select ***,address from test where dt='20210218';

+------+----------+--+

| *** | address |

+------+----------+--+

| m | a |

| m | b |

+------+----------+--+

clustered by (sno) sorted by (age desc) into 4 buckets

傳入資料只能用insert into /overwrite

2.1.1版本設定了強制分桶操作,因此人為的修改reduce的個數不會影響最終檔案的個數(檔案個數由桶數決定)

–1. 在2.1.1版本裡,底層實現了強制分桶,強制排序策略

– 即: 正規寫法要帶上distribute by(分桶字段)[sort by 排序字段],如果沒有帶上,也會分桶和排序。

–2. 使用insert into時可以不加關鍵字table. 使用insert overwrite時必須帶關鍵字table.

–3. 因為底層實行了強制分桶策略,所以修改mapreduce.job.reduces的個數,不會影響桶檔案資料。但是會影響真正執行時reducetask的數量。是真正的reducetask的數量是最接近mapreduce.job.reduces的數量的因子。如果是素數,就使用本身

insert overwrite table ris_relation_result_prod partition(rel_id)

select get_json_object(relation, '$.relationhashcode') as relation_hashcode,

get_json_object(relation, '$.targetvariablevalue') as target_variable_value,

get_json_object(relation, '$.relid') as rel_id

from ris_relation_old_prod733 where get_json_object(relation, '$.relid') in (**********)

set hive.optimize.sort.dynamic.partition=true;問題1: hive/mr 任務報記憶體溢位

running beyond physical memory limits. current usage: 2.0 gb of 2 gb physical memory used; 3.9 gb of 4.2 gb virtual memory used. killing container。

記憶體調優引數:

map join優化

在hive 插入資料動態分割槽時候會產生很多小檔案,被kill, 如下圖1, 另外在gc overhead limit execded

如果乙個task在一定時間內沒有任何進入,即不會讀取新的資料,也沒有輸出資料,則認為該 task 處於 block 狀態,可能是臨時卡住,也許永遠會卡住。為了防止因為使用者程式永遠 block 不退出,則強制設定了乙個超時時間(單位毫秒),預設是600000,值為 0 將禁用超時

max( ) over ( partition by prcid order by b.occurtime desc ) 不能大小寫混亂

hive --verbos=true hive --hiveconf hive.root.logger=debug,console

導致客戶端執行命令時候直接卡住,解決方式刪除或者移動備份這個檔案

大資料實戰 pyspark使用

解壓 tar xvf python 3.6.3.tgz原始碼編譯安裝python3 yum install zlib devel bzip2 devel openssl devel ncurses devel sqlite devel readline devel tk devel gcc make...

大資料實戰之環境搭建 六

這篇我們看如何搭建solr,因為第一篇講述了在windows下如何搭建,所以這裡就簡單的說一下。前面已經提到我們將solr壓縮包拷貝至了usr tmp下。之後我們將solr解壓目錄下面的example solr拷貝到上面solr 4.3.0下 ok,完了之後進行我們的最後一步,在tomcat下面的 ...

SparkSQL大資料實戰 揭開Join的神秘面紗

join操作是資料庫和大資料計算中的高階特性,大多數場景都需要進行複雜的join操作,本文從原理層面介紹了sparksql支援的常見join演算法及其適用場景。join是資料庫查詢永遠繞不開的話題,傳統查詢sql技術總體可以分為簡單操作 過濾操作 where 排序操作 limit等 聚合操作 gro...