Hive常见属性配置

一、Hive数据仓库位置配置

1.default数据仓库的最原始位置是在hdfs上的:/user/hive/warehouse路径下

 

hive 修改数据 hive修改数据库在hdfs存放路径_Hive

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

 

hive 修改数据 hive修改数据库在hdfs存放路径_mysql_02

5.之后启动Hive服务:

[root@bigdata111 hive-1.2.1]# bin/hive

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive 配置hdfs路径 失效_03

6.接着查看默认数据库中的表

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive_04

发现里面什么也没有了,之前创建的student表没有显示,但确实存放在warehouse里面。

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive_05

这是因为warehouse已经不是默认的数据库存放位置了,取而代之的是warehouse111目录。

向默认数据库中创建一个student1表,它就能够被显示出来:

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive_06

Web端:

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive 配置hdfs路径 失效_07

二、 查询后信息显示配置

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)配置前

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive_08

(2)配置后

 

hive 修改数据 hive修改数据库在hdfs存放路径_Hive_09

自己这里显示是这样的:

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive 配置hdfs路径 失效_10

三、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

 

hive 修改数据 hive修改数据库在hdfs存放路径_hive_11

2)移动日志位置:

通过修改配置文件进行路径更改。

[root@bigdata112 conf]# vi hive-log4j.properties.template

 

hive 修改数据 hive修改数据库在hdfs存放路径_Hive_12

3.确认环境

检测是否有已存在的mysql、mariadb包

(1)检测本地是否有mysql已存在的包

rpm -qa | grep mysql

(2)检测本地是否有mariadb已存在的包

rpm -qa | grep

(3)如果存在,则使用yum/rpm命令卸载

yum -y remove

rpm -e --nodeps

--nodeps是强制性的~

 

hive 修改数据 hive修改数据库在hdfs存放路径_Hive_13

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>

&amp;characterEncoding=utf-8&amp;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               |

+--------------------+