Hive初識

Hive產生背景:

在給大家講解Hive之前,我們要先熟悉下Hadoop的一些概念。

Hadoop可以分爲一下幾個部分
    HDFS hadoop的文件系統,用於數據存儲
    MapReduce 用於數據處理
    Yarn 用於資源管理
那Hadoop 中的MapReduce程序一般處理輸入都是一些標準化的日誌,假設我們有如下的日誌文件。
姓名 科目 成績
張三 語文 90
李四 語文 80
王五 語文 88
張三 數學 99
李四 數學 98
王五 數學 90
我們需要對這些數據進行處理,如獲取成績最高者、統計平均分等。
那麼沒做一次處理我們就需要像寫八股文似的進行編寫MapReduce程序:
    1、編寫Mapper
    2、編寫Reducer
    3、編寫main
    4、在main中定義job
    5、設置job的輸入、輸出以及參數
    6、執行job
這樣就需要我們對MapReduce編程十分的熟悉,並且這種方式比較費時費力。同時,在一般的公司中,
對這種有固定格式的數據進行處理我們一般都交由專門的DB進行處理,但是DB又對MapReduce的編程不瞭解,
讓他們編寫MapReduce程序來處理數據就不太現實,那有沒有一種或者一個工具,
能讓他們使用類似sql的方式來清洗數據。
答案當然是有的,那就是我們的Hive。

Hive是什麼

Hive是一個在hadoop基礎上來處理結構化數據的數據倉庫基礎工具。這裏說它是一個工具,

它主要的功能就是方便我們處理數據,但是數據的存儲等還是在HDFS上。
Hive是架構在Hadoop之上,可以提供類似SQL語言的查詢語句進行簡化大數據的處理以及清晰,
方便DB進行數據處理。
Hive開始是有Facebook開發,後由Apache軟件基金會開發,並將其Apache下的一個頂級項目。
Hive爲一個開源項目,它用在好多不同的公司。

Hive的特點

1、它不像關係型數據庫只能處理少量的數據,hive由於架構在Hadoop之上,本身就賦予了其處理大數據的能力。
2、它提供一種類似SQL的查詢語言,叫HQL或者HiveQL。
3、由於本身就是在MapReduce上進行的二次擴展,因此hive就具有了良好的可擴展型,
如果出現一個hive提供不了的處理,我們可以通過編寫mapreduce程序,將其封裝成hive的一個函數。

hive的基本原理

HIve只是一個工具,他將HQL轉換成MapReduce程序運行在Yarn上面,進行處理HDFS上存儲的數據,
這樣就可以讓我們對於簡單的數據處理,只是編寫一下HQL就可以了,不用在編寫MapReduce程序。

Hive架構

Hive初識
用戶在使用Hive的過程中,通過CLI、JDBC/ODBC、WebUI等方式,提供HQL語句到hive中,hive通過編譯、優化、執行,將經過優化的HQL語句進行轉換成MapReduce程序放到yarn上運行。
針對開始提出的查詢成績最高的那一行,我們只需要寫如下的HQL就可以了:
select * from table order by sorce desc limit 0,1

到此,整個hive的介紹就個大家講解完成了,在下一篇中,我們講會講解hive的安裝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章