Hivejava
1. 簡介web
數據倉庫工具。能夠把hadoop下的原始結構化數據變成Hive中的表sql
支持一種與SQL幾乎徹底相同的語言HiveQL。除了不支持更新,索引和事務,幾乎sql的其餘特徵都能支持shell
能夠當作是從sql到map-reduce的映射器數據庫
提供shell、JDBC/ODBC、Thrift、Web等接口服務器
起源自facebook由Jeff Hammerbacher領導的團隊架構
構建在hadoop上數據倉庫框架框架
設計目的是讓sql技能良好,但Java技能較弱的分析師能夠查詢海量數據函數
08年facebook把hive項目貢獻給Apache工具
2. Hive的組件與體系架構
用戶接口:shell,thrift,web等
Thrift服務器
元數據 「Derby, Mysql等」
解析器
Hadoop
3. 架構圖
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
本地獨立模式:在內嵌模式的基礎上,在本地安裝Mysql,把元數據放到Mysql內
遠程模式:在本地模式的基礎上,
元數據放置在遠程的Mysql數據庫
5. Hive shell
執行HiveQL(大約至關於SQL92標準)
查看或臨時設置Hive參數,只對當前會話有效
建立函數
曹如jar包
6. 建立表
插入數據
查詢
錶鏈接
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目錄存放日誌和執行計劃