Hive2.x、HiveServer、HiveServer2簡述及Beeline使用

Hive2.x

hive2.x特性

  • LLAP(Live Long and Process)Hive2.1進行了極大的性能優化。在Hive2.x開啓LLAP與Apache Hive1.x進行對比測試,其性能提高約25倍。
  • 支持使用HPL/SQL的存儲過程,Hive2.0.0推出的Hive Hybrid Procedural SQL On Hadoop (HPL/SQL) 是一個在Hive上執行過程SQL的工具,它能夠表達複雜的業務規則。
  • 更智能的成本優化器CBO,Hive2.0開始持續不斷地優化成本優化器CBO,尤爲是在BI業務關注的TPC-DS查詢上。
  • 提供全面詳盡的監控和診斷工具,能夠經過新的Hive Server2 Web UI,LLAP Web UI和Tez Web UI查看Hive相關的HQL查詢以及關聯的做業狀態和日誌。豐富了Hive用戶的運維和排錯的手段。

HiveServer

  • 在hive的機器上啓動一個server:客戶端能夠經過ip + port的方式對其進行訪問以後,就能夠有不少客戶端連到這個server上面去幹活能夠採用jdbc、odbc、beeline的方式進行鏈接
  • HiveServer是一種可選服務,容許遠程客戶端可使用各類編程語言向Hive提交請求並檢索結果。HiveServer沒法處理來自多個客戶端的併發請求.從Hive 0.11.0版本開始。建議使用HiveServer2。

HiveServer2

  • HiveServer2(HS2)是一種能使客戶端執行Hive查詢的服務。 HiveServer2是HiveServer1的改進版,HiveServer1已經被廢棄。HiveServer2能夠支持多客戶端併發和身份認證。旨在爲開放API客戶端(如JDBC和ODBC)提供更好的支持。
  • 遠程HiveServer2模式是Hive產品使用的推薦模式,它更加安全而且不須要直接爲用戶對HDFS/metastore進行賦權。

Beeline

  • 是hive的新hiveCLI

CLI hive -vs- Beelinenode

# Beeline操做結果
0: jdbc:hive2://node225:10000/movie> select * from t_user limit 5;
OK
+----------------+----------------+-------------+--------------------+-----------------+--+
| t_user.userid  | t_user.gender  | t_user.age  | t_user.occupation  | t_user.zipcode  |
+----------------+----------------+-------------+--------------------+-----------------+--+
| 1              | F              | 1           | 10                 | 48067           |
| 2              | M              | 56          | 16                 | 70072           |
| 3              | M              | 25          | 15                 | 55117           |
| 4              | M              | 45          | 7                  | 02460           |
| 5              | M              | 25          | 20                 | 55455           |
+----------------+----------------+-------------+--------------------+-----------------+--+
# hive 操做結果
hive> select * from t_user limit 5;
OK
1       F       1       10      48067
2       M       56      16      70072
3       M       25      15      55117
4       M       45      7       02460
5       M       25      20      55455
Time taken: 2.662 seconds, Fetched: 5 row(s)
hive>

要使用Beeline前須要先啓動HiveServer2,啓動過程當中能夠經過hiveconf設置相應的自定義參數和值,直接啓動會佔據當前鏈接會話,第一次能夠直接啓動,正常啓動後能夠切換至後臺運行方式啓動。mongodb

# 直接啓動
[root@node225 ~]# /usr/local/hive-2.1.1/bin/hiveserver2 --hiveconf hive.server2.thrift.prot=10000
# 後臺運行方式啓動
[root@node225 ~]# /usr/local/hive-2.1.1/bin/hiveserver2 --hiveconf hive.server2.thrift.prot=10000 2>&1 >> /dev/null &

#或者
#分別記錄標準日誌輸出和錯誤日誌
nohup /usr/local/hive-2.1.1/bin/hiveserver2 --hiveconf hive.server2.thrift.prot=10000 1>/usr/local/hive-2.1.1/hivelog/hiveserver.log 2>/usr/local/hive-2.1.1/hivelog/hiveserver.err &
#不記錄日誌
nohup /usr/local/hive-2.1.1/bin/hiveserver2 --hiveconf hive.server2.thrift.prot=10000 1>/dev/null 2>/dev/null &
nohup /usr/local/hive-2.1.1/bin/hiveserver2 --hiveconf hive.server2.thrift.prot=10000 >/dev/null 2>&1 &

beeline的使用編程

  • -n 指定機器登錄的名字,當前機器的登錄用戶名
  • -u 指定一個鏈接串

每成功運行一個命令,hiveserver2啓動的那個窗口,只要在啓動beeline的窗口中執行成功一條命令,另外個窗口隨即打印一個OK若是命令錯誤,hiveserver2那個窗口就會拋出異常安全

# beeline鏈接hive
[root@node225 ~]# /usr/local/hive-2.1.1/bin/beeline -u jdbc:hive2://node225:10000/movie -n root
which: no hbase in (.:/usr/local/jdk1.8.0_66//bin:/usr/local/zookeeper-3.4.10/bin:ZK_HOME/sbin:ZK_HOME/lib:/usr/local/hadoop-2.6.5//bin:/usr/local/hadoop-2.6.5//sbin:/usr/local/hadoop-2.6.5//lib:/usr/local/hive-2.1.1/bin:/usr/local/mongodb/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
Connecting to jdbc:hive2://node225:10000/movie
Connected to: Apache Hive (version 2.1.1)
Driver: Hive JDBC (version 2.1.1)
18/10/09 14:03:00 [main]: WARN jdbc.HiveConnection: Request to set autoCommit to false; Hive does not support autoCommit=false.
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 2.1.1 by Apache Hive
0: jdbc:hive2://node225:10000/movie> select current_database();
+----------------+--+
| database_name  |
+----------------+--+
| db_hive_edu    |
| default        |
| movie          |
+----------------+--+
3 rows selected (1.293 seconds)

能夠在相同局域網內的其餘部署hive的節點上經過Beelin鏈接指定的HiveServer2服務,進行多用戶操做。性能優化

退出beeline鏈接用!quitbash

相關文章
相關標籤/搜索