Hive的并行度的優化

對于分布式任務來說,任務執行的并行度十分重要。Hive的底層是MapReduce,所以Hive的并行度優化分為Map端優化和Reduce端優化。

(1)、Map端優化

Map端的并行度與Map切片數量相關,并行度等于切片數量。一般情況下不用去設置Map端的并行度。以下特殊情況下需要設置Map端并行度。

1.1、查詢表中存在大量的小文件(減小Map并行度)

一個小文件相當于一個切片,所以就會為每個小文件開啟一個maptask任務,因此會啟動大量的maptask,造成資源的大量占用。解決問題的辦法就是進行小文件的合并,把多個小文件合并成一個大文件,這個大文件作為一個切片,然后給這個大文件開啟一個maptask任務即可。合并的操作是CombineHiveInputFormat。相關的參數是:
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

(需要知道使用的是CombineHiveInputFormat操作就可以了,具體的命令用到的時候再查)

1.2、map端有復雜的查詢邏輯

若SQL語句中有正則替換、json解析等復雜耗時的查詢邏輯時,map端的計算會相對慢一些。為了提高map端的計算速度,在計算資源充足的情況下就可以適當的提高map端的并行度。這是只需要減小每個切片的數據量大小就可以了。相關的參數是:

--------------一個切片的最大值---------------

set mapreduce.input.fileinputformat.split.maxsize=256000000;

(2)、Reduce端優化

Reduce端并行度的確定邏輯是:若指定mapreduce.job.reduces的值為一個非負整數,則reduce并行度為指定的值。否則Hive自行估算Reduce并行度。其估算的邏輯是:

假設Job輸入的文件大小為toatlInputBytes,每個Reducer的數據量參數hive.exec.reducers.bytes.per.reducer的值為bytesPerReducer,以及最大Reducer數量參數hive.exec.reducers.max的值為maxReducers。則Reducer端的并行度為:

min(ceil(toatlInputBytes/bytesPerReducer),maxReducers)。

但是在有些情況下,這種估算方式也有不足,因為它是以整個文件大小作為分子進行的估算,合理的應該是進入Reduce端的文件大小來估算,因為整個文件在進入Map端之后可能進行過聚合,那么此時進入Reduce端的數據量就不是整個文件大小。

總結來說:Reduce端的優化就是在于手動的設置并行度的數量,如果未手動設置,則會按照上面的方式來計算并行度。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92857.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92857.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92857.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue.js 響應接口:深度解析與實踐指南

Vue.js 響應接口:深度解析與實踐指南 引言 隨著前端技術的不斷發展,Vue.js 作為一種流行的前端框架,已經成為了眾多開發者的首選。Vue.js 的響應式系統是其核心特性之一,它允許開發者輕松實現數據的雙向綁定。而響應接口則是Vue.j…

高精度藍牙定位:技術、應用與未來發展

一、高精度藍牙定位概述在當今科技飛速發展的時代,定位技術的精度和可靠性變得越來越重要。高精度藍牙定位作為一種新興的定位技術,正逐漸嶄露頭角。藍牙技術是一種支持設備短距離通信(一般10m內)的無線電技術,能在包括…

C# 基于halcon的視覺工作流-章29-邊緣提取-亞像素

C# 基于halcon的視覺工作流-章29-邊緣提取-亞像素 本章目標: 一、1edges_sub_pix; 二、threshold_sub_pix;本實例實現過程與章28基本相同,不同處在于提取的邊緣是亞像素,精度較高,本文僅介紹不同之處&#…

如何實現PostgreSQL的高可用性,包括主流的復制方案、負載均衡方法以及故障轉移流程?

前言 實現 PostgreSQL 的高可用性(High Availability, HA)是一個系統工程,需要結合復制技術、連接路由(負載均衡)、自動故障轉移(Failover)以及監控告警。以下是主流方案和關鍵流程的詳細說明&a…

Apache Ignite 生產級的線程池關閉工具方法揭秘

Apache Ignite 中用于 安全、可靠地關閉線程池&#xff08;ExecutorService&#xff09; 的關鍵邏輯。我們來一步步深入理解它的設計思想和實現細節。&#x1f9f1; 一、核心方法&#xff1a;U.shutdownNow(...) public static void shutdownNow(Class<?> owner, Nullab…

Unity:GUI筆記(一)——文本、按鈕、多選框和單選框、輸入框和拖動條、圖片繪制和框繪制

寫在前面&#xff1a;寫本系列(自用)的目的是回顧已經學過的知識、記錄新學習的知識或是記錄心得理解&#xff0c;方便自己以后快速復習&#xff0c;減少遺忘。主要是唐老師的課程。一、重要參數、文本、按鈕GUI相關代碼需要寫在private void OnGUI()中。該函數每幀執行&#x…

wordpress從wp_nav_menu中獲取菜單項

從wp_nav_menu中獲取菜單項&#xff0c;然后檢查這些菜單項是否對應分類(Category)&#xff0c;并輸出這些分類的ID。 以下是完整的代碼實現&#xff1a; <?php // 獲取指定菜單位置的菜單項 $menu_items wp_get_nav_menu_items(wodepress); // wodepress 是菜單位置的名…

第4章 程序段的反復執行2 while語句P128練習題(題及答案)

&#xff08;&#xff08;1&#xff09;閱讀程序#include <bits/stdc.h> using namespace std; //湯永紅 int main(){int n,s0;cin >> n;while(n){s s * 10 n % 10;n / 10;}cout << s << endl;return 0; }分別輸入&#xff1a;0 1024 1234567890輸出…

圖解軟件系統組成

這是基于 ??PlantUML?? 繪制的軟件系統組成部分思維導圖&#xff0c;聚焦技術路線與文件類型的對應關系&#xff0c;采用分層架構展示核心模塊&#xff1a;startmindmap * **軟件系統組成部分*** **一、核心技術棧*** 后端技術* 技術路線: Python Web 框架* 文件類型: .py …

【傳奇開心果系列】Flet框架實現的多人訪問web數據表高并發前后端自定義框架模板

Flet框架實現的多人訪問web數據表高并發前后端自定義框架模板一、效果展示截圖二、應用場景介紹1. **多用戶實時協作**2. **產品管理**3. **數據可視化**三、特色說明1. **實時通信**2. **高性能**3. **用戶友好的界面**4. **日志記錄**5. **安全性**四、總結五、源碼下載地址六…

農業智慧大屏系統 - Flask + Vue實現

下面我將實現一個完整的農業智慧大屏系統&#xff0c;使用Flask作為后端框架&#xff0c;前端使用Vue.js結合ECharts進行數據可視化展示。 設計思路 前端部分&#xff1a; 使用Vue.js構建響應式界面 使用ECharts實現各類農業數據可視化 使用CSS Grid布局實現大屏適配 后端…

Linux中Https配置與私有CA部署指南

Linux中Https配置與私有CA部署指南 一、HTTPS 核心概念特性HTTPHTTPS協議明文傳輸HTTP SSL/TLS端口80443加密未加密數據加密二、SSL/TLS 握手流程 Client → Server ClientHello&#xff1a;支持哪些版本、支持哪些加密算法&#xff0c;隨機生成一組32字節數據 random_c Serve…

【軟考架構】主流數據持久化技術框架

JDO與JPA JDO&#xff08;Java Data Objects&#xff09;和JPA&#xff08;Java Persistence API&#xff09;都是Java中用于對象持久化的規范&#xff0c;但它們在設計目標、技術背景和應用場景上存在顯著區別。以下是兩者的核心對比&#xff1a;1. 規范背景與維護方 JDO&…

服務日志、監控

服務怎么做監控和告警使用 Prometheus 和 Grafana 來實現整個微服務集群的監控和告警&#xff1a;Prometheus&#xff1a;Prometheus 是一個開源的監控系統&#xff0c;具有靈活的數據模型和強大的查詢語言&#xff0c;能夠收集和存儲時間序列數據。它可以通過 HTTP 協議定期拉…

秋招筆記-8.12

我決定從今天開始&#xff0c;在每天的學習內容中加入算法的內容&#xff0c;大致分布時間的話&#xff0c;假設我一天可以學習八個小時&#xff0c;那算法兩個小時&#xff0c;八股三個小時&#xff0c;項目三個小時這樣的分布差不多吧。之所以還是需要做做筆試一是為了應對面…

【從0帶做】基于Springboot3+Vue3的校園表白墻系統

大家好&#xff0c;我是武哥&#xff0c;最近給大家手擼了一個基于SpringBoot3Vue3的校園表白墻系統&#xff0c;可用于畢業設計、課程設計、練手學習&#xff0c;系統全部原創&#xff0c;如有遇到網上抄襲站長的&#xff0c;歡迎聯系博主~ 資料獲取方式 請點開作者頭像看下…

【Linux系列】服務器 IP 地址查詢

博客目錄一、hostname 命令&#xff1a;簡單高效的 IP 查詢工具命令詳解實際應用技巧注意事項二、ip 命令&#xff1a;新一代網絡配置全能工具基本用法在服務器管理和網絡運維中&#xff0c;快速準確地獲取服務器的 IP 地址是一項基本但至關重要的技能。無論是進行遠程連接、配…

【完美解決】在 Ubuntu 24.04 上為小米 CyberDog 2 刷機/交叉編譯:終極 Docker 環境搭建指南

摘要 本文旨在為廣大開發者提供一份在非官方推薦的 Ubuntu 24.04 系統上&#xff0c;成功為小米機器狗 CyberDog 2 進行刷機和交叉編譯的終極解決方案。通過層層排查 setup.sh 依賴缺失、No devices to flash 以及交叉編譯 Segmentation fault 等疑難雜癥&#xff0c;我們發現根…

XX生產線MES系統具體實施方案

一、系統架構設計1. 整體架構圖2. 技術組件清單模塊技術選型部署要求應用服務Spring Boot 3.2 Spring CloudKubernetes Pod (4C8G)實時通信Kafka 3.6 WebSocket3節點集群工業協議Eclipse Milo (OPC UA)獨立服務器 (2C4G)數據庫PostgreSQL 15 TimescaleDB 2.10SSD存儲, 主從復…

Go語言實戰案例:使用模板渲染HTML頁面

在 Web 開發中&#xff0c;身份驗證是一個繞不開的話題。傳統的 Session 機制依賴服務器存儲用戶狀態&#xff0c;而在微服務、分布式架構下&#xff0c;這種方式可能會導致狀態同步困難。 JWT&#xff08;JSON Web Token&#xff09;是一種無狀態的、跨平臺的身份驗證解決方案…