电竞比分网-中国电竞赛事及体育赛事平台

分享

Hive簡介

 liang1234_ 2018-08-03

1、Hive的起源

Hive起源于Facebook(一個美國的社交服務(wù)網(wǎng)絡(luò))。Facebook有著大量的數(shù)據(jù),而Hadoop是一個開源的MapReduce實現(xiàn),可以輕松處理大量的數(shù)據(jù)。但是MapReduce程序?qū)τ贘ava程序員來說比較容易寫,但是對于其他語言使用者來說不太方便。此時Facebook最早地開始研發(fā)Hive,它讓對Hadoop使用SQL查詢(實際上SQL后臺轉(zhuǎn)化為了MapReduce)成為可能,那些非Java程序員也可以更方便地使用。hive最早的目的也就是為了分析處理海量的日志。

2、Hive是什么

2.1、Hive是數(shù)據(jù)倉庫

數(shù)據(jù)倉庫英文名DataWarehouse,可簡寫為DW或DWH。數(shù)據(jù)倉庫 ,由數(shù)據(jù)倉庫之父比爾·恩門(Bill Inmon)于1990年提出,主要功能仍是將組織透過資訊系統(tǒng)之聯(lián)機(jī)事務(wù)處理(OLTP)經(jīng)年累月所累積的大量資料,透過數(shù)據(jù)倉庫理論所特有的資料儲存架構(gòu),作一有系統(tǒng)的分析整理,以利各種分析方法如聯(lián)機(jī)分析處理(OLAP)、數(shù)據(jù)挖掘(Data Mining)之進(jìn)行,并進(jìn)而支持如決策支持系統(tǒng)(DSS)、主管資訊系統(tǒng)(EIS)之創(chuàng)建,幫助決策者能快速有效的自大量資料中,分析出有價值的資訊,以利決策擬定及快速回應(yīng)外在環(huán)境變動,幫助建構(gòu)商業(yè)智能(BI)。往白了說數(shù)據(jù)倉庫就是用來作為查詢分析的數(shù)據(jù)庫,很少用來插入,修改,刪除

2.2、Hive是解釋器、編譯器、優(yōu)化器、執(zhí)行器

簡單的將就是說HQL會被Hive解釋,編譯,優(yōu)化并生成查詢計劃,一般情況而言查詢計劃會被轉(zhuǎn)化為MapReduce任務(wù)進(jìn)而執(zhí)行。

3、Hive架構(gòu)

  • 用戶接口 :命令行接口CLI、客戶端接口Client 、WebGUI接口WUI
  • 元數(shù)據(jù)存儲:通常在關(guān)系型數(shù)據(jù)庫之內(nèi)
  • 解釋器、編譯器、優(yōu)化器、執(zhí)行器
  • Hadoop:HDFS用來進(jìn)行MapReduce分布式計算
解釋:
CLI命令行接口最常用,啟動的時候會打開一個副本
Client 是 Hive 的客戶端,用戶連接至 Hive Server。在啟動 Client 模式的時候,需要指出 Hive Server 所在節(jié)點,并且在該節(jié)點啟動 Hive Server
WUI是瀏覽器訪問Hive,一般很少使用,第一次使用的時候可能要部署網(wǎng)站。
Hive的元數(shù)據(jù)(比如表信息等)存儲在關(guān)系型數(shù)據(jù)庫如Derby、Mysql數(shù)據(jù)庫,但是它的真實數(shù)據(jù)存儲在HDFS文件系統(tǒng)之上,大部分操作都有MapReduce來執(zhí)行。
圖解Hive的架構(gòu)和運行流程請打開網(wǎng)址(點擊打開鏈接)

4、Hive的安裝

Hive有三種模式(內(nèi)嵌模式、本地模式、遠(yuǎn)程模式)詳細(xì)的安裝方法請參照該博客(點擊打開鏈接

5、Hive的數(shù)據(jù)類型

·基本類型:整數(shù)型、浮點型、布爾型、字符串型
·復(fù)雜數(shù)據(jù)類型:數(shù)組型、集合型、結(jié)構(gòu)型
·時間型:Date、timestamp
下面我具體舉幾個建表例子,來看一下Hive的一些數(shù)據(jù)類型

----------array型---------------------------------------
create table student(
id int,
name string,
grade array<double>
)
------------map型----------------------------
create table student1(
id int,
name string,
grade map<string,float>
)
-------------復(fù)雜array型--------------------------
create table student2(
id int,
name string,
grade array<map<string,double>>
)
--------------復(fù)雜結(jié)構(gòu)型------------------
create table student3(
id int,
massage struct<name:string,id:int,grade:map<string,float> >
)

6、Hive中表的分類

  • 內(nèi)部表
  • 外部表
  • 分區(qū)表
  • 桶表
內(nèi)部表:什么是內(nèi)部表需要對比外部表來看
·刪表時數(shù)據(jù)和表一起刪除

外部表:
·數(shù)據(jù)已經(jīng)存在于HDFS
·外部表只是走一個過程,加載數(shù)據(jù)和創(chuàng)建表同時完成,不會移動到數(shù)據(jù)倉庫目錄中,僅僅是和數(shù)據(jù)建立了一個連接
·刪表數(shù)據(jù)不會刪除數(shù)據(jù)

內(nèi)部表外部表區(qū)分:
在導(dǎo)入數(shù)據(jù)到外部表,數(shù)據(jù)并沒有移動到自己的數(shù)據(jù)倉庫目錄下,也就是說外部表中的數(shù)據(jù)并不是由它自己來管理的!而內(nèi)部表表則不一樣;在刪除內(nèi)部表的時候,Hive將會把屬于表的元數(shù)據(jù)和數(shù)據(jù)全部刪掉;而刪除外部表的時候,Hive僅僅刪除外部表的元數(shù)據(jù),數(shù)據(jù)是不會刪除的!

分區(qū)表:
·在Hive Select查詢中,一般會掃描整個表內(nèi)容,會消耗很多時間做沒必要的工作。 分區(qū)表指的是在創(chuàng)建表時,指定partition的分區(qū)空間。掃描時可以只掃描某一個分區(qū)的數(shù)據(jù)
·分區(qū)表存儲時分局所設(shè)立的分區(qū)分別存儲數(shù)據(jù)(分區(qū)字段就是一個文件夾的標(biāo)識)

桶表
·對于每一個表(table)或者分區(qū),Hive可以進(jìn)一步組織成桶,也就是說捅是更為細(xì)粒度的數(shù)據(jù)范困劃分。
·桶表是對指定的分桶的列進(jìn)行哈希運算,運算結(jié)果模(%)分桶的數(shù)量然后把數(shù)據(jù)根據(jù)運算結(jié)果分別放入這幾個桶中

下面寫幾個建表小例子來對比一下

----------內(nèi)部表---------------------------------------
create table student(
id int,
name string,
grade array<double>
)
-------------分區(qū)表---------------------

create table p_t(
id int,
age int
)partitioned by (gender string)
row format delimited fields terminated by ','

------外部表----------------------------------------------------------
create external table e_t(
id int,
name string,
age int) row format delimited fields terminated by ',' location '/lws/' --注意這里'/lws/'為HDFS上面的文件所在目錄
--------桶表-----------------------------------------------------------------------
create table b_t(
id int,
name string,
age int
)clustered by (name) into 5 buckets row format delimited fields terminated by ','

其他的關(guān)于Hive內(nèi)容請看下面鏈接 。如果本文對你有所幫助別忘了點贊哦害羞

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多