1. 程式人生 > >Hive從入門到精通系列之--0.Hive概述和安裝環境

Hive從入門到精通系列之--0.Hive概述和安裝環境

 

一 Hive概述

Hive是由Facebook開源用於解決海量結構化日誌的資料統計

Hive是基於Hadoop框架的一個數據倉庫分析工具,這裡對於資料倉庫,何為資料倉庫?mysql,orical,sqlserver我們叫這些為資料庫,所謂資料倉庫就是在這個資料倉庫中這些資料庫都包含了進去。Hive既然是基於Hadoop的,那麼也就意味著啟動Hive之前必須要啟動Hadoop,Hive可以將結構化的資料對映成為一張表格,並且提供類sql的語法,他是一個分析資料的框架,資料本身儲存在HDFS上,資料的操作以mapreduce形式執行,表的元資料儲存在mysql中。

學習Hive的要點:

  1. Hive是一個工具,安裝只需要一臺即可。

  2. Hive的核心是將hql與mapreduce相互轉換。

  3. HIve是針對資料倉庫提出的一款資料分析的工具,資料倉庫是讀多寫少的。

二 Hive的下載安裝

2.1 hive下載

hive的網址:http://hive.apache.org/

點選左側DOWNLOADS進入下載頁面:

點選上圖Download  a release now選擇對應版本下載,儘量老版本,穩定

2.2 安裝配置

(1)使用xftp工具將下載好的hive上傳到hadoop102機器上

(2)解壓hive的tar包

tar       -zxvf     apache-hive-1.2.1-bin.tar.gz    -C   /opt/module

(3)配置Hive的環境變數

vim    /etc/profile

新增如下:

##HIVE_HOME

export HIVE_HOME=/opt/module/apache-hive-1.2.1-bin

export PATH=$PATH:$HIVE_HOME/bin

最後切記source   /etc/profile使其生效

(4)配置hive-env.sh

進入hive的conf目錄下

將hive-env.sh.template名稱改為hive-env.sh:mv    hive-env.sh.template       hive-env.sh

vim    hive-env.sh

修改如下:

export HADOOP_HOME=/opt/module/hadoop-2.7.2           基於hadoop'的框架,肯定要告訴它hadoop在哪

export HIVE_CONF_DIR=/opt/module/hive/conf                 配置hive的配置檔案地址,就是安裝目錄的那個conf

三 Hive的啟動

3.1 啟動Hadoop

sbin/start-dfs.sh

sbin/start-yarn.sh

3.2準備兩個資料夾

進入hadoop檔案下    bin/hdfs   dfs   -mkdir  /tmp

                                  bin/hdf     dfs   -mkdir   -p    /user/hive/warehouse

關於tmp,我進去看過,感覺就是個臨時檔案,具體幹什麼的我也沒有搞清楚,旁邊也沒有大神可以詢問

關於warehouse,這個我知道,Hive是一個工具,他可以建立表的元資料,前面也提過它儲存在HDFS上,具體的位置就是這個warehouse

3.3Hive的基本操作

前面說Hive是一個數據分析的工具,牢記工具二字,它不是像hadoop和zookeeper一樣提供服務的框架,它只是一個操作hadoop的哦你根據,客戶端,好比方說nvicat和mysql等資料庫的關係。

(1)啟動Hive:進入hive目錄下 bin/hive

如果此時報錯,

java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x

如上圖所示,說明這是許可權問題,會Linux都會改:bin/hdfs dfs -chmod -R 777 /tmp。

(2)檢視資料庫:show   databases;

(3)退出Hive:exit;或者quit;

(4)顯示所有表格:show  tables;

(5)建立表格:create   table    test1(id   int,name    string);

(6)查看錶的結構:desc   test1;

和sql語句真的很像,但是在Hive中,這些語句叫做hql,簡直不要太尷尬。