日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Apache Hive 通用調優featch抓取機制 mr本地模式

瀏覽:297日期:2023-03-07 14:40:16
目錄
  • Apache Hive-通用優化-featch抓取機制 mr本地模式
    • Fetch抓取機制
    • mapreduce本地模式
    • 切換Hive的執行引擎
  • Apache Hive-通用優化-join優化
    • - reduce端join
    • -map端join
    • reduce 端 join 優化
    • map 端 join 優化
  • Apache Hive--通用調優--數據傾斜優化
    • group by數據傾斜
    • join數據傾斜
  • Apache Hive--通用調優--MR程序task個數調整
    • maptask個數
    • reducetask個數
  • 通用優化-執行計劃
    • 通用優化-并行機制,推測執行機制
    • Hive的嚴格模式

Apache Hive-通用優化-featch抓取機制 mr本地模式

Fetch抓取機制

  • 功能:在執行sql的時候,能不走MapReduce程序處理就盡量不走MapReduce程序處理.
  • 盡量直接去操作數據文件。

設置: hive.fetch.task.conversion= more。

--在下述3種情況下 sql不走mr程序--全局查找select * from student;--字段查找select num,name from student;--limit 查找select num,name from student limit 2;

mapreduce本地模式

  • MapReduce程序除了可以提交到yarn集群分布式執行之外,還可以使用本地模擬環境運行,當然此時就不是分布式執行的程序,但是針對小文件小數據處理特別有效果。
  • 用戶可以通過設置hive.exec.mode.local.auto的值為true,來讓Hive在適當的時候自動啟動這個 優化。

功能:如果非要執行==MapReduce程序,能夠本地執行的,盡量不提交yarn上執行==。

默認是關閉的。意味著只要走MapReduce就提交yarn執行。

mapreduce.framework.name = local 本地模式mapreduce.framework.name = yarn 集群模式 

Hive提供了一個參數,自動切換MapReduce程序為本地模式,如果不滿足條件,就執行yarn模式。

set hive.exec.mode.local.auto = true;--3個條件必須都滿足 自動切換本地模式The total input size of the job is lower than: hive.exec.mode.local.auto.inputbytes.max (128MB by default)  --數據量小于128MThe total number of map-tasks is less than: hive.exec.mode.local.auto.tasks.max (4 by default)  --maptask個數少于4個The total number of reduce tasks required is 1 or 0.  --reducetask個數是0 或者 1

切換Hive的執行引擎

WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

如果針對Hive的調優依然無法滿足你的需求 還是效率低, 嘗試使用spark計算引擎 或者Tez.

Apache Hive-通用優化-join優化

在了解join優化的時候,我們需要了解一個前置知識點:map端join 和reduce端join

- reduce端join

  • 這種join的弊端在于map階段沒有承擔太多的責任,所有的數據在經過shuffle在reduce階段實現的,而shuffle又是影響性能的核心點.

-map端join

  • 首先啟動本地任務將join中小表數據進行分布式緩存
  • 啟動mr程序(只有map階段)并行處理大數據,并且從自己的緩存中讀取小表數據,進行join,結果直接輸出到文件中
  • 沒有shuffle過程 也沒有reduce過程
  • 弊端:緩存太小導致表數據不能太大

reduce 端 join 優化

適合于大表Join大表

bucket join-- 適合于大表Join大表

方式1:Bucktet Map Join 分桶表

語法: clustered by colName(參與join的字段)
參數: set hive.optimize.bucketmapjoin = true
要求: 分桶字段 = Join字段 ,分桶的個數相等或者成倍數,必須是在map join中

方式2:Sort Merge Bucket Join(SMB)

基于有序的數據Join
語法:clustered by colName sorted by (colName)
參數
set hive.optimize.bucketmapjoin = true;
set hive.auto.convert.sortmerge.join=true;
set hive.optimize.bucketmapjoin.sortedmerge = true;
set hive.auto.convert.sortmerge.join.noconditionaltask=true;
要求: 分桶字段 = Join字段 = 排序字段,分桶的個數相等或者成倍數

map 端 join 優化

  • hive.auto.convert.join.noconditionaltask
hive.auto.convert.join=trueHive老版本#如果參與的一個表大小滿足條件 轉換為map joinhive.mapjoin.smalltable.filesize=25000000  Hive2.0之后版本#是否啟用基于輸入文件的大小,將reduce join轉化為Map join的優化機制。假設參與join的表(或分區)有N個,如果打開這個參數,并且有N-1個表(或分區)的大小總和小于hive.auto.convert.join.noconditionaltask.size參數指定的值,那么會直接將join轉為Map join。hive.auto.convert.join.noconditionaltask=true hive.auto.convert.join.noconditionaltask.size=512000000 

Apache Hive--通用調優--數據傾斜優化

數據傾斜優化
什么是數據傾斜
描述的數據進行分布式處理 分配不平均的現象
數據傾斜的后果
某個task數據量過大 執行時間過長 導致整體job任務遲遲不結束
執行時間長 出bug及風險幾率提高
霸占運算資源 遲遲不釋放
通常如何發現數據傾斜
在yarn或者其他資源監控軟件上 發現某個job作業 卡在某個進度遲遲不動 (注意 倒不是報錯)
造成數據傾斜的原因
數據本身就傾斜
自定義分區、分組規則不合理
業務影響 造成數據短期高頻波動
數據傾斜的通用解決方案
1、有錢 有預警
增加物理資源 單獨處理傾斜的數據
2、沒錢 沒有預警
傾斜數據打散 分步執行
先將傾斜數據打散成多干份
處理的結果再最終合并
hive中數據傾斜的場景
場景一:group by 、count(distinct)
hive.map.aggr=true; map端預聚合
手動將數據隨機分區 select * from table distribute by rand();
如果有數據傾斜問題 開啟負載均衡
先啟動第一個mr程序 把傾斜的數據隨機打散分散到各個reduce中
然后第二個mr程序把上一步結果進行最終匯總
hive.groupby.skewindata=true;
場景二:join
提前過濾,將大數據變成小數據,實現Map Join
使用Bucket Join
使用Skew Join
將Map Join和Reduce Join進行合并,如果某個值出現了數據傾斜,就會將產生數據傾斜的數據單獨使用Map Join來實現
最終將Map Join的結果和Reduce Join的結果進行Union合并
Hive中通常指的是在reduce階段數據傾斜

解決方法

group by數據傾斜

方案一:開啟Map端聚合

hive.map.aggr=true;#是否在Hive Group By 查詢中使用map端聚合。#這個設置可以將頂層的部分聚合操作放在Map階段執行,從而減輕清洗階段數據傳輸和Reduce階段的執行時間,提升總體性能。但是指標不治本。

方案二:實現隨機分區

實現隨機分區select * from table distribute by rand();

方案三:數據傾斜時==自動負載均衡==只使用group by

hive.groupby.skewindata=true;#開啟該參數以后,當前程序會自動通過兩個MapReduce來運行#第一個MapReduce自動進行隨機分布到Reducer中,每個Reducer做部分聚合操作,輸出結果#第二個MapReduce將上一步聚合的結果再按照業務(group by key)進行處理,保證相同的分布到一起,最終聚合得到結果

join數據傾斜

  • 方案一:提前過濾,將大數據變成小數據,實現Map Join
  • 方案二:使用Bucket Join
  • 方案三:使用Skew Join

數據單獨使用Map Join來實現

#其他沒有產生數據傾斜的數據由Reduce Join來實現,這樣就避免了Reduce Join中產生數據傾斜的問題#最終將Map Join的結果和Reduce Join的結果進行Union合并#開啟運行過程中skewjoinset hive.optimize.skewjoin=true;#如果這個key的出現的次數超過這個范圍set hive.skewjoin.key=100000;#在編譯時判斷是否會產生數據傾斜set hive.optimize.skewjoin.compiletime=true;set hive.optimize.union.remove=true;#如果Hive的底層走的是MapReduce,必須開啟這個屬性,才能實現不合并set mapreduce.input.fileinputformat.input.dir.recursive=true;

Apache Hive--通用調優--MR程序task個數調整

maptask個數

  • 如果是在MapReduce中 maptask是通過==邏輯切片==機制決定的。
  • 但是在hive中,影響的因素很多。比如邏輯切片機制,文件是否壓縮、壓縮之后是否支持切割。
  • 因此在==Hive中,調整MapTask的個數,直接去HDFS調整文件的大小和個數,效率較高==。

合并的大小最好=block size

如果大文件多,就調整blocl size

reducetask個數

  • 如果在MapReduce中,通過代碼可以直接指定 job.setNumReduceTasks(N)
  • 在Hive中,reducetask個數受以下幾個條件控制的

hive.exec.reducers.bytes.per.reducer=256000000
每個任務最大的 reduce 數,默認為 1009
hive.exec.reducsers.max=1009
mapreduce.job.reduces
該值默認為-1,由 hive 自己根據任務情況進行判斷。

--如果用戶用戶不設置 hive將會根據數據量或者sql需求自己評估reducetask個數。
--用戶可以自己通過參數設置reducetask的個數
set mapreduce.job.reduces = N
--用戶設置的不一定生效,如果用戶設置的和sql執行邏輯有沖突,比如order by,在sql編譯期間,hive又會將reducetask設置為合理的個數。

Number of reduce tasks determined at compile time: 1

通用優化-執行計劃

通過執行計劃可以看出==hive接下來是如何打算執行這條sql的==。

語法格式:explain + sql語句

通用優化-并行機制,推測執行機制

并行執行機制

  • 如果hivesql的底層某些stage階段可以并行執行,就可以提高執行效率。
  • 前提是==stage之間沒有依賴== 并行的弊端是瞬時服務器壓力變大。

參數

set hive.exec.parallel=true; --是否并行執行作業。適用于可以并行運行的 MapReduce 作業,例如在多次插入期間移動文件以插入目標set hive.exec.parallel.thread.number=16; --最多可以并行執行多少個作業。默認為8。

Hive的嚴格模式

  • 注意。不要和動態分區的嚴格模式搞混淆。
  • 這里的嚴格模式指的是開啟之后 ==hive會禁止一些用戶都影響不到的錯誤包括效率低下的操作==,不允許運行一些有風險的查詢。

設置

set hive.mapred.mode = strict --默認是嚴格模式  nonstrict

解釋

1、如果是分區表,沒有where進行分區裁剪 禁止執行

2、order by語句必須+limit限制

推測執行機制 ==建議關閉==。

  • MapReduce中task的一個機制。
  • 功能:

一個job底層可能有多個task執行,如果某些拖后腿的task執行慢,可能會導致最終job失敗。

所謂的==推測執行機制就是通過算法找出拖后腿的task,為其啟動備份的task==。

兩個task同時處理一份數據,誰先處理完,誰的結果作為最終結果。

  • 推測執行機制默認是開啟的,但是在企業生產環境中==建議關閉==。

以上就是Apache Hive 通用調優featch抓取機制 mr本地模式的詳細內容,更多關于Apache Hive 通用調優的資料請關注其它相關文章!

標簽: Linux Apache
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美久久久网站| 天堂av在线| 国产字幕视频一区二区| 欧美日韩在线观看首页| 岛国av在线播放| 在线看片国产福利你懂的| 麻豆精品新av中文字幕| 国产精品久久久久久av公交车| 视频一区在线播放| 蜜臀a∨国产成人精品| 中文字幕免费一区二区| 日本不卡的三区四区五区| 欧美日韩国产一区二区在线观看| 欧美日一区二区在线观看| 久久狠狠久久| 午夜视频一区二区在线观看| 国产一二在线播放| 亚洲午夜精品久久久久久app| 99视频精品全部免费在线视频| 99久久99久久精品国产片果冰| 久久亚洲二区| 欧美激情三区| 欧美三级精品| 日本不卡一二三区黄网| 亚洲欧美在线综合| 日日夜夜免费精品视频| 日韩精选在线| 久久影视三级福利片| 91日韩欧美| 欧美在线亚洲综合一区| 日韩在线成人| 免费一级欧美片在线观看网站| 国产成人久久精品麻豆二区| 亚洲www啪成人一区二区| 亚洲激情黄色| 欧美日韩亚洲一区在线观看| 精品国产18久久久久久二百| 日韩精品电影| 99香蕉国产精品偷在线观看| 亚洲丝袜啪啪| 国产一区二区三区成人欧美日韩在线观看| 久久久久久久久丰满| 日韩制服丝袜av| 国产精品红桃| 免费av一区| 日本a级不卡| 日韩不卡在线| 午夜久久av| 黑森林国产精品av| 鲁大师成人一区二区三区| 久久国产日韩欧美精品| 日韩电影二区| 香蕉久久久久久| 国产成人调教视频在线观看| 婷婷综合五月| 中文亚洲欧美| av成人国产| 国产中文欧美日韩在线| 亚洲欧美日韩国产| 日韩中出av| 国产亚洲欧美日韩精品一区二区三区| 亚欧洲精品视频在线观看| 久久高清免费观看| 日本午夜精品久久久久| 国产一区二区精品福利地址| 中文在线一区| 精品国产欧美日韩一区二区三区| 亚洲免费观看| 国产日产高清欧美一区二区三区| 日韩中文在线电影| 日韩欧美久久| 亚洲高清成人| 久久99久久人婷婷精品综合| 免费日本视频一区| 日韩精品1区| 国产日韩一区二区三区在线| 国产亚洲福利| av最新在线| 欧美日韩99| 国产午夜精品一区二区三区欧美| 精品三级久久久| 日韩和欧美的一区| aⅴ色国产欧美| 国产一区二区三区亚洲综合| 亚洲欧美网站在线观看| 亚洲高清av| 国产精选在线| 国产精品www994| 亚洲色图综合| 亚洲精品一区二区妖精| 日韩久久电影| 国产精品第一| 日本视频在线一区| 蜜臀精品一区二区三区在线观看 | 久久麻豆精品| 欧美日韩日本国产亚洲在线| 欧美国产先锋| 亚洲另类黄色| 视频在线观看国产精品| 蜜臀久久久99精品久久久久久| 亚洲欧美日韩一区在线观看| 国产视频一区三区| 欧美一级精品| 在线一区视频观看| 国产精品成久久久久| 日本aⅴ精品一区二区三区| 香蕉精品999视频一区二区| 在线日韩中文| 久久国产欧美| 国产成人精品亚洲日本在线观看| 久久亚州av| 国产精品宾馆| 国产精品一区三区在线观看| 日韩高清成人在线| 日韩国产高清在线| 日韩毛片一区| 日韩国产欧美三级| 97se亚洲| 国产私拍福利精品视频二区| 热久久久久久| 日本a级不卡| 欧美亚洲自偷自偷| 欧美亚洲色图校园春色| 久久国产精品免费一区二区三区| 日韩高清欧美激情| 国产午夜久久av| 国产精品久久久久久模特| 免费观看亚洲天堂| 国产在线一区不卡| 欧美aa在线观看| 亚洲第一区色| 蜜桃久久av| 日日夜夜免费精品视频| 国产亚洲一区二区三区啪| 国产精品久久亚洲不卡| 欧美激情网址| 最新亚洲一区| 亚洲精品在线国产| 国产精品4hu.www| 欧美在线影院| 亚洲精品欧美| 乱一区二区av| 国产精品丝袜xxxxxxx| 国产精品白丝久久av网站| 国产精品v日韩精品v欧美精品网站| 亚洲1234区| 欧美手机在线| 亚洲综合日韩| 日韩精品欧美成人高清一区二区| 欧美一区91| 日韩一区精品| 欧美中文一区| 精品国产麻豆| 99热精品久久| 亚洲欧美日韩国产| 91九色综合| 91欧美国产| 国产精品试看| 欧美一级久久| 福利一区和二区| 亚洲天堂久久| 日日夜夜免费精品| 麻豆一区二区三| 久久久夜精品| 蜜桃视频在线观看一区二区| 亚洲精品看片| 九九九精品视频| 香蕉精品久久| 日韩精品久久久久久久软件91| 久久精品国产免费| 99久久久久| 少妇精品久久久一区二区三区| 久久一区精品| 欧美日韩国产精品一区二区亚洲| 91亚洲精品在看在线观看高清| 91亚洲国产成人久久精品| 亚洲欧美日韩视频二区| 国产精品4hu.www| 亚洲精品自拍| 蜜桃视频一区二区三区在线观看 | 电影91久久久| 欧美激情福利| 你懂的国产精品永久在线| 麻豆91小视频| 久久精品亚洲| 国产成人调教视频在线观看| 国内揄拍国内精品久久| 色综合狠狠操| 蜜桃传媒麻豆第一区在线观看| 国产精选一区| 欧美日韩国产在线一区| 国产精品一区二区三区美女 | 激情久久久久久| 日韩高清电影一区| 久久精品国产大片免费观看| 91成人福利| 欧美在线亚洲| 色婷婷色综合| 久久国产三级| 性欧美精品高清|