hive的最簡單部署

2021-08-07 04:16:34 字數 3475 閱讀 8344

1. 理解hive存在的原因;

2. 理解hive的工作原理;

3. 理解hive的體系架構;

4. 並學會如何進行內嵌模式部署;

5. 啟動hive,然後將元資料儲存在hdfs上。

1. 完成hive的內嵌模式部署;

2. 能夠

將hive資料儲存在

hdfs

上;3. 待hive環境搭建好後,能夠啟動並執行一般命令。

hive是

hadoop

大資料生態圈中的資料倉儲,其提供以**的方式來組織與管理

hdfs

上的資料、以類

sql的方式來操作**裡的資料,

hive

的設計目的是能夠以類

sql的方式查詢存放在

hdfs

上的大規模資料集,不必開發專門的

mapreduce

應用。

hive本質上相當於乙個

mapreduce

和hdfs

的翻譯終端,使用者提交

hive

指令碼後,

hive

執行時環境會將這些指令碼翻譯成

mapreduce

和hdfs

操作並向集群提交這些操作。

當使用者向hive提交其編寫的

hiveql

後,首先,

hive

執行時環境會將這些指令碼翻譯成

mapreduce

和hdfs

操作,緊接著,

hive

執行時環境使用

hadoop

命令列介面向

hadoop

集群提交這些

mapreduce

和hdfs

操作,最後,

hadoop

集群逐步執行這些

mapreduce

和hdfs

操作,整個過程可概括如下:

(1)使用者編寫

hiveql

並向hive

執行時環境提交該

hiveql。

(2)hive

執行時環境將該

hiveql

翻譯成mapreduce

和hdfs

操作。

(3)hive

執行時環境呼叫

hadoop

命令列介面或程式介面,向

hadoop

集群提交翻譯後的

hiveql。

(4)hadoop

集群執行

hiveql

翻譯後的或。

由上述執行過程可知,hive的核心是其執行時環境,該環境能夠將類

sql語句編譯成

mapreduce。

hive構建在基於靜態批處理的

hadoop

之上,hadoop

通常都有較高的延遲並且在作業提交和排程的時候需要大量的開銷。因此,

hive

並不能夠在大規模資料集上實現低延遲快速的查詢,例如,

hive

在幾百mb

的資料集上執行查詢一般有分鐘級的時間延遲。

因此,hive 並不適合那些需要低延遲的應用,例如,聯機事務處理(

oltp

)。hive

查詢操作過程嚴格遵守

hadoop mapreduce

的作業執行模型,

hive

將使用者的

hiveql

語句通過直譯器轉換為

mapreduce

作業提交到

hadoop

集群上,

hadoop

監控作業執行過程,然後返回作業執行結果給使用者。

hive

並非為聯機事務處理而設計,

hive

並不提供實時的查詢和基於行級的資料更新操作。

hive

的最佳使用場合是大資料集的批處理作業,例如,網路日誌分析。

hive架構與基本組成如圖10-1所示:

圖10-1  hive體系結構

相對於其他元件,hive部署要複雜得多,按

metastore

儲存位置的不同,其部署模式分為內嵌模式、本地模式和完全遠端模式三種。當使用完全模式時,可以提供很多使用者同時訪問並操作

hive

,並且此模式還提供各類介面(

beeline

,cli

,甚至是

pig),這裡我們以內嵌模式為例。

由於使用內嵌模式時,其hive會使用內建的

derby

資料庫來儲存資料庫,此時無須考慮資料庫部署連線問題,整個部署過程可概括如下。

在client機上操作:首先確定存在hive

[root@client~]# ls /usr/cstor/

hive/

[root @client~]#

先為hive配置

hadoop

安裝路徑。

待解壓完成後,進入hive的配置資料夾

conf

目錄下,接著將

hive

的環境變數模板檔案複製成環境變數檔案。

[root@client~]# cd /usr/cstor/hive/conf

[root@client conf]# cp hive-env.sh.template hive-env.sh

[root@client conf]# vim hive-env.sh

在配置檔案中加入以下語句:

hadoop_home=/usr/cstor/hadoop

然後在hdfs裡新建

hive

的儲存目錄。

在hdfs中

新建/tmp 和

/usr/hive/warehouse 兩個檔案

目錄,並對同組使用者增加寫許可權。

[root@client hadoop]# bin/hadoop fs -mkdir /tmp

[root@client hadoop]# bin/hadoop fs -mkdir -p /usr/hive/warehouse

[root@client hadoop]# bin/hadoop fs -chmod g+w /tmp

[root@client hadoop]# bin/hadoop fs -chmod g+w /usr/hive/warehouse

在內嵌模式下,啟動hive指的是啟動

hive

執行時環境,使用者可使用下述命令進入

hive

執行時環境。

啟動hive命令列:

[root@client ~]# cd /usr/cstor/hive/

[root@client hive ]# bin/hive

使用「bin/hive

」命令進入hive環境驗證hive是否啟動成功。如圖10-2所示:

[root@client hive ]# bin/hive

最簡單的zookeeper分布式部署

分布式部署 1.上傳到目標主機,通常我們使用3臺主機進行部署 2.分別解壓縮 tar zxvf zookeeper 3.4.10.tar.gz 3.分別在conf目錄下建立zoo.cfg檔案,內容如下 ticktime 2000 initlimit 5 synclimit 2 datadir tmp...

CDH部署 全網最簡單CDH6 2 0環境部署

主機規劃 sparkproject1 manager 8g 50gb sparkproject2 agent 4g 50gb sparkproject3 agent 4g 50gb 可參考hadoop中linux基本配置那篇文章 hadoop部署 hadoop環境部署1 linux基礎設定 syst...

hive的簡單操作

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料表,並提供類sql查詢功能 類sql的本質就是將sql轉換成mapreduce程式 主要用於做離線資料分析,比直接用mapreduce程式開發效率更高。hive利用hdfs儲存資料,利用mapreduce查詢分析資料 ...