1. 程式人生 > >Hive學習 (三)Hive的連線三種連線方式

Hive學習 (三)Hive的連線三種連線方式

目錄


一、CLI連線
二、HiveServer2/beeline
    1、修改 hadoop 叢集的 hdfs-site.xml 配置檔案
    2、修改 hadoop 叢集的 core-site.xml 配置檔案

三、Web UI

正文:

一、CLI連線

進入到 bin 目錄下,直接輸入命令:

[[email protected] ~]$ hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/hive-common-2.3.3.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive>

檢視:

hive> show databases;
OK
default
myhive
Time taken: 12.432 seconds, Fetched: 2 row(s)
hive> 

啟動成功的話如上圖所示,接下來便可以做 hive 相關操作

補充:

1、上面的 hive 命令相當於在啟動的時候執行:hive --service cli

2、使用 hive --help,可以檢視 hive 命令可以啟動那些服務

3、通過 hive --service serviceName --help 可以檢視某個具體命令的使用方式

二、HiveServer2/beeline

在現在使用的最新的 hive-2.3.3 版本中:都需要對 hadoop 叢集做如下改變,否則無法使用

第一:修改 hadoop 叢集的 hdfs-site.xml 配置檔案:加入一條配置資訊,表示啟用 webhdfs

<property>
 <name>dfs.webhdfs.enabled</name>
 <value>true</value>
</property>

第二:修改 hadoop 叢集的 core-site.xml 配置檔案:加入兩條配置資訊:表示設定 hadoop的代理使用者

<property>
 <name>hadoop.proxyuser.potter.hosts</name>
 <value>*</value>
</property>
<property>
 <name>hadoop.proxyuser.potter.groups</name>
 <value>*</value>
</property>

配置解析:

hadoop.proxyuser.hadoop.hosts 配置成*的意義,表示任意節點使用 hadoop 叢集的代理使用者

hadoop 都能訪問 hdfs 叢集,hadoop.proxyuser.hadoop.groups 表示代理使用者的組所屬

需要重啟zookeeper,和,HDFS,YARN,叢集。

以上操作做好了之後,請繼續做如下兩步:

第一步:先啟動 hiveserver2 服務

啟動方式,

(假如是在 hadoop02 上):

啟動為前臺:hiveserver2

[[email protected] ~]$ hiveserver2
2018-04-06 14:33:53: Starting HiveServer2
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

啟動後會多出一個程序:


啟動為後臺:

nohup hiveserver2 1>/home/hadoop/hiveserver.log 2>/home/hadoop/hiveserver.err &
或者:nohup hiveserver2 1>/dev/null 2>/dev/null &
或者:nohup hiveserver2 >/dev/null 2>&1 &

命令中的 1 和 2 的意義分別是:

1:表示標準日誌輸出

2:表示錯誤日誌輸出

如果我沒有配置日誌的輸出路徑,日誌會生成在當前工作目錄,預設的日誌名稱叫做:nohup.xxx

[[email protected]2 ~]$ nohup hiveserver2 1>/home/hadoop/hiveserver.log 2>/home/hadoop/hiveserver.err &
[1] 5332
[[email protected] ~]$ 

PS:nohup 命令:如果你正在執行一個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用 nohup 命令。該命令可以在你退出帳戶/關閉終端之後繼續執行相應的程序。nohup 就是不掛起的意思(no hang up)。

該命令的一般形式為:nohup command &

第二步:然後啟動 beeline 客戶端去連線:

執行命令:

[[email protected] ~]$ beeline -u jdbc:hive2://hadoop02:10000 -n hadoop
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Connecting to jdbc:hive2://hadoop02:10000
18/04/06 14:43:07 [main]: WARN jdbc.HiveConnection: Failed to connect to hadoop02:10000
Could not open connection to the HS2 server. Please check the server URI and if the URI is correct, then ask the administrator to check the server status.
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop02:10000: java.net.UnknownHostException: hadoop02 (state=08S01,code=0)
Beeline version 2.3.3 by Apache Hive
beeline> 

-u : 指定元資料庫的連結資訊

-n : 指定使用者名稱和密碼

[[email protected] ~]$ beeline -u jdbc:hive2://potter2:10000 -n potter
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Connecting to jdbc:hive2://potter2:10000
18/04/06 14:46:57 [main]: WARN jdbc.HiveConnection: Failed to connect to potter2:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://potter2:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: potter is not allowed to impersonate potter (state=08S01,code=0)
Beeline version 2.3.3 by Apache Hive
beeline> 

另外還有一種方式也可以去連線:先執行 beeline

然後按圖所示輸入:!connect jdbc:hive2://hadoop02:10000 按回車,然後輸入使用者名稱,這個使用者名稱就是安裝 hadoop 叢集的使用者名稱

[[email protected] ~]$ beeline
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Beeline version 2.3.3 by Apache Hive
beeline> !connect jdbc:hive2://potter2:10000
Connecting to jdbc:hive2://potter2:10000
Enter username for jdbc:hive2://potter2:10000: potter
Enter password for jdbc:hive2://potter2:10000: *********
Connected to: Apache Hive (version 2.3.3)
Driver: Hive JDBC (version 2.3.3)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://potter2:10000> 

    接下來便可以做 hive 操作

三、Web UI

1、 下載對應版本的 src 包:apache-hive-2.3.2-src.tar.gz

2、 上傳,解壓

tar -zxvf apache-hive-2.3.2-src.tar.gz

3、 然後進入目錄${HIVE_SRC_HOME}/hwi/web,執行打包命令:

jar -cvf hive-hwi-2.3.2.war *

在當前目錄會生成一個 hive-hwi-2.3.2.war

4、 得到 hive-hwi-2.3.2.war 檔案,複製到 hive 下的 lib 目錄中

cp hive-hwi-2.3.2.war ${HIVE_HOME}/lib/

5、 修改配置檔案 hive-site.xml

<property>
 <name>hive.hwi.listen.host</name>
 <value>0.0.0.0</value>
 <description>監聽的地址</description>
</property>
<property>
 <name>hive.hwi.listen.port</name>
 <value>9999</value>
 <description>監聽的埠號</description>
</property>
<property>
 <name>hive.hwi.war.file</name>
 <value>lib/hive-hwi-2.3.2.war</value>
 <description>war 包所在的地址</description>
</property>

6、 複製所需 jar 包

    1、cp ${JAVA_HOME}/lib/tools.jar ${HIVE_HOME}/lib

    2、再尋找三個 jar 包,都放入${HIVE_HOME}/lib 目錄:

    commons-el-1.0.jar

    jasper-compiler-5.5.23.jar

    jasper-runtime-5.5.23.jar

    不然啟動 hwi 服務的時候會報錯。

7、 安裝 ant

1、 上傳 ant 包:apache-ant-1.9.4-bin.tar.gz

2、 解壓

    tar -zxvf apache-ant-1.9.4-bin.tar.gz -C ~/apps/

3、 配置環境變數

    vi /etc/profile

    在最後增加兩行:

    export ANT_HOME=/home/hadoop/apps/apache-ant-1.9.4

    export PATH=$PATH:$ANT_HOME/bin

    配置完環境變數別忘記執行:source /etc/profile

4、 驗證是否安裝成功


8、 上面的步驟都配置完,基本就大功告成了。進入${HIVE_HOME}/bin 目錄:

${HIVE_HOME}/bin/hive --service hwi

或者讓在後臺執行:

nohup bin/hive --service hwi > /dev/null 2> /dev/null &

9、 前面配置了埠號為 9999,所以這裡直接在瀏覽器中輸入:

hadoop02:9999/hwi

10、至此大功告成


相關推薦

HIVE學習 —— Hive 例項學習

案例說明   (案例資料下載) 現有如此三份資料: 1、users.dat 資料格式為: 2::M::56

Hive總結Hive資料匯入的方式

零.Hive的幾種常見的資料匯入方式 常用的的有三種: 1.從本地檔案系統中匯入資料到Hive表; 2.從HDFS上匯入資料到Hive表; 3.在建立表的時候通過從別的表中查詢出相應的記錄並插入到所建立的表中。 Hive配置: HDFS中Hive資料

大數據學習8Hive基礎

fall nat value onf change expected role blog tab 什麽是Hive Hive是一個基於HDFS的查詢引擎。我們日常中的需求如果都自己去寫MapReduce來實現的話會很費勁的,Hive把日常用到的MapReduce功能,比如排序

斯坦福大學-自然語言處理與深度學習CS224n 筆記 第課 詞向量2

一、word2vec 1、回顧:skip-grams word2vec的主要步驟是遍歷整個語料庫,利用每個視窗的中心詞來預測上下文的單詞,然後對每個這樣的視窗利用SGD來進行引數的更新。 對於每一個視窗而言,我們只有2m+1個單詞(其中m表示視窗的半徑),因此我們計算出來的梯度向量是

機器學習: python特徵選擇方法

特徵選擇的三種方法介紹: 過濾型: 選擇與目標變數相關性較強的特徵。缺點:忽略了特徵之間的關聯性。 包裹型: 基於線性模型相關係數以及模型結果AUC逐步剔除特徵。如果剔除相關係數絕對值較小特徵後

Hive 官方手冊學習 Hive命令列

一、shell視窗下Hive命令列選項 hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S] [-v] 注意:順序

Hive學習資料倉庫的表設計

資料倉庫的起源可以追溯到計算機與資訊系統發展的初期。它是資訊科技長期複雜演化的產物,並且直到今天這種演化仍然在繼續進行著。而資料倉庫容易讓人糊塗的地方在於它是一種體系結構,而不是一種技術。這點使得許多技術人員和風投都感到沮喪,因為他們希望的是打好成包的專業技術,而非具有哲學意

Spring學習-Bean的裝配方式

本篇部落格主要講述Spring中Bean的三種主要裝配:1、在XML中進行顯示配置;2、自動裝配方式;3、在Java中進行顯示配置。下面分別來研究上述三種裝配方式。 在Spring IOC容器中注入依賴資源主要有以下兩種基本實現方式:(1)構造器注入:容器例項

Hive總結Hive四種數據導入方式

hive src ive log 技術 mage cnblogs images 四種 Hive總結(七)Hive四種數據導入方式

JMeter學習JDBC測試計劃-連線Oracle

一.測試環境準備       Oracle:10g       JDBC驅動:classes12.jar                       &nbs

Meter學習JDBC測試計劃-連線Oracle 一.測試環境準備

一.測試環境準備       Oracle:10g       JDBC驅動:classes12.jar                              oracle安裝目錄下(oracle\product\10.2.0\db_1\jdbc\lib\class

git的使用和學習github遠端庫的連線和同步操作

1.github遠端庫的連線 開啟github官網github. 登入之後 點選這個 然後 輸入名字點選建立就會跳轉到這個介面 我們用紅色箭頭指的現有的庫 然後開啟git 1.這是把本地庫主分支的內容匯入到遠端庫 git push -u origin master 注

Hive總結Hive 2.1.0本地模式搭建教程

零.前言 Apache Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapRe

Hive總結Hive 輸入輸出適配類輸出CSV,XML

在最初使用 hive ,應該說上手還是挺快的。 Hive 提供的類 SQL 語句與 mysql 語句極為相似,語法上有大量相同的地方,這給我們上手帶來了很大的方便,但是要得心應手地寫好這些語句,還

Hive總結hive初始

1.沒有接觸,不知道這個事物是什麼,所以不會產生任何問題。2.接觸了,但是不知道他是什麼,反正我每天都在用。3.有一定的瞭解,不夠透徹。那麼hive,1.我們對它瞭解多少?2.它到底是什麼?3.hive和hadoop是什麼關係?擴充套件:hbase和hive是什麼關係?Hi

Docker基礎學習-Docker容器的網路連線

一.Docker容器的網路基礎 通過ifconfig檢視docker0的網路裝置,docker守護程序就是通過docker0為docker的容器提供網路連線的各種服務。 docker0是Linux虛擬網橋。 Linux虛擬網橋的特點: 可以設定IP地址 相當於擁

Hive實戰2Hive安裝教程

選擇Hadoop發行版本 安裝java $ /usr/java/latest/bin/java -version java version "1.6.0_23" Java(TM) SE R

Hive 系列—— Hive 簡介及核心概念

一、簡介 Hive 是一個構建在 Hadoop 之上的資料倉庫,它可以將結構化的資料檔案對映成表,並提供類 SQL 查詢功能,用於查詢的 SQL 語句會被轉化為 MapReduce 作業,然後提交到 Hadoop 上執行。 特點: 簡單、容易上手 (提供了類似 sql 的查詢語言 hql),使得精通 sql

Hive 系列—— Hive 常用 DDL 操作

一、Database 1.1 檢視資料列表 show databases; 1.2 使用資料庫 USE database_name; 1.3 新建資料庫 語法: CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name --DATABASE|SC

Hive 系列—— Hive 分割槽表和分桶表

一、分割槽表 1.1 概念 Hive 中的表對應為 HDFS 上的指定目錄,在查詢資料時候,預設會對全表進行掃描,這樣時間和效能的消耗都非常大。 分割槽為 HDFS 上表目錄的子目錄,資料按照分割槽儲存在子目錄中。如果查詢的 where 字句的中包含分割槽條件,則直接從該分割槽去查詢,而不是掃描整個表目錄,合