大數據教程(11.8)Hive1.2.2簡介&初體驗

           上一篇文章分析了Hive1.2.2的安裝,本節博主將分享Hive的體驗&Hive服務端和客戶端的使用方法。mysql

    1、Hive與hadoop直接的關係web

           Hive利用HDFS存儲數據,利用MapReduce查詢數據。sql

    2、Hive與傳統數據庫對比shell

  Hive RDBMS
查詢語言 HQL SQL
數據存儲 HDFS Raw Device or Local FS
執行 MapReduce、spark等 Excutor執行引擎
執行延遲
處理數據規模
索引 0.8版本後加入位圖索引 有完整的索引體系

           總結:hive具備sql數據庫的外表(包括sql命令行功能、sql語法等),但應用場景徹底不一樣,hive只適合用來作批量數據統計分析。數據庫

    3、Hive的數據存儲
           a、Hive中全部的數據都存儲在 HDFS 中,沒有專門的數據存儲格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)
           b、只須要在建立表的時候告訴 Hive 數據中的列分隔符和行分隔符,Hive 就能夠解析數據。
           c、Hive 中包含如下數據模型:DB、Table,External Table,Partition,Bucket。
                db:在hdfs中表現爲${hive.metastore.warehouse.dir}目錄下一個文件夾
                table:在hdfs中表現所屬db目錄下一個文件夾
                external table:外部表, 與table相似,不過其數據存放位置能夠在任意指定路徑
                普通表: 刪除表後, hdfs上的文件都刪了
                External外部表刪除後, hdfs上的文件沒有刪除, 只是把文件刪除了
                partition:在hdfs中表現爲table目錄下的子目錄(如:日誌按日期分區後,便於管理,且查詢效率提高)
                bucket:桶, 在hdfs中表現爲同一個表目錄下根據hash散列以後的多個文件, 會根據不一樣的文件把數據放到不一樣的文件中 (如:在進行笛卡爾積的時候,同一個id的數據必定在某個桶,效率會提高)apache

    4、Hive使用方式centos

           a、Hive交互shell服務器

                 bin/hiveapp

           b、Hive thrift服務oop

    

            thrift是一個跨平臺的協議,只要客戶端遵循thrift協議便可同hive交互;hive自帶的thrift服務端bin/hiveserver2,客戶端爲bin/beeline

            啓動方式,(假如是在hadoop01上):

#啓動爲前臺:
bin/hiveserver2
#啓動爲後臺:
nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

            啓動成功後,能夠在別的節點上用beeline去鏈接
            方式(1)    

#輸入如下命令,回車,進入beeline的命令界面
hive/bin/beeline  
#輸入命令鏈接hiveserver2,(hadoop01是hiveserver2所啓動的那臺主機名,端口默認是10000)
beeline> !connect jdbc:hive2//hadoop01:10000

            方式(2)       

#啓動就鏈接:
bin/beeline -u jdbc:hive2://hadoop01:10000 -n hadoop

            接下來就能夠作正常sql查詢了

            方式(3)   

[hadoop@centos-aaron-h1 ~]$ hive  -e  'sql語句'

    5、使用效果圖

[hadoop@centos-aaron-h1 bin]$ ./hiveserver2
Last login: Wed Jan 23 07:07:45 2019 from 192.168.29.3
[hadoop@centos-aaron-h1 ~]$ ~/apps/apache-hive-1.2.2-bin/bin/beeline -u jdbc:hive2://centos-aaron-h1:10000 -n hadoop        
Connecting to jdbc:hive2://centos-aaron-h1:10000
Connected to: Apache Hive (version 1.2.2)
Driver: Hive JDBC (version 1.2.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.2.2 by Apache Hive
0: jdbc:hive2://centos-aaron-h1:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| default        |
| wcc_log        |
+----------------+--+
2 rows selected (1.86 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> use wcc_log;
No rows affected (0.155 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> show tables;
+--------------+--+
|   tab_name   |
+--------------+--+
| t_web_log01  |
+--------------+--+
1 row selected (0.07 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> select * from t_web_log01;
+-----------------+-------------------+--+
| t_web_log01.id  | t_web_log01.name  |
+-----------------+-------------------+--+
| 1               | 張三                |
| 2               | 李四                |
| 3               | 王二                |
| 4               | 麻子                |
| 5               | 隔壁老王              |
+-----------------+-------------------+--+
5 rows selected (1.064 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> select id , name from t_web_log01;
+-----+-------+--+
| id  | name  |
+-----+-------+--+
| 1   | 張三    |
| 2   | 李四    |
| 3   | 王二    |
| 4   | 麻子    |
| 5   | 隔壁老王  |
+-----+-------+--+
5 rows selected (0.077 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> select id , name from t_web_log01 order by id desc;
INFO  : Number of reduce tasks determined at compile time: 1
INFO  : In order to change the average load for a reducer (in bytes):
INFO  :   set hive.exec.reducers.bytes.per.reducer=<number>
INFO  : In order to limit the maximum number of reducers:
INFO  :   set hive.exec.reducers.max=<number>
INFO  : In order to set a constant number of reducers:
INFO  :   set mapreduce.job.reduces=<number>
INFO  : number of splits:1
INFO  : Submitting tokens for job: job_1548198552826_0001
INFO  : The url to track the job: http://centos-aaron-h1:8088/proxy/application_1548198552826_0001/
INFO  : Starting Job = job_1548198552826_0001, Tracking URL = http://centos-aaron-h1:8088/proxy/application_1548198552826_0001/
INFO  : Kill Command = /home/hadoop/apps/hadoop-2.9.1/bin/hadoop job  -kill job_1548198552826_0001
INFO  : Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
INFO  : 2019-01-23 07:17:45,112 Stage-1 map = 0%,  reduce = 0%
INFO  : 2019-01-23 07:17:52,354 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.22 sec
INFO  : 2019-01-23 07:18:04,679 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 2.13 sec
INFO  : MapReduce Total cumulative CPU time: 2 seconds 130 msec
INFO  : Ended Job = job_1548198552826_0001
+-----+-------+--+
| id  | name  |
+-----+-------+--+
| 5   | 隔壁老王  |
| 4   | 麻子    |
| 3   | 王二    |
| 2   | 李四    |
| 1   | 張三    |
+-----+-------+--+
5 rows selected (38.171 seconds)
0: jdbc:hive2://centos-aaron-h1:10000>

    注意:hive是能夠設置遠端登陸用戶名和密碼的,只是博主系統沒設置,默認爲hive啓動用戶hadoop,端口爲10000. 看了博主的操做有沒有種在使用mysql命令行的感受...

    最後寄語,以上是博主本次文章的所有內容,若是你們以爲博主的文章還不錯,請點贊;若是您對博主其它服務器大數據技術或者博主本人感興趣,請關注博主博客,而且歡迎隨時跟博主溝通交流。

相關文章
相關標籤/搜索