HIVE簡明教程

来源:http://www.cnblogs.com/chybin/archive/2016/09/24/5903799.html
-Advertisement-
Play Games

完整PDF下載:《HIVE簡明教程》 前言 Hive是對於數據倉庫進行管理和分析的工具。但是不要被“數據倉庫”這個詞所嚇倒,數據倉庫是很複雜的東西,但是如果你會SQL,就會發現Hive是那麼的簡單,簡單到甚至不用學就可以使用Hive做出業務需求所需要的東西。 但是Hive和SQL畢竟不同,執行原理、 ...


完整PDF下載:《HIVE簡明教程》

 

前言

Hive是對於數據倉庫進行管理和分析的工具。但是不要被“數據倉庫”這個詞所嚇倒,數據倉庫是很複雜的東西,但是如果你會SQL,就會發現Hive是那麼的簡單,簡單到甚至不用學就可以使用Hive做出業務需求所需要的東西。

但是Hive和SQL畢竟不同,執行原理、優化方法,底層架構都完全不相同。

大數據離線分析使用Hive已經成為主流,但是目前市面上Hive相關的中文書籍只有一本《Hive編程指南》,對於不懂技術的數據分析人員來說,這本書有些繁瑣和深奧;對於Hive技術人員來說,這本書對於原理和細節描述的又顯得淺顯和不足。

基於工作中的Hive使用情況,我整理了這個實用性的教程,這個教程分為三個部分:Hive基本使用、Hive執行原理與優化、Hive高級知識。由淺入深地簡單介紹Hive技術。

第一部分:完全以日常使用為目標,整理了常用的Hive語法,而拋棄了不常用的部分,用來滿足不懂技術的分析人員來快速使用Hive進行常見的日常數據分析。

第二部分:如果想能寫出高效的Hive語句,必須要先瞭解Hive執行原理,然後掌握一系列的優化方法。所以第二部分主要內容是Hive原理與優化。

第三部分:講解Hive的一系列技術細節,以滿足技術人員想瞭解技術細節的要求,為能更加高效和靈活地使用Hive提供技術基礎。

三個部分的詳細說明:

模塊

主要內容

預期目標

面對人群

Hive基本使用

Hive概念、常用語法、內置函數、自定義函數

可以使用Hive做常見的大數據分析工作

能統計出數即可的分析人員

Hive執行原理與優化

Hive技術架構、執行原理、優化方法

瞭解Hive執行原理,可以寫出性能比較好的Hive程式

對性能有要求的分析人員

Hive高級知識

Hive技術細節

瞭解Hive技術細節

對Hive原理感興趣的人員

參考資料:

1、Hive編程指南》 Eduard Capriolo、Dean Wampler、Jason Rutberglen 著   曹坤 譯

2、Hive官方文檔:https://cwiki.apache.org/confluence/display/Hive/GettingStarted

3、互聯網上其他資源

 

 

第一部分:Hive基本使用

一、         Hive簡介

1、           定義

2、           Hive的幾個特點

3、           Hive使用

二、         Hive中的基本數據類型

三、         Hive DDL 數據定義語法

1、           創建資料庫

2、           查看資料庫定義

3、           查看資料庫列表

4、           刪除資料庫

5、           切換當前資料庫

6、           創建普通表

7、           創建分區表

8、           創建桶表

9、           查看有哪些表

10、         查看表定義

11、         修改表

12、         刪除表

四、         Hive DML 數據管理語法

1、           向Hive中載入數據

2、           導出數據

3、           插入數據

4、           複製表

5、           克隆表

6、           備份表

7、           還原表

五、         Hive QL 數據查詢語法

1、           Select 查詢

2、           Where篩選

3、           Group By 分組

4、           子查詢

六、         Join

1、           Hive Join的限制

2、           Inner join

3、           Left join

4、           Right join

5、           Full join

6           Left Semi-Join ( exists 語句)

七、         排序

1、           Order By

2、           Sort By

3、           Distribute By 和 Sort By

4、           Cluster By

5、           常見全局排序需求

八、         Hive內置函數

1、           參考資料

2、           explode函數

3、           collect_set函數

4、           collect_list函數

九、         Hive自定義函數

1、           UDF用戶自定義函數(一進一齣)

2、           UDAF用戶自定義聚合函數(多進一齣)

3、           UDTF自定義表生成函數(一進多出)

第二部分:Hive執行原理與優化

十、         Hive技術架構

1、           架構圖

2、           Hive的核心

3、           Hive的底層存儲

4、           Hive程式的執行過程

5、           Hive的元數據存儲

6、           Hive客戶端

十一、             MapReduce執行過程

十二、             Shuffle原理

1、           Map Shuffle過程

2、           Reduce Shuffle過程

十三、             性能瓶頸和優化

十四、             HiveQL層面優化

1、           利用分區表優化

2、           利用桶表優化

3、           join優化

4、           啟用mapjoin

5、           桶表mapjoin

6、           Group By數據傾斜優化

7、           Order By優化

8、           Group By Map端聚合

9、           一次讀取多次插入

10、         Join欄位顯示類型轉換

11、         使用orc、parquet等列式存儲格式

十五、             Hive架構層面優化

1、           不執行MapReduce

2、           本地模式執行MapReduce

3、           JVM重用

4、           並行化

十六、             Hive底層MapReduce優化

1、           合理設置Map數

2、           合理設置reduce數

第三部分:Hive高級知識

十七、             Hive文件格式

1、           常見文件格式

2、           列式存儲

十八、             Hive壓縮方法

1、           壓縮的原因

2、           Hadoop常用壓縮方法

3、           配置Hadoop壓縮解壓

4、           Hive中的壓縮

十九、             複雜類型

1、           舉例

2、           array類型

3、           map類型

4、           struct類型

5、           union類型

6、           欄位分隔符

二十、             Hive SQL轉換為MapReduce過程

二十一、        Hive解釋器

1、           詞法語法解析

2、           生成抽象語法樹

二十二、        Hive編譯器

二十三、        Hive優化器

二十四、        Hive執行器

附錄A : HIVE安裝

1、           安裝Hive

2、           配置Hive

3、           安裝MySQL資料庫

4、           在遠程MySQL存儲模式配置

5、           啟動Hadoop

6、           啟動Hive

7、           測試hive

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 說明:實現功能:(1)屏幕右半部分上滑,聲音變大,下滑,聲音變小 屏幕左半部分上滑,亮度變大,下滑,亮度變小(2)如果亮度>1或者小於0.2時,手機震動 private float startY;//記錄手指按下時的Y坐標 private float startX;//記錄手指按下時的Y坐標 pri ...
  • 本文地址:http://www.cnblogs.com/wuyudong/p/5900800.html,轉載請註明源地址。 1、解析json數據 解析json的代碼很簡單 2、使用消息機制發送不同類型消息 在獲取伺服器端json數據後,得到app的版本號,通過和客戶端的版本號進行對比 可以使用and ...
  • 文本轉語音技術, 也叫TTS, 是Text To Speech的縮寫. iOS如果想做有聲書等功能的時候, 會用到這門技術. 一,使用iOS自帶TTS需要註意的幾點: 二,代碼示例, 播放語音 三,AVSpeechSynthesizer介紹 這個類就像一個會說話的人, 可以”說話”, 可以”暫停”說 ...
  • 添加配置許可權 添加Push Notifications支持 開關開啟後會自動生成xxxx.entitlements文件 這裡需要註意幾點 生成的該文件是否包含到你的打包工程中Bundle Resources中 如果沒有手動添加進去 如果工程有多個Target 且多個證書在一起建議不要使用 Autom ...
  • handler通俗一點講就是用來在各個線程之間發送數據的處理對象。在任何線程中,只要獲得了另一個線程的handler,則可以通過 handler.sendMessage(message)方法向那個線程發送數據。基於這個機制,我們在處理多線程的時候可以新建一個thread,這個thread擁有UI線程... ...
  • UIWebView是IOS內置的瀏覽器,可以瀏覽網頁,打開文檔 html/htm pdf docx txt等格式的文件。 safari瀏覽器就是通過UIWebView做的。 伺服器將MIME的標識符等放入傳送的數據中告訴瀏覽器使用那種插件讀取相關文件。 uiwebview載入各種本地文件(通過loa ...
  • SQL 基礎知識梳理(一)- 資料庫與 SQL 序 目錄 What's 資料庫 資料庫結構 SQL 概要 創建表 刪除和更新表 1-1 What's 資料庫 1.資料庫(Database,DB):將大量數據保存起來,通過電腦加工而成的可以進行高效訪問的數據集合。如:大型-銀行存儲的信息,小型-電話 ...
  • 原文地址:http://www.cnblogs.com/verrion/p/mysql_optimised.html MySQL優化聊兩句 MySQL不多介紹,今天聊兩句該如何優化以及從哪些方面入手,很多運維從業者一說起優化就不知所措,當運營過程中某個參數值到達一定閥值之後,就會出現各種問題,很多運 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...