Hive 學習筆記(一)Hive簡介

Apache Hive

Hive 是基於Hadoop平臺下的一個數據倉庫工具,它能用於數據集成、ad-hoc queries、大數據分析. 它的本質就是將相似於熟悉的SQL的語句轉換爲MapReduce程序, 這種語句叫HiveQL.mysql

Apache HiveTM 有如下特色:web

  • 它提供了一個易用的ETL工具
  • 它提供多樣數據格式的轉換機制
  • 它能直接在 Apache HDFSTM中存取數據,也能夠對數據存儲系統進行存取,好比Apache HBaseTM
  • 它就是經過查詢自動的轉換爲了MR。

同時,這個語言也容許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 沒法完成的複雜的分析工做。Hive 的設計不是用於在線事物處理,也不提供實時查詢或低層次更新.他最適用於不可變的大數據集的批量任務 (like web logs).sql

Hive的基本構架數據庫

Hive 的結構能夠分爲如下幾部分:apache

  • 用戶接口:包括 CLI, Client, WUI
  • 元數據存儲。一般是存儲在關係數據庫如 mysql, derby 中
  • 解釋器、編譯器、優化器、執行器
  • Hadoop:用 HDFS 進行存儲,利用MapReduce 進行計算

      

 

一、 用戶接口主要有三個:CLI,Client和 WUI。其中最經常使用的是 CLI,Cli 啓動的時候,會同時啓動一個 Hive 副本。Client 是 Hive 的客戶端,用戶鏈接至 Hive Server。在啓動 Client 模式的時候,須要指出 Hive Server 所在節點,而且在該節點啓動 Hive Server。 WUI 是經過瀏覽器訪問 Hive。瀏覽器

二、 Hive 將元數據存儲在數據庫中,如 mysql、derby。Hive 中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否爲外部表等),表的數據所在目錄等。app

三、 解釋器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,並在隨後有 MapReduce 調用執行。工具

四、Hive 的數據存儲在 HDFS 中,大部分的查詢由 MapReduce 完成(包含 * 的查詢,好比 select * from tbl 不會生成 MapRedcue 任務)。oop

相關文章
相關標籤/搜索