beeline通過HiveServer2訪問Hive的配置和操作
1. 前言
作為資料倉庫的工具,hive提供了兩種ETL執行方式,分別是通過Hive 命令列和beeline客戶端;
命令列方式即通過hive進入命令模式後通過執行不同的HQL命令得到對應的結果;相當於胖客戶端模式,即客戶機中需要安裝JRE環境和Hive程式。
beeline客戶端方式相當於瘦客戶端模式,採用JDBC方式藉助於Hive Thrift服務訪問Hive資料倉庫。
HiveThrift(HiveServer)是Hive中的元件之一,設計目的是為了實現跨語言輕量級訪問Hive資料倉庫,有Hiveserver和 Hiveserver2兩個版本,兩者不相容,使用中要注意區分。體現在啟動HiveServer的引數和jdbc:hiveX的引數上。
2. beeline相關的Server.Thrift配置
主要是hive/conf/hive-site.xml中hive.server2.thrift相關的一些配置項,但要注意一致性
<property>
<name>hive.server2.thrift.bind.host</name>
<value>slave01</value>
<description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
<description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
</property>
<property>
<name>hive.server2.thrift.http.port</name>
<value>10001</value>
<description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'http'.</description>
</property>
進入beeline連線資料庫後,因為要訪問的檔案在HDFS上,對應的路徑有訪問許可權限制,所以,這裡要設成hadoop中的使用者名稱,例項中使用者名稱即為'hadoop’。如果使用其它使用者名稱,可能會報許可權拒絕的錯誤。或通過修改hadoop中的配置項hadoop.proxyuser.XX為“*” 來放寬使用者名稱和許可權,如示例。
<property>
<name>hive.server2.thrift.client.user</name>
<value>hadoop</value>
<description>Username to use against thrift client</description>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>hadoop</value>
<description>Password to use against thrift client</description>
</property>
hadoop/etc/hadoop/core-site.xml
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<!--value>master</value-->
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<!--value>hadoop</value-->
<value>*</value>
</property>
3. 啟動beeline並訪問Hive
slave01上啟動hiveserver2, # nohup hive --service hiveserver2 &
ps -ef | grep Hive 能看到Hiveserver2已啟動
master機器上執行beeline並訪問hive
[email protected]:~/bigdata/hive$ beeline
Beeline version 1.2.1.spark2 by Apache Hive
beeline>
beeline> !connect jdbc:hive2://slave01:10000 // 2中配置項的host:port ,因為啟動的是hiveserver2,所以引數中是hive2
Connecting to jdbc:hive2://ndh-slave01:10000
Enter username for jdbc:hive2://ndh-slave01:10000: hadoop
Enter password for jdbc:hive2://ndh-slave01:10000: ****** //2中配置項的user/password
17/09/08 14:39:27 INFO jdbc.Utils: Supplied authorities: ndh-slave01:10000
17/09/08 14:39:27 INFO jdbc.Utils: Resolved authority: ndh-slave01:10000
17/09/08 14:39:27 INFO jdbc.HiveConnection: Will try to open client transport with JDBC Uri: jdbc:hive2://slave01:10000
Connected to: Apache Hive (version 2.1.1)
Driver: Hive JDBC (version 1.2.1.spark2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://slave01:10000>
0: jdbc:hive2://slave01:10000> show databases;
+----------------+--+
| database_name |
+----------------+--+
| default |
| feigu3 |
| wordcount |
+----------------+--+
3 rows selected (0.379 seconds)
0: jdbc:hive2://slave01:10000> select * from wordcount order by count desc limit 50;
............................................
.............................................
看到結果後,進入hadoop webui http://master:8088/cluster/apps/FINISHED 可看到剛執行的任務。
0: jdbc:hive2://slave01:10000> !q //// 退出beeline
4. 期間遇到的問題和解決方法
4.1 hadoop is not allowed to impersonate hive // hadoop是hadoop中配置的使用者名稱,解決方法見2中說明;
4.2 "'serverProtocolVersion' is unset!" // 解決方法同4.1
4.3 java.net.ConnectException: Connection refused (state=08S01,code=0) // 先是因為命令列中輸入的host:port引數不對,後是4.1,4.2的問題
相關推薦
beeline通過HiveServer2訪問Hive的配置和操作
1. 前言 作為資料倉庫的工具,hive提供了兩種ETL執行方式,分別是通過Hive 命令列和beeline客戶端; 命令列方式即通過hive進入命令模式後通過執行不同的HQL命令得到對應的結果;相當於胖客戶端模式,即客戶機中需要安裝JRE環境和Hive程式。 beelin
IdentityServer(14)- 通過EntityFramework Core持久化配置和操作資料
本文用了EF,如果不適用EF的,請參考這篇文章,實現這些介面來自己定義儲存等邏輯。http://www.cnblogs.com/stulzq/p/8144056.html IdentityServer具有良好的擴充套件性,其中一個可擴充套件點是用於IdentityServer所需資料的儲存機制。 本快速入
Java通過HiveServer2訪問Hive服務示例
Hive具有一個可選的元件叫做HiveServer或者HiveThrift,其允許通過指定埠訪問Hive。Thrift是一個高效的RPC服務框架,可以通過程式設計的方式遠端訪問Hive。 hive對外提供thrift和jdbc兩種介面方式。其中jdbc是
其它語言通過HiveServer2訪問Hive
先解釋一下幾個名詞: - metadata :hive元資料,即hive定義的表名,欄位名,型別,分割槽,使用者這些資料。一般儲存關係型書庫mysql中,在測試階段也可以用hive內建Derby資料庫。 - metastore :hivestore服務端。主要提供將DDL,DML等語句轉換為MapRedu
IdentityServer(14)- 使用EntityFramework Core配置和操作數據
ont var sqlserve popu ndb 測試 架構 api pos IdentityServer具有良好的擴展性,其中一個可擴展點是用於IdentityServer所需數據的存儲機制。 本快速入門介紹了如何配置IdentityServer以使用EntityFra
通過jndi程式設計rmi實現和操作檔案的實現 以及jndi的spi實現
JNDI是java提供的命名介面服務,需要第三方公司按照SPI所提供的服務實現,FSSP的官方資源包下載地址;http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloa
cisco 通過tftp備份/恢復配置和3560交換機IOS升級
使用tftp伺服器對cisco 3560 配置備份及恢復 #要確保交換機和tftp server之間可以連通就行。 #備份 Switch#copy running-config tftp: Address or name of remote host
svn服務器端配置和操作-3
使用 服務器端 配置文件 alt 配置 auth 數據 技術 nbsp 服務器端基礎配置 創建svn數據目錄(目錄可以自定義建議 和後期要用的站點同根目錄下/或者在var下都可以)(這是個大庫) mkdir -p /var/svn 創建版本庫(可創建多個版本庫)
安裝 CentOS-7(1804) 網路配置和操作介面
一、VMware Workstation 安裝 CentOS-7 (1804) 網路配置 二、設定IP地址、閘道器DNS 說明:CentOS 7.0預設安裝好之後是沒有自動開啟網路連線的! cd /etc/sysconfig/network-scripts
oracle通過ODBC訪問mysql配置參考
files ica rod list nload bre con ... snr 1)版本信息: Oracle: 11.2.0.4.0 OS: CentOS 7.5 MySQL: 5.7.24 OS: Redhat 6.8 2)查看dg4od
SparkSQL(二)spark-shell和spark-sql以及thriftserver&beeline訪問hive表
一、spark-shell 1.把hive的hive-site.xml複製到spark的conf下面 2.開啟spark-shell bin/spark-shell --master local[2] --jars /opt/datas/mysql-connector-
通過瀏覽器訪問操作Oracle資料庫(附Oracle修改使用者名稱和密碼)
以前簡單的用過Oracle資料庫,都是用控制檯,通過命令操作的,然後最近學校增加了一門新的課程,又學了一招:通過瀏覽器訪問操作Oracle資料庫。 1.開啟瀏覽器; 2.在位址列輸入“localhost:8080/apex”,回車; 3.已經進入登入頁面,輸
Hive-命令列基本操作和java API訪問hive資料庫
安裝 首先說明hive的安裝。 連結: http://pan.baidu.com/s/1DleVG 密碼: mej4 這個連結是一個視訊的連結,視訊中講解了如何安裝hive。 關於視訊中用到的資料檔案,我已經上傳到CSDN,請點選這裡下載。 按照視訊中
配置hive server2鑒權和beeline無密碼鏈接hive數據倉庫
project 權限控制 user cee comm ESS 說明 鏈接 https 啟動hive server2服務之後使用beeline鏈接報一下錯誤beeline> !connect jdbc:hive2://localhost:10000 Connectin
VS的IISExpress配置通過IP訪問程序
alt app 用戶 項目 cal toc log acl localhost 打開C:\Users\用戶\Documents\IISExpress\config\applicationhost.config 獲取本地VS項目運行起來的端口,比如 然後在文本裏搜索 2
mongodb配置和基本操作
特性 服務 win done service 基本 添加 close english MongoDB3.0新特性WiredTigerMMAPv1可插拔引擎API基於web的可視化管理工具 查看版本號mongod --version啟動數據庫 mongod --dbpath
每篇半小時1天入門MongoDB——2.MongoDB環境變量配置和Shell操作
.get same 修復 nss its keys 電腦 sts lis 上一篇:每篇半小時1天入門MongoDB——1.MongoDB介紹和安裝 配置環境變量 Win10系統為例 右鍵單擊“此電腦”—&md
五指cms 欄目訪問權限和內容訪問權限-提醒模式配置
五指cms wuzhicms系統模式:沒有權限時直接提醒手動模式:可以在模版中,隱藏沒有權限訪問的內容。靈活性更高。 在模版中可以取到變量:$access_authority2種值:true or false為true時,有權限為false時,無權限<div class="content-p"&
linux基本命令操作-目錄與文件的配置和管理
linux 達內 計算機 Linux命令 用戶輸入的指令----->解釋器----->內核------->硬件-用來實現某一功能的指令或程序 -輸入命令然後執行相應的程序來實現功能,不是簡單的命令字符實現的 程序在bin下:#ls /bin/xxx-命令的執行依
jsp:通過Session控制登陸時間和內部頁面的訪問
erro attr 行數 its text client fault pri getattr 一,通過session的關閉瀏覽器銷毀,和使用getAttribute設置session對象值來控制頁面用戶是否有權限進入。 1,以下是登陸頁面的代碼,使用表單提交數據給一個ser