hive遠程連接JDBC的環境搭建
- 一、 環境
- 二、先下載需要用到的環境
- 三、開始安裝
- 四、組態檔
- 五、使用beeline連接hiveserver2
- 六、參考
一、 環境
centos版本:7
hive版本:2.3.7
hadoop版本:2.10.1
mysql版本:5.7.35
java版本:1.8.0_231
二、先下載需要用到的環境
鏈接: link.
hive的bin包、mysql的驅動包、hadoop版本包、java包,mysql我使用的是yum下載所以就沒有包提供了,
三、開始安裝
首先講hive的包拉到虛擬機里比如我的包在如下位置:

然后我們使用如下命令:tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/MySoft/MySoftWare
將包安裝到指定目錄
然后我們改個名,使用如下命令:mv apache-hive-2.3.7-bin.tar.gz hive-2.3.7
改完名之后我們到/etc/profile.d 里面創建一個檔案vim hive.sh,寫這個檔案是為了方便后續使用,相當于windows的環境變數的設定
檔案內容:

使用:source /etc/profile更新配置或者單更新hive.sh也可以
然后用hive --version看看是否有如下資訊,有的話代表完成了hive環境變數的配置,

更新完檔案之后設定hive的組態檔
進入到$HIVE_HOME/conf目錄下($HIVE_HOME是我們剛剛配置的hive的路徑)
可以看到這幾個檔案:

四、組態檔
我們首先配置hive-site.xml檔案,這里檔案一開始是沒有的,我們要用以下命令通過模版創建出來 cp hive-default.xml.template hive-default.xml
以及 cp hive-env.sh.template hive-env.sh
我們先寫hive-env.sh檔案
配置如下:

加入如上四條就可以了
再配置hive-site.xml檔案
我這里用的是nodepad++根據name查找然后再進行修改的,大家也可以嘗試
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--資料庫連接URL-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.37.9:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!--資料庫連接驅動-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--資料庫連接用戶-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--資料庫連接密碼-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<!--以下這三個配置我也不知道是干嘛的-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!-- 這是hiveserver2的配置-->
<!--遠程連接的埠號,默認為10000-->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<!--遠程連接的主機名或ip地址,建議寫主機名-->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>192.168.37.9</value>
</property>
<!--以下兩個用戶的配置要在hadoop的core-site.xml也配置,后續會說明-->
<!--遠程連接的用戶-->
<property>
<name>hive.server2.thrift.client.user</name>
<value>root</value>
<description>Username to use against thrift client. default is 'anonymous'</description>
</property>
<!--遠程連接的密碼-->
<property>
<name>hive.server2.thrift.client.password</name>
<value>123456</value>
<description>Password to use against thrift client. default is 'anonymous'</description>
</property>
</configuration>
還有一個日志問題,在$HIVE_HOME下創建一個tmp檔案夾,并給他權限
chmod -R 777 $HIVE_HOME/tmp
再在這個tmp下新建一個檔案夾再賦予權限
chmod -R 777 $HIVE_HOME/tmp/root
然后要將hive-site.xml的${system:java.io.tmpdir}替換成hive的路徑/tmp
例如:/opt/MySoft/MySoftWare/hive-2.3.7/tmp
再將${system:user.name} 替換成root
回到$HIVE_HOME/conf 復制hive-log4j2.properties.template 為hive-log4j2.properties
cp hive-log4j2.properties.template hive-log4j2.properties
進入將${system:java.io.tmpdir} 也更改成hive的路徑/conf 還有${system:user.name} 替換成root
以上就完成了對hive進行的配置,接下來要將mysql的驅動包丟到$HIVE_HOME/lib下面,這樣子才能完成元資料庫的初始化,
移動好mysql的驅動包之后運行如下命令:schematool -dbType mysql -initSchema
如果執行不了可能是hive的環境變數不對,可以看看之前的配置,
這時出現如下資訊就是成功了!

然后就可以輸入hive看看hive是不是成功了,如果是像我這樣就是成功了:

五、使用beeline連接hiveserver2
hive成功之后,我們要配置一下hadoop下面的組態檔core-site.xml,添加如下配置讓beeline可以成功連接hiveserver2:
<!--以下四個配置是為了讓我的主機能夠有訪問hadoop的權限-->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.blueautumn.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.blueautumn.groups</name>
<value>*</value>
</property>
<!--以下的配置是為了讓hadoop知道有這樣一個用戶-->
<property>
<name>hive.server2.thrift.client.user</name>
<value>root</value>
<description>Username to use against thrift client. default is 'anonymous'</description>
</property>
<property>
<name>hive.server2.thrift.client.password</name>
<value>123456</value>
<description>Password to use against thrift client. default is 'anonymous'</description>
</property>
配置完之后我們重啟hadoop服務器,然后輸入以下命令來啟動metastore服務
hive --service metastore &

像我這樣卡在這里是正常的,因為啟動的是一個服務,也可以輸入別的可以后臺啟動,有需要的話可以自行搜索,
接下來就復制一個會話,輸入以下命令啟動hiveserver2
hive --service hiveserver2 & 或者 hiveserver2 &
像我這樣卡住也是正常的,
然后用jps可以看到現在有兩個Runjar存在

一個是metastore服務一個是hiveserver2服務
現在就可以進行beeline連接hiveserver2了
輸入命令:beeline -u jdbc:hive2://192.168.37.9:10000 -n root -p 123456
獲取先輸入beeline 進入到beeline的命令列之后再輸入:
!connect jdbc:hive2://192.168.37.9:1000 -n root -p 123456

六、參考
之前參考過的地方:
鏈接: https://blog.csdn.net/leanaoo/article/details/83351240.
鏈接: https://blog.csdn.net/weixin_34356138/article/details/92424900.
第一次做博客,希望有問題大家可以指出~~~~
以上是我這兩天搭建環境的時候整理出來的,因為我自己卡住了很久,所以我想把這個分享出來,這樣有人需要的話也可以很快上手,謝謝大家~~~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316427.html
標籤:其他
上一篇:大資料hadoop的入門了解
