Hive常見屬性配置
一、Hive數據倉庫位置配置
1.default數據倉庫的最原始位置是在hdfs上的:/user/hive/warehouse路徑下
2.在倉庫目錄下,沒有對默認的數據庫default創建文件夾。如果某張表屬於default數據庫,直接在數據倉庫目錄下創建一個文件夾。
3.修改default數據倉庫原始位置(將hive-default.xml.template如下配置信息拷貝到hive-site.xml文件中)
<property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse111</value> <description>location of default database for the warehouse</description> </property> |
4.配置同組用戶有執行權限
hdfs dfs -chmod g+w /user/hive/warehouse111
5.之后啟動Hive服務:
[root@bigdata111 hive-1.2.1]# bin/hive
6.接着查看默認數據庫中的表
發現里面什么也沒有了,之前創建的student表沒有顯示,但確實存放在warehouse里面。
這是因為warehouse已經不是默認的數據庫存放位置了,取而代之的是warehouse111目錄。
向默認數據庫中創建一個student1表,它就能夠被顯示出來:
Web端:
二、 查詢后信息顯示配置
1.在hive-site.xml文件中添加如下配置信息,就可以實現顯示當前數據庫,以及查詢表的頭信息配置。
<property> <name>hive.cli.print.header</name> <value>true</value> </property>
<property> <name>hive.cli.print.current.db</name> <value>true</value> </property> |
2.重新啟動hive,對比配置前后差異
(1)配置前
(2)配置后
自己這里顯示是這樣的:
三、Hive運行日志信息配置
1.Hive的log默認存放在/tmp/itstar/hive.log目錄下(當前用戶名下)。
2.修改hive的log存放日志到/opt/module/hive-1.2.1/logs
(1)修改/opt/module/hive/conf/hive-log4j.properties.template文件名稱為
hive-log4j.properties
[itstar@bigdata111conf]$ pwd
/opt/module/hive/conf
[itstar@bigdata111conf]$ mv hive-log4j.properties.template hive-log4j.properties
(2)在hive-log4j.properties文件中修改log存放位置
hive.log.dir=/opt/module/hive/logs
四、多窗口啟動Hive測試
假設bigdata111壞了訪問不了數據庫,采用bigdata112替換bigdata111訪問數據庫。
思想: 只要Hadoop里的數據是正常的,即使bigdata111的Hive不能訪問數據庫,也可以用另外的機器配置上Hive進行訪問。 當Hadoop是高可用時,Hive就是高可用的,因為Hive是建立在Hadoop上的。 在bigdata112上安裝hive壓縮包並解壓-重要配置文件和bigdata111上的一樣、再安裝上驅動並配置驅動的配置文件即可。 |
1.安裝、解壓hive壓縮包到bigdata112上
1)集群之間上傳壓縮包:
[root@bigdata111software]# scp -r apache-hive-1.2.1-bin.tar.gz root@bigdata112:/opt/software/
2)解壓到指定目錄:
[root@bigdata112 software]# tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
2.修改配置文件-改路徑(Hadoop、Hive、logs)
1)配置文件修改-改Hadoop、Hive路徑:
[root@bigdata112 conf]# vi hive-env.sh.template
2)移動日志位置:
通過修改配置文件進行路徑更改。
[root@bigdata112 conf]# vi hive-log4j.properties.template
3.確認環境
檢測是否有已存在的mysql、mariadb包
(1)檢測本地是否有mysql已存在的包
rpm -qa | grep mysql
(2)檢測本地是否有mariadb已存在的包
rpm -qa | grep mariadb
(3)如果存在,則使用yum/rpm命令卸載
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
--nodeps是強制性的~
4.Hive元數據配置到MySql
1)驅動拷貝,上傳mysql-connector-java-5.1.27-bin.jar到/opt/module/hive/lib/
2)配置Metastore-元數據到MySql
(1)在/opt/module/hive/conf目錄下創建一個
[itstar@bigdata111conf]$ touch hive-site.xml
[itstar@bigdata111conf]$ vi hive-site.xml
(2)根據官方文檔配置參數,拷貝數據到hive-site.xml文件中。
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
這里面進行了小修改-防止報警告(紅色的)
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://bigdata111:3306/metastore?createDatabaseIfNotExist=true&characterEncoding=utf-8&useSSL=false</value> <description>JDBC connect string for a JDBC metastore</description> </property>
<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property>
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property>
<property> <name>javax.jdo.option.ConnectionPassword</name> <value>000000</value> <description>password to use against metastore database</description> </property> </configuration> |
5.啟功Hive
接下來啟動hive即可~ 這樣bigdata112也能代替bigdata111進行數據的查詢。
6.接下來也可以進行其他測試
(1)先啟動MySQL
[itstar@bigdata111mysql-libs]$ mysql -uroot -p000000
查看有幾個數據庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
(2)再次打開多個窗口,分別啟動hive
[itstar@bigdata111hive]$ bin/hive
(3)啟動hive后,回到MySQL窗口查看數據庫,顯示增加了metastore數據庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| performance_schema |
| test |
+--------------------+