1. 程式人生 > 實用技巧 >Ubuntu kylin優麒麟下配置Hive環境

Ubuntu kylin優麒麟下配置Hive環境

Ubuntu kylin優麒麟下配置Hive環境

Hive簡介

  1. 什麼是Hive
    hive是基於Hadoop的一個數據倉儲工具,可以將結構化的資料檔案對映為一張資料表,並提供SQL查詢功能,可以將SQL語句轉化為MapReduce任務進行執行。hive是基於Hadoop的一個數據倉儲工具,可以將結構化的資料檔案對映為一張資料表,並提供SQL查詢功能,可以將SQL語句轉化為MapReduce任務進行執行。
  2. Hive的優點
    學習成本年低,可以通過類SQL語句快速實現簡單的MapReduce統計計算,不必開發專門的MapReduce,十分適合資料倉儲的統計與分析。
  3. Hive的缺點
    雖然用類SQL簡化了操作,但是實際上還是在hdfs上呼叫了MapReduce,這樣的話,效率還是有所降低的。
  4. Hive資料倉儲與資料庫的區別
    Hive:資料倉儲
    Hive:直譯器、編譯器、優化器等。
    Hive:執行時,元資料儲存在關係型資料庫裡面。
    資料倉儲主要用來儲存資料,對資料進行分析計算,一次寫入,多次讀取,不能修改,不能刪除單條資料,除非把整個檔案刪除。我們用的修改其實是覆蓋,先把整個檔案下載下來,修改後重新上傳。
    Hive的主要功能可以將一條資料轉換為MapReduce,Hive依賴於HDFS和Yarn。

Hive架構

  • 使用者介面:包括CLI,JDBC/ODBC,web UI
  • 元資料儲存,通常是儲存在關係型資料庫中mysql,derby中
  • 直譯器、編譯器、優化器完成HQL查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃儲存在HDFS中,並在隨後有MapReduce呼叫執行。
  • Hive的真實資料(源資料)儲存在HDFS中,大部分的查詢、計算由MapReduce完成(包含*的查詢,比如select * from tbl不會生成MapRedcue任務)。

Hive與傳統資料庫進行比較

查詢語言HQLSQL
資料儲存位置 HDFS 本地FS
資料格式 使用者定義 系統決定
資料更新 不支援 支援
索引 新版本有,但弱
執行 MapReduce Executor
執行延遲
可擴充套件性
資料規模

Hive 中沒有定義專門的資料格式,資料格式可以由使用者指定,使用者定義資料格式需要指定三個屬性:列分隔符(通常為空格、”\t”、”\x001″)、行分隔符 (”\n”)以及讀取檔案資料的方法(Hive 中預設有三個檔案格式 TextFile,SequenceFile 以及 RCFile)。由於在載入資料的過程中,不需要從用使用者資料格式到 Hive 定義的資料格式的轉換,因此,Hive 在載入的過程中不會對資料本身進行任何修改,而只是將資料內容複製或者移動到相應的 HDFS 目錄中。而在資料庫中,不同的資料庫有不同的儲存引擎,定義了自己的資料格式。所有資料都會按照一定的組織儲存,因此,資料庫載入資料的過程會比較耗時。

環境配置

1、下載Hive安裝包

http://hive.apache.org/downloads.html

2、將hive檔案上傳到HADOOP叢集,並解壓

tar-zxvfapache-hive-1.2.1-bin.tar.gz -C /usr/local

3、配置環境變數,編輯/etc/profile

vim /etc/profile

#set hive env

export HIVE_HOME=/usr/local/hive

export PATH=${HIVE_HOME}/bin:$PATH

#讓環境變數生效

source /etc/profile

4、修改hive配置檔案

  • 進入配置檔案的目錄
cd /usr/local/hive/conf/

  • 修改hive-env.sh檔案(如果沒有就新建)
cp hive-env.sh.template hive-env.sh
vim /hive-env.sh

將以下內容寫入到hive-env.sh檔案中

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
  • 修改log4j檔案(如果沒有就新建)
cp hive-log4j.properties.template hive-log4j.properties

  • 配置遠端登入模式

touch hive-site.xml

將以下資訊寫入到hive-site.xml檔案中

5、安裝mysql並配置hive資料庫及許可權

  • 安裝mysql資料庫及客戶端

yuminstallmysql-server

yuminstallmysql

servicemysqld start

  • 配置hive元資料庫

mysql-u root -p

createdatabasehivedb;

  • 對hive元資料庫進行賦權,開放遠端連線,開放localhost連線

grantallprivilegeson*.*toroot@"%"identifiedby"root"withgrantoption;

grantallprivilegeson*.*toroot@"localhost"identifiedby"root"withgrantoption;

6、執行hive命令即可啟動hive

hive

4、修改hive配置檔案