雲端計算大資料學習路線課程大綱資料:hive入門操作

千鋒雲端計算發表於2019-08-14

一、hive產生背景

Apache Hive資料倉儲軟體可以使用SQL方便地閱讀、編寫和管理分佈在分散式儲存中的大型資料集。結構可以投射到已經儲存的資料上。提供了一個命令列工具和JDBC驅動程式來將使用者連線到Hive。

• 由Facebook開源,最初用於解決海量結構化的日誌資料統計問題

• MapReduce程式設計的不便性

• HDFS上的檔案缺少Schema(欄位名,欄位型別等)

二、Hive是什麼

• 構建在Hadoop之上的資料倉儲

• Hive定義了一種類SQL查詢語言:HQL(類似SQL但不完全相同)

• 通常用於進行離線資料處理(採用MapReduce)

• 底層支援多種不同的執行引擎(Hive on MapReduce、Hive on Tez、Hive on Spark)

• 支援多種不同的壓縮格式、儲存格式以及自定義函式(壓縮:GZIP、LZO、Snappy、BZIP2.. ; 儲存:TextFile、SequenceFile、RCFile、ORC、Parquet ; UDF:自定義函式)

到底什麼是Hive,我們先看看Hive官網Wiki是如何介紹Hive的():


雲端計算大資料學習路線課程大綱資料:hive入門操作


Apache Hive  Apache Hive™ 資料倉儲軟體為分散式儲存的大資料集上的讀、寫、管理提供很大方便,同時還可以用SQL語法在大資料集上查詢。

1、是一種易於對資料實現提取、轉換、載入的工具(ETL)的工具。可以理解為資料清洗分析展現。 2、它有一種將大量格式化資料強加上結構的機制。 3、它可以分析處理直接儲存在hdfs中的資料或者是別的資料儲存系統中的資料,如hbase。 4、查詢的執行經由mapreduce完成。 5、hive可以使用儲存過程 6、透過Apache YARN和Apache Slider實現亞秒級的查詢檢索。

三、hive的安裝

1.hive的單機安裝(使用derby做後設資料儲存)

• 安裝包準備

 將hive安裝包 apache-hive-1.2.1-bin.tar.gz 上傳到虛擬機器/bigdata/下

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 JDK安裝包 jdk-8u151-x64.gz

 叢集的準備(linux1,linux2,linux3)

• hive的解壓安裝

 將上傳的hive解壓縮至虛擬機器/app目錄下

 tar -zxvf /app/apache-hive-1.2.1-bin.tar.gz -C /app

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

 mv /app/apache-hive-1.2.1-bin/ /app/hive-1.2.1

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 配置hive的配置檔案

 檢視配置檔案內容

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

 複製配置檔案hive-env.sh.template為hive-env.sh

 cp /app/hive-1.2.1/conf/hive-env.sh.template /app/hive-1.2.1/conf/hive-env.sh

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

 vim /app/hive-1.2.1/conf/hive-env.sh

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 配置hive的環境變數

 vim /etc/profile

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

 source /etc/profile

which hive

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 啟動hadoop叢集

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 啟動hive服務

 hive

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 檢視資料庫

 show databases;

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 建立資料庫

 create database myhive;

show databases;

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 建立表

 create table student(id int,chinese string,math string,English string);

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 載入資料並查詢

 load data local inpath '/root/student.txt' into table student;

select * from student;

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

2.hive的獨立安裝模式(使用mysql做後設資料儲存)

• 安裝MySQL伺服器端和MySQL客戶端,並啟動mysql服務。

• 在linux1上為Hive建立相應的MySQL賬戶,並賦予足夠的許可權

create user 'hive' identified by '123456';

GRANT ALL PRIVILEGES ON *.* TO hive@'%' IDENTIFIED BY '123456' with grant option;

GRANT ALL PRIVILEGES ON *.* TO hive@'localhost' IDENTIFIED BY '123456' with grant option;

flush privileges 


雲端計算大資料學習路線課程大綱資料:hive入門操作


 

檢視是否成功


雲端計算大資料學習路線課程大綱資料:hive入門操作


 

• 在內嵌模式下繼續配置hive:hive-site.xml,hive-env.sh

 配置hive-env.sh

 

雲端計算大資料學習路線課程大綱資料:hive入門操作


 

 配置hive-site.xml,複製/app/hive-1.2.1/conf下的hive-default.xml檔案為hive-site.xml

 

 cp /app/hive-1.2.1/conf/hive-default.xml.template /app/hive-1.2.1/conf/hive-site.xml


 

 vim /app/hive-1.2.1/conf/hive-site.xml

 

• 複製資料驅動jar包到指定目錄/app/hive-1.2.1/lib/下。沒有驅動包會報錯

 

• 使用命令列的方式啟動hive服務,然後檢視資料庫,建立資料庫名為heihei,檢視叢集web頁面

 

 檢視叢集web頁面,可以看見在hdfs上生成了對應heihei資料庫的檔案目錄


 

• 使用beeline訪問hive

 exit命令退出剛才的hive服務,在linux1上修改hadoop 配置檔案 etc/hadoop/core-site.xml,加入如下配置項, 透過httpfs介面匿名的方式登入到hdfs檔案系統。然後重新啟動叢集。

 <property>

     <name> hadoop.proxyuser.root.hosts </name>

     <value> * </value>

</property>

<property>

     <name> hadoop.proxyuser.root.groups </name>

     <value> * </value>

</property>

 使用命令hive --service hiveserver2 & 後臺啟動hive服務

 hive --service hiveserver2 &

 

 克隆視窗作為客戶端連線,執行beeline指令碼

 

 連線服務端,這種方式使用了thrift服務,10000為預設的連線埠號

 !connect jdbc:hive2://linux1:10000

 

 驗證連線的是不是我們剛才用命令列方式訪問的hive服務


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2653699/,如需轉載,請註明出處,否則將追究法律責任。

相關文章