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
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
(3)如果存在,则使用yum/rpm命令卸载
yum -y remove
rpm -e --nodeps
--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目录下创建一个
hive-site.xml
[itstar@bigdata111conf]$ vi hive-site.xml
hive-site.xml文件中。
这里面进行了小修改-防止报警告(红色的)
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> &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 |
+--------------------+