發展:
hive-cli(hive) 是hive連接hivesever的命令行工具,從hive出生就一直存在,但隨着hive功能的增強、bug的修復、版本升級,hive-cli結構的局限性跟不上hive的發展,如果強行更改就不能滿足向下兼容,就出現了全新的beeline命令行結構,即就是hive-cli能做的事beeline都能做,而beeline能做的事hive-cli不一定能做。
Hive-cli的特點:
1、Hive-cli是通過MetaServer訪問元數據的
2、CliDriver是SQL本地直接編譯,然后訪問MetaStore,提交作業,是重客戶端。
3、運行hive會自動運行一個RunJar進程,進程是提供thrift的RPC的,就是metastore服務。
Beeline的特點:
1、beeline是一個純粹的客戶端,用來連接hiverserver2。
2、BeeLine是把SQL提交給HiveServer2,由HiveServer2編譯,然后訪問MetaStore,提交作業,是輕客戶端。
3、多用戶、安全、可以實現其權限控制。
區別:
beeline有權限控制而hivecli沒有,因為hivecli讀取元數據繞過了HiveServer2直接從metaserver訪問元數據,而beeline通過HiveServer2的管控,實現其多用戶的權限控制。