从入门到放弃之大数据Hive
開門見山,今天說說Hive!!!
什么是Hive
Hive:由Facebook開源用于解決海量結(jié)構(gòu)化日志的數(shù)據(jù)統(tǒng)計(jì)。?
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張表,并提供類SQL查詢功能。
本質(zhì)是:將HQL轉(zhuǎn)化成MapReduce程序?
1)Hive處理的數(shù)據(jù)存儲(chǔ)在HDFS?
2)Hive分析數(shù)據(jù)底層的實(shí)現(xiàn)是MapReduce?
3)執(zhí)行程序運(yùn)行在YARN上
為什么使用Hive
1)直接使用hadoop所面臨的問題?
(1)人員學(xué)習(xí)成本太高?
(2)項(xiàng)目周期要求太短?
(3)MapReduce實(shí)現(xiàn)復(fù)雜查詢邏輯開發(fā)難度太大
2)Hive的好處?
(1)操作接口采用類SQL語(yǔ)法,提供快速開發(fā)的能力。?
(2)避免了去寫MapReduce,減少開發(fā)人員的學(xué)習(xí)成本。?
(3)擴(kuò)展功能很方便。
Hive架構(gòu)概述
?
上圖中,Hive通過給用戶提供的一系列交互接口,接收到用戶的指令(SQL),使用自己的Driver,結(jié)合元數(shù)據(jù)(MetaStore),將這些指令翻譯成MapReduce,提交到Hadoop中執(zhí)行,最后,將執(zhí)行返回的結(jié)果輸出到用戶交互接口。
Hive 的特點(diǎn)
1)操作接口采用類SQL語(yǔ)法,提供快速開發(fā)的能力(簡(jiǎn)單、容易上手)?
2)避免了去寫MapReduce,減少開發(fā)人員的學(xué)習(xí)成本。?
3)Hive的執(zhí)行延遲比較高,因此hive常用于數(shù)據(jù)分析,對(duì)實(shí)時(shí)性要求不高的場(chǎng)合;?
4)Hive優(yōu)勢(shì)在于處理大數(shù)據(jù),對(duì)于處理小數(shù)據(jù)沒有優(yōu)勢(shì),因?yàn)镠ive的執(zhí)行延遲比較高。?
5)Hive支持用戶自定義函數(shù),用戶可以根據(jù)自己的需求來實(shí)現(xiàn)自己的函數(shù)。
Hive和數(shù)據(jù)庫(kù)比較
由于 Hive 采用了類似SQL 的查詢語(yǔ)言 HQL(hive query language),因此很容易將 Hive 理解為數(shù)據(jù)庫(kù)。其實(shí)從結(jié)構(gòu)上來看,Hive 和數(shù)據(jù)庫(kù)除了擁有類似的查詢語(yǔ)言,再無類似之處。本文將從多個(gè)方面來闡述 Hive 和數(shù)據(jù)庫(kù)的差異。數(shù)據(jù)庫(kù)可以用在 Online 的應(yīng)用中,但是Hive 是為數(shù)據(jù)倉(cāng)庫(kù)而設(shè)計(jì)的,清楚這一點(diǎn),有助于從應(yīng)用角度理解 Hive 的特性。
總結(jié)
以上是生活随笔為你收集整理的从入门到放弃之大数据Hive的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux内核学习的一些国外网站
- 下一篇: DM8168学习--USB的over-c