前邊我們介紹了Hadoop項目的兩大基礎支柱HDFS和MapReduce,隨后又介紹了子項目Pig:1種用類似于SQL的、面向數據流的語言對HDFS下的數據進行處理的MapReduce上層客戶端,這大大滿足了那些不會Java,不會寫MapReduce的程序員。但是對那些之前1直從事Oracle等關系型數據庫數據分析的數據分析師,DBA等,還是有些辣手的。而Hadoop的另外一個子項目Hive則解決了這個問題。
好,先看下這篇博客的脈絡圖:
1,Hive的概念:Hive是基于Hadoop的1個數據倉庫工具,可以將結構化的數據文件映照為1張數據庫表,并提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。其優點是學習本錢低,可以通過類SQL語句(Hive QL)快速實現簡單的MapReduce統計,沒必要開發專門的MapReduce利用,10分合適數據倉庫的統計分析。 我們可以將其看作是從SQL到MapReduce的映照器。
2,Hive的安裝:首先要知道Hive將HDFS中的數據組織為表,通過這類方式為HDFS數據賦予結構,而這些數據(例如表模式)稱之為Hive的元數據,其寄存在metastore中。根據metastore寄存位置不同,我們可以分為3種安裝模式:
1,內嵌模式:metastore服務和Hive服務運行在同1個JVM中,包括1個內嵌的以本地磁盤作為存儲的Derby數據庫實例。此種安裝簡單,適用于學習,只允許1個會話連接。
2,本地獨立模式:將元數據寄存在獨立的數據庫中,MySql是很受歡迎的選擇,利用metastore服務連接到本地安裝的MySql數據庫中,支持多會話多用戶連接。
3,遠程模式:元數據放置在遠程的MySql數據庫中,這樣1個或多個metastore服務和Hive服務運行在不同的進程內。
好,Hive的安裝是子項目里邊比較簡單的,這里看下的內嵌模式的安裝:
A,下載并解壓到用戶目錄下:
tar xzf ./apache-hive⑴.2.1-bin.tar.gz
解壓的目錄和其它項目都是類似的,不再講述:
B,設置環境變量:
exportHIVE_HOME=/home/ljh/apache-hive⑴.2.1-bin
exportPATH=$PATH:$HIVE_HOME/bin
exportCLASSPATH=$CLASSPATH:$HIVE_HOME/bin
C,配置文件設置:
c.1,hive-env.sh
復制: cp hive-env.sh.template hive-env.sh
設置hadoop_home:HADOOP_HOME=/home/ljh/hadoop⑴.2.1
設置hive的配置文件路徑:export HIVE_CONF_DIR=/home/ljh/apache-hive⑴.2.1-bin/conf
c.2,hive-site.xml
復制:cp hive-default.xml.template hive-site.xml
注意:內嵌模式這里不怎樣需要配置,如果是獨立模式,遠程模式,則需要對mysql等進行配置,我們可以通過baidu,google進行各項參數的了解。
D,啟動hive:
./hive便可。
其它方式安裝參考:
http://sishuok.com/forum/blogPost/list/6221.html
http://blog.csdn.net/xqj198404/article/details/9109715
3,經常使用sql語句進行操作Hive,無在意表的創建,刪除,數據的增查(刪和改其實都是增的操作),特點和里邊的數據類型看這篇博客:http://blog.csdn.net/chenxingzhen001/article/details/20901045
1,建表:create tabletest(id string ,name string)
ROW FORMAT DELIMITED FIELDSTERMINATED BY |
STORED AS TEXTFILE
2,將HDFS中的數據文件加載的表中:
LOAD DATA LOCAL INPATH ./examples/files/test.txt OVERWRITE INTO TABLE test;
3,將查詢結果插入到表中,兩個hive表中的數據進行過濾插入:
insert overwrite tabletest2 select id,name from test where idis not null;
4,查詢:select id ,name from test;
5,表連接:select test.id test1,name from test join test1 on(test.id=test1.id);
這里只是簡單的操作,具體的Hive的sql語法,可以參考這篇文章,寫的很好很全面:
http://www.cnblogs.com/HondaHsu/p/4346354.html
4,Hive的體系架構:最經典的1張圖:
4.1,基本組成:
?用戶接口,包括CLI,JDBC/ODBC,WebUI
?元數據存儲,通常是存儲在關系數據庫如mysql, derby 中
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈