官术网_书友最值得收藏!

1.3.4 Hive開發環境

在開發過程中,Hive提供了兩種命令行工具:CLI與Beeline,分別對應hive與beeline命令。CLI工具一般在Hive主機上使用,而Beeline支持遠程連接。使用Beeline需要首先在Hive主機中啟動HiveServer2服務。

使用Beeline連接Hive:

#  在Hive 主機執行
$ hive --service hiveserver2&
#  可在任意客戶端執行
$ beeline -u jdbc:hive2://localhost:10000
#  交互式執行HQL
0:jdbc:hive2://localhost: 10000> show tables;

其中,10000為HiveServer2默認端口,其可通過“hive.server2.thrift.port”參數進行修改。默認情況下啟動HiveServer2會同時啟動一個內置的元數據服務。

注意

HiveServer2進程建議在后臺運行:

nohup hive --service hiveserver2&

CLI和Beeline均支持兩種模式:命令行模式和交互模式。前面介紹的方式均屬于交互模式。Hive支持使用命令直接運行HQL語句或者包含一系列HQL語句的文件。

【語法】

hive -e <HQL>
hive -f <HQL FILE>
beeline –u <JDBC  Url> -e <HQL>
beeline –u <JDBC Ur l> -f <HQL FILE>

下面分別使用CLI和Beeline查看Hive所有數據庫:

$ hive -e 'show databases;'
$ beeline -u jdbc:hive2://localhost:10000 -e 'show databases;show tables'
注意

請使用引號包含HQL語句,多條HQL之間使用分號分隔。

Hive也可以使用文件來管理HQL,然后通過“-f”選項執行。

$ vi showdbs.hql
#  輸入HQL語句
show databases;
$ hive -f showdbs.hql
$ beeline -u jdbc:hive2://lo calhost:10000 -f showdbs.hql

除了CLI和Beeline,還有多種第三方工具均可以很方便地進行Hive開發,下面分別對它們進行簡單介紹。

1. HUE

Hadoop用戶經驗(Hadoop User Experience,HUE)集成在CDH中,是一個開源SQL分析平臺,有時也稱為Hadoop UI。通過HUE可以在瀏覽器中與Hadoop集群中的多種組件(如Hive、Pig、Impala等)進行交互以實現數據的分析處理。

如果選用了Cloudera的CDH版本,則適合選擇HUE進行Hive開發,開發界面如圖1.6所示。

圖1.6 選擇HUE開發Hive界面

2. Ambari Hive View

Apache Ambari是一種基于Web的工具,支持Apache Hadoop集群的管理和監控。Hive View是Ambari中的一個組件。Hortonworks的HDP集成了Ambari,所以使用HDP平臺時選擇Ambari更合適。Ambari開發界面如圖1.7所示。

圖1.7 Ambari Hive View開發界面

3. Zeppelin

Apache Zeppelin是一個基于Web的Notebook,其支持多種語言、多種環境下的交互式數據分析,包括:Python(Spark)、Scala(Spark)、Spark SQL、Hive、Shell等。

Zeppelin核心概念是解釋器(Interpreter)插件。Interpreter允許用戶指定一種語言或者數據處理引擎。當前已經實現的Interpreter有Python解釋器、Spark SQL解釋器、Shell解釋器、Hive解釋器和JDBC解釋器等。

針對Hive而言,新版本的Hive解釋器已被合并至JDBC解釋器中,須首先做如下配置。

? default.driver:org.apache.hive.jdbc.HiveDriver(默認)。

? default.url:jdbc:hive2://HIVESERVER:10000。

然后輸入“%hive”后開始HQL語句輸入。Zeppelin開發界面如圖1.8所示。

圖1.8 Zeppelin開發界面

主站蜘蛛池模板: 阿拉善右旗| 东乌珠穆沁旗| 滕州市| 镇赉县| 尚志市| 壤塘县| 廊坊市| 泰州市| 扶绥县| 灵台县| 阿瓦提县| 乌兰浩特市| 桦甸市| 镇江市| 玛多县| 湘潭市| 武清区| 辽阳市| 清河县| 航空| 玛曲县| 同仁县| 长垣县| 柘荣县| 台东市| 镇雄县| 五河县| 林口县| 达尔| 寻乌县| 九龙县| 蓬安县| 容城县| 耒阳市| 镇雄县| 秦安县| 瑞昌市| 遵义县| 于田县| 阿巴嘎旗| 鹤峰县|