hadoop Hive(9)

Hivejava

1. 簡介web

數據倉庫工具。能夠把hadoop下的原始結構化數據變成Hive中的表sql

支持一種與SQL幾乎徹底相同的語言HiveQL。除了不支持更新,索引和事務,幾乎sql的其餘特徵都能支持shell

能夠當作是從sql到map-reduce的映射器數據庫

提供shell、JDBC/ODBC、Thrift、Web等接口服務器

clip_image002

起源自facebook由Jeff Hammerbacher領導的團隊架構

構建在hadoop上數據倉庫框架框架

設計目的是讓sql技能良好,但Java技能較弱的分析師能夠查詢海量數據函數

08年facebook把hive項目貢獻給Apache工具

2. Hive的組件與體系架構

用戶接口:shell,thrift,web等

Thrift服務器

元數據 「Derby, Mysql等」

解析器

Hadoop

clip_image004

3. 架構圖

clip_image006

4. Hive安裝(能夠在網上獲取安裝文檔)

內嵌模式:元數據保持在內嵌的Derby模式,只容許一個會話鏈接

1) 下載hive安裝包

2) 安裝

(1) 上傳hive安裝包到機器上,使用root用戶登陸:

tar –zxvf hive-0.8.1.tar.gz

(2)將解壓的hive分別移動並更名爲/usr/local/hive

rm -rf /usr/local/hive mv hive-0.8.1 /usr/local/hive

3) 配置hive

(1)修改/usr/local/hive/bin/hive-config.sh

在文件末尾加入

export JAVA_HOME=/usr/local/jdk

export HIVE_HOME=/usr/local/hive

export HADOOP_HOME=/usr/local/hadoop

(2) 根據hive-default.xml複製hive-site.xml

cp /usr/local/hive/conf/hive-default.xml /usr/local/hive/conf/hive-site.xml

(3)配置hive-site.xml,主要配置項以下

hive.metastore.warehouse.dir: (HDFS上的)數據目錄 ,默認值是/usr/hive/ware

hive.exec.scratchdir: (HDFS上的)臨時文件目錄,默認值是/tmp/hive-${user.name}

以上是默認值,暫時不改

(4)改變/usr/local/hive的目錄全部製爲hadoop

chown –R hadoop:hadoop /usr/local/hive

(5)配置hive的log4j

clip_image008

本地獨立模式:在內嵌模式的基礎上,在本地安裝Mysql,把元數據放到Mysql內

clip_image010

遠程模式:在本地模式的基礎上,

元數據放置在遠程的Mysql數據庫

clip_image012

clip_image014

clip_image016

clip_image018

clip_image020

clip_image022

5. Hive shell

執行HiveQL(大約至關於SQL92標準)

查看或臨時設置Hive參數,只對當前會話有效

建立函數

曹如jar包

6. 建立表

clip_image024

clip_image026

插入數據

clip_image028

查詢

clip_image030

錶鏈接

clip_image032

7. JDBC/ODBC接口

(1) 用戶能夠像鏈接傳統數據庫同樣使用JDBC或ODBC鏈接HIVE, 目前還不成熟

(2) JDBC的具體鏈接過程

1) 使用jdbc的方式鏈接hive,首先作的事情就是須要啓動Thrift Server,不然鏈接hive的時候會報connection refused的錯誤

啓動命令以下 hive –service hiveserver

2)新建java項目,而後將hive/lib下的全部jar包和hadoop的核心jar包hadoop0.20.2-core.jar添加到項目的類路徑上

3) 樣板代碼

8.hive的數據放在哪兒?

數據在HIDFS的warehouse目錄下,一個表對應一個子目錄

桶與reduce

本地的/tmp目錄存放日誌和執行計劃

clip_image034

相關文章
相關標籤/搜索