1. 程式人生 > >beeline通過HiveServer2訪問Hive的配置和操作

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-shellspark-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