hive的安裝與簡單使用


hive安裝

hive鏡像:

http://mirror.bit.edu.cn/apache/hive/

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

1.解壓、添加環境變量

apache-hive-2.3.6-bin.tar.gz上傳到linux的/opt/目錄下,並解壓。

[root@master opt]# tar -zxvf ./ apache-hive-2.3.6-bin.tar.gz    #解壓文件到當前/opt目錄

[root@master opt]# mv ./apache-hive-2.3.6-bin ./hive   #將文件夾名改為hive

 

添加環境變量:

[root@master opt]#  vi ~/.bash_profile

添加如下代碼:

export HIVE_HOME=/opt/hive

export PATH=$HIVE_HOME/bin:$HIVE_HOME/sbin:$PATH

 

source ~/.bash_profile  #立即生效

2.修改配置文件

在/opt/hive/confg/目錄下新建一個文件名稱為 hive-site.xml

[root@master conf]# vi ./hive-site.xml

內容如下:

<configuration>

<property>

  <name>hive.metastore.warehouse.dir</name>

  <value>/user/hive/warehouse</value>

</property>

 

<property>

    <name>datanucleus.schema.autoCreateAll</name>

    <value>true</value>

    <description>creates necessary schema on a startup if one doesn't exist. set this to false, after creating it once</description>

 </property>

 

 <property>

        <name>hive.metastore.local</name>

       <value>false</value>

       <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>

</property>

 

<property>

    <name>javax.jdo.option.ConnectionURL</name>

   <value>jdbc:mysql://master:3306/hive?createDatebaseIfNotExist=true@amp;useSSL=false</value>

    <description>JDBC connect string for a JDBC metastore</description>

  </property>

<property>

    <name>javax.jdo.option.ConnectionDriverName</name>

    <value>com.mysql.jdbc.Driver</value>

    <description>Driver class name for a JDBC metastore</description>

  </property>

 <property>

    <name>javax.jdo.option.ConnectionUserName</name>

    <value>root</value>

    <description>Username to use against metastore database</description>

   </property>

<property>

   <name>javax.jdo.option.ConnectionPassword </name>

   <value>bigData@123</value>

</property>

 

<property>

   <name>hive.metastore.schema.verification</name>

   <value>false</value>

</property>

 

 <property>

        <name>datanucleus.readOnlyDatastore</name>

        <value>false</value>

    </property>

    <property>

        <name>datanucleus.fixedDatastore</name>

        <value>false</value>

    </property>

 

<property>

    <name>datanucleus.autoCreateSchema</name>

    <value>true</value>

</property>

 

<property>

  <name>datanucleus.autoCreateTables</name>

  <value>true</value>

</property>

<property>

   <name>datanucleus.autoCreateColumns</name>

   <value>true</value>

</property>

</configuration>

 

3.配置hive-env.sh

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

[root@master conf]# vi hive-env.sh

添加如下內容:

HADOOP_HOME=/opt/hadoop   # 配置 HAOOP_HOME 目錄
export HIVE_CONF_DIR=/opt/hive/conf  # 配置 Hive 配置目錄信息

3.添加mysql驅動

使用 Xftp 復制 mysql-connector-java-5.1.46.jar JAVA 驅動包到 hive/lib下面

 

創建目錄,與前面配置目錄對應

[root@master conf]# hadoop fs -mkdir -p /user/hive/warehouse

 

4.啟動hive

啟動hadoop

cd $HADOOP_HOME

./start-all.sh

 

啟動metastore服務:一般默認會自動該服務

[root@master ~]# hive --service metastore &

[1] 6286

 

啟動hive客戶端

hive

 

5.hive簡單使用

以數據源chengdu.txt為例,數據如下:

大數據分析開發工程師|成都|8K-15K|3-5年|本科

雙休大數據銷售高提成|成都|8K-10K|3-5年|中專

無責3K+雙休高提成+大數據|成都|6K-12K|不限|學歷不限

大數據分析專員|成都|6.5K-12K|1-3年|大專

大數據高級工程師|成都-金牛區|10K-15K|3-5年|本科

高級Java工程師(架構、大數據)|成都-天府新區|25K-40K|3-5年|本科

大數據架構師|成都-高新區|20K-30K|5-10年|本科

大數據安全研發工程師|成都-高新區|15K-20K|1-3年|碩士

大數據軟件開發工程師|成都-高新區|10K-15K|不限|本科

大數據架構師|成都-高新區|20K-30K|5-10年|本科

大數據開發工程師|成都-高新區|10K-15K|不限|學歷不限

大數據工程師|成都-高新區|10K-15K|3-5年|本科

大數據架構師初級|成都-高新區|6K-10K|1-3年|本科

大數據架構師|成都-高新區|15K-25K|5-10年|本科

大數據架構師|成都|15K-25K|5-10年|本科

大數據架構師|成都|12K-22K|3-5年|本科  ……

1:創建表:與數據源字段對應

hive> create table tb_chengdu(

    > occupation string,

    > adress string,

    > salary string,

    > work_exp string,

    > education string

    > )row format delimited fields terminated by '|';      ##注意分割符

OK

Time taken: 1.784 seconds

hive>

 

hive> show tables;

OK

tb_chengdu

 

2:加載數據chengdu.tx

hive> load data local inpath '/opt/data/chengdu.txt' into table tb_chengdu;  ##數據在mater本地,並非hdfs上

Loading data to table default.tb_chengdu

OK

Time taken: 5.205 seconds

 

3:查詢前五條大數據相關的職位、薪水、工作經驗、學歷等字段

hive> select occupation,salary,work_exp,education from tb_chengdu where occupation like '%大數據%' limit 5;

OK

大數據分析開發工程師         8K-15K      3-5年       本科

雙休大數據銷售高提成         8K-10K      3-5年       中專

無責3K+雙休高提成+大數據        6K-12K      不限         學歷不限

大數據分析專員     6.5K-12K  1-3年       大專

大數據高級工程師         10K-15K   3-5年       本科

Time taken: 4.175 seconds, Fetched: 5 row(s)

 

hive的使用說明

可以把結構化的數據文件映射成一張數據庫表

學生信息

張三|190908|男|大數據18-1

李四|190907|女|大數據18-1

 

元數據Hive Metasore

Metasore:就是Hive元數據集中存儲的地方。

Hive默認用Derby數據庫存儲元數據,只能允許一個用戶訪問。用於測試。

使用mysql作為外置(遠程)數據存儲引擎。可以多用戶同時訪問。

 

其中常用類型如表1所示。

表1 常用數據類型

類型

名稱

描述

基本類型

整型

分4個子類,分別是TINYINT、SMALLINT、INT、BIGINT 。常用的是INT

浮點型

分FLOAT(單精度浮點數)和DOUBLE(雙精度浮點數)

布爾型

TRUE、FALSE

小數

DECIMAL

字符串

VARCHAR、CHAR、string

日期和時間

DATE、Timestamp

空值

NULL

復合類型

Arrays

數組

Structs

包含多個鍵值對

Maps

鍵值對

 

表類型

Hive的數據表分四類,分別是:內部表、外部表、分區表和桶表。每種表都有各自的特點,這里簡要介紹如下:

(1) 內部表:由Hive自身管理,默認情況下創建的都是內部表。內部表數據存儲位置默認存儲在HDFS的/user/hive/warehouse路徑下,可以通過由hive-site.xml文件中hive.metastore.warehouse.dir節點指定其它目錄。當刪除內部表時,相關元數據和HDFS上的數據也隨之刪除。

(2) 外部表:創建時需要指定external參數。外部表數據的存儲位置由用戶指定。刪除外部表僅僅會刪除元數據,HDFS上的文件並不會被刪除。

(3) 分區表:根據分區字段和分區值在HDFS上創建數據分類目錄。上傳的數據會根據分類存放到不同的目錄下。

(4) 桶表:指定數據分桶的個數,上傳數據時根據鍵的hash值均勻的存到不同的桶中。分桶是將數據拆分成小塊,存到各自的桶,分區是將數據分類存到各自的目錄。

 

附件:

1:hive安裝問題集

https://blog.csdn.net/l1028386804/article/details/51566262   ##無法初始化數據源的問題

https://blog.csdn.net/gaoganghua/article/details/80621670  ##數據庫編碼修改為labtin1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM