Ubuntu kylin優麒麟下配置Hive環境
阿新 • • 發佈:2020-11-03
Ubuntu kylin優麒麟下配置Hive環境
Hive簡介
- 什麼是Hive
hive是基於Hadoop的一個數據倉儲工具,可以將結構化的資料檔案對映為一張資料表,並提供SQL查詢功能,可以將SQL語句轉化為MapReduce任務進行執行。hive是基於Hadoop的一個數據倉儲工具,可以將結構化的資料檔案對映為一張資料表,並提供SQL查詢功能,可以將SQL語句轉化為MapReduce任務進行執行。 - Hive的優點
學習成本年低,可以通過類SQL語句快速實現簡單的MapReduce統計計算,不必開發專門的MapReduce,十分適合資料倉儲的統計與分析。 - Hive的缺點
雖然用類SQL簡化了操作,但是實際上還是在hdfs上呼叫了MapReduce,這樣的話,效率還是有所降低的。 - 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與傳統資料庫進行比較
查詢語言 | HQL | SQL |
---|---|---|
資料儲存位置 | HDFS | 本地FS |
資料格式 | 使用者定義 | 系統決定 |
資料更新 | 不支援 | 支援 |
索引 | 新版本有,但弱 | 有 |
執行 | MapReduce | Executor |
執行延遲 | 高 | 低 |
可擴充套件性 | 高 | 低 |
資料規模 | 大 | 小 |
Hive 中沒有定義專門的資料格式,資料格式可以由使用者指定,使用者定義資料格式需要指定三個屬性:列分隔符(通常為空格、”\t”、”\x001″)、行分隔符 (”\n”)以及讀取檔案資料的方法(Hive 中預設有三個檔案格式 TextFile,SequenceFile 以及 RCFile)。由於在載入資料的過程中,不需要從用使用者資料格式到 Hive 定義的資料格式的轉換,因此,Hive 在載入的過程中不會對資料本身進行任何修改,而只是將資料內容複製或者移動到相應的 HDFS 目錄中。而在資料庫中,不同的資料庫有不同的儲存引擎,定義了自己的資料格式。所有資料都會按照一定的組織儲存,因此,資料庫載入資料的過程會比較耗時。
環境配置
1、下載Hive安裝包
http://hive.apache.org/downloads.html2、將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配置檔案