Hive学习路线图
Hadoop家族系列文章,主要介紹Hadoop家族產(chǎn)品,常用的項(xiàng)目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的項(xiàng)目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。
從2011年開(kāi)始,中國(guó)進(jìn)入大數(shù)據(jù)風(fēng)起云涌的時(shí)代,以Hadoop為代表的家族軟件,占據(jù)了大數(shù)據(jù)處理的廣闊地盤(pán)。開(kāi)源界及廠商,所有數(shù)據(jù)軟件,無(wú)一不向Hadoop靠攏。Hadoop也從小眾的高富帥領(lǐng)域,變成了大數(shù)據(jù)開(kāi)發(fā)的標(biāo)準(zhǔn)。在Hadoop原有技術(shù)基礎(chǔ)之上,出現(xiàn)了Hadoop家族產(chǎn)品,通過(guò)“大數(shù)據(jù)”概念不斷創(chuàng)新,推出科技進(jìn)步。
作為IT界的開(kāi)發(fā)人員,我們也要跟上節(jié)奏,抓住機(jī)遇,跟著Hadoop一起雄起!
關(guān)于作者:
- 張丹(Conan), 程序員Java,R,PHP,Javascript
- weibo:@Conan_Z
- blog:?http://blog.fens.me
- email: bsspirit@gmail.com
轉(zhuǎn)載請(qǐng)注明出處:
http://blog.fens.me/hadoop-hive-roadmap/
前言
Hive是Hadoop家族中一款數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品,Hive最大的特點(diǎn)就是提供了類SQL的語(yǔ)法,封裝了底層的MapReduce過(guò)程,讓有SQL基礎(chǔ)的業(yè)務(wù)人員,也可以直接利用Hadoop進(jìn)行大數(shù)據(jù)的操作。就是這一個(gè)點(diǎn),解決了原數(shù)據(jù)分析人員對(duì)于大數(shù)據(jù)分析的瓶頸。
讓我們把Hive的環(huán)境構(gòu)建起來(lái),幫助非開(kāi)發(fā)人員也能更好地了解大數(shù)據(jù)。
目錄
1. Hive介紹
Hive起源于Facebook,它使得針對(duì)Hadoop進(jìn)行SQL查詢成為可能,從而非程序員也可以方便地使用。Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的SQL查詢功能,可以將SQL語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)運(yùn)行。
Hive是建立在 Hadoop 上的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)構(gòu)架。它提供了一系列的工具,可以用來(lái)進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載(ETL),這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在 Hadoop 中的大規(guī)模數(shù)據(jù)的機(jī)制。Hive 定義了簡(jiǎn)單的類 SQL 查詢語(yǔ)言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數(shù)據(jù)。同時(shí),這個(gè)語(yǔ)言也允許熟悉 MapReduce 開(kāi)發(fā)者的開(kāi)發(fā)自定義的 mapper 和 reducer 來(lái)處理內(nèi)建的 mapper 和 reducer 無(wú)法完成的復(fù)雜的分析工作。
詳細(xì)地Hive的安裝和使用介紹,請(qǐng)參考文章:Hive安裝及使用攻略
2. Hive學(xué)習(xí)路線圖
Hive的知識(shí)點(diǎn),我已經(jīng)列在圖中,希望幫助其他人更好的了解Hive。
接下來(lái),是我的使用經(jīng)歷,誰(shuí)都沒(méi)有捷徑。把心踏實(shí)下來(lái),就不那么難了。
3. 我的使用經(jīng)歷
我使用Hive有兩個(gè)考慮:
- 1. 幫助無(wú)開(kāi)發(fā)經(jīng)驗(yàn)的數(shù)據(jù)分析人員,有能力處理大數(shù)據(jù)
- 2. 構(gòu)建標(biāo)準(zhǔn)化的MapReduce開(kāi)發(fā)過(guò)程
1). 幫助無(wú)開(kāi)發(fā)經(jīng)驗(yàn)的數(shù)據(jù)分析人員,有能力處理大數(shù)據(jù)
完全符合與Hive的設(shè)計(jì)理念,一直在強(qiáng)調(diào),無(wú)需多言。
2). 構(gòu)建標(biāo)準(zhǔn)化的MapReduce開(kāi)發(fā)過(guò)程
這個(gè)方面是我們需要努力的方向。
首先,Hive已經(jīng)用類SQL的語(yǔ)法封裝了MapReduce過(guò)程,這個(gè)封裝過(guò)程就是MapReduce的標(biāo)準(zhǔn)化的過(guò)程。
我們?cè)谧鰳I(yè)務(wù)或者工具時(shí),會(huì)針對(duì)場(chǎng)景用邏輯封裝,這是第二層封裝是在Hive之上的封裝。在第二層封裝時(shí),我們要盡可能多的屏蔽Hive的細(xì)節(jié),讓接口單一化,低少靈活性,再次精簡(jiǎn)HQL的語(yǔ)法結(jié)構(gòu)。只滿足我們的系統(tǒng)要求,專用的接口。
在使用二次封裝的接口時(shí),我們已經(jīng)可以不用知道Hive是什么, 更不用知道Hadoop是什么。我們只需要知道,SQL查詢(SQL92標(biāo)準(zhǔn)),怎么寫(xiě)效率高,怎么寫(xiě)可以完成業(yè)務(wù)需要就可以了。
當(dāng)我們完成了Hive的二次封裝后,我們可以構(gòu)建標(biāo)準(zhǔn)化的MapReduce開(kāi)發(fā)過(guò)程。
通過(guò)上圖的思路,我們可以統(tǒng)一企業(yè)內(nèi)部各種應(yīng)用對(duì)于Hive的依賴,并且當(dāng)人員素質(zhì)升高后,有可以剝離Hive,用更優(yōu)秀的底層解決方案來(lái)替換,如果封裝的接口的不變,甚至替換Hive時(shí)業(yè)務(wù)使用都不知道,我們已經(jīng)替換了Hive。
這個(gè)過(guò)程是需要經(jīng)歷的,也是有意義的。當(dāng)我在考慮構(gòu)建Hadoop分析工具時(shí),以Hive作為Hadoop訪問(wèn)接口是最有效的。
3). 有關(guān)Hive的運(yùn)維:
因?yàn)镠ive是基于Hadoop構(gòu)建的,簡(jiǎn)單地說(shuō)就是一套Hadoop的訪問(wèn)接口,Hive本身并沒(méi)有太多的東西,所以運(yùn)維上面我們注意下面幾個(gè)問(wèn)題就行了。
- 1. 使用單獨(dú)的數(shù)據(jù)庫(kù)存儲(chǔ)元數(shù)據(jù)
- 2. 定義合理的表分區(qū)和鍵
- 3. 設(shè)置合理的bucket數(shù)據(jù)量
- 4. 進(jìn)行表壓縮
- 5. 定義外部表使用規(guī)范
- 6. 合理的控制Mapper, Reducer數(shù)量
4. Hive的使用案例
已經(jīng)整理成文章的案例
- Hive安裝及使用攻略
- Hive導(dǎo)入10G數(shù)據(jù)的測(cè)試
- R利劍NoSQL系列文章 之 Hive
- 用RHive從歷史數(shù)據(jù)中提取逆回購(gòu)信息
相關(guān)文章:
Hadoop家族產(chǎn)品學(xué)習(xí)路線圖
轉(zhuǎn)載請(qǐng)注明出處:
http://blog.fens.me/hadoop-hive-roadmap/
總結(jié)
- 上一篇: Hadoop家族学习路线图
- 下一篇: Mahout学习路线图