工作总结——HiveMySQLServerMode-Mysql元数据库配置

本文介绍了Hive调试信息显示模式,因默认Derby数据库在项目中存在问题,故将Hive默认的Derby改成MySQL。详细说明了为Hive建立MySQL账户、创建元数据库、修改hive - site.xml配置、复制JDBC驱动包等步骤,还介绍了验证配置及远程模式安装的方法。

hive调试信息显示模式:

./hive -hiveconf hive.root.logger=DEBUG,console

默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。项目中我们就遇到一个很大的问题,Spark-Shell脚本启动时,会调用hive-site.xml配置文件,默认的配置是Derby,在azkaban调度任务时,会发生启动失败的问题,经过排查就是Derby数据库搞的鬼,所以打算将Hive默认的derby改成mysql,下面来整理下hive-site.xml配置的修改:

1、首先需要有Mysql,其次需要有Hive。这两者我就不多赘述

2、为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:

hadoop@ubuntu:~$ mysql -uroot -pmysql
mysql> CREATE USER 'hive' IDENTIFIED BY 'mysql';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> flush privileges;

默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉:

root@ubuntu:~# sudo gedit /etc/mysql/my.cnf

找到如下内容:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1  <---注释掉这一行就可以远程登录了

重启mysql服务:

sudo service mysql restart

3、建立 Hive 专用的元数据库,记得创建时用刚才创建的“hive”账号登陆。

mysql> exit;
hadoop@ubuntu:~$ mysql -uhive -pmysql
mysql> create database hive;

4、在Hive的conf目录下的文件“hive-site.xml”中增加如下配置:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://remote_ip:3306/hive?characterEncoding=UTF-8</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>mysql</value>
    </property>
</configuration>

从前面我们知道“hive-site.xml”是一个“hive-default.xml.template”的一个拷贝,里面的配置参数非常之多,但是并不是我们都需要的,Hive 系统会加载两个配置文件一个默认配置文件“hive-default.xml”,另一个就是用户自定义文件“hive-site.xml”。当“hive-site.xml”中的配置参数的值与“hive-default.xml”文件中不一致时,以用户自定义的为准。所以我们就把我们不需要的参数都删除掉,只留下上面所示的内容。

5、把MySQL的JDBC驱动包复制到Hive的lib目录下。

6、启动 Hive Shell

执行“show tables;”命令,如果不报错,表明基于独立元数据库的 Hive 已经安装成功了。

hadoop@ubuntu:~$ hive
Logging initialized using configuration in file:/home/hadoop/hive-0.9.0/conf/hive-log4j.properties
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201303041631_450140463.txt
hive> show tables;
OK
Time taken: 1.988 seconds
hive> 

7、验证Hive配置是否有误

进入Hive的shell新建表,在MySQL的Hive数据库中可以看到相应的元数据库信息。

在Hive上建立数据表

hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

从 MySQL 数据库上查看元数据信息

用到的 SQL 语句:

use hive; //使用 hive 数据库库

show tables;//显示 hive 数据库中的数据表

select * from TBLS;//查看 hive 的元数据信息

到此Hive集成Mysql作为元数据已完成。

远程模式安装

远程模式安装是把 metastore 配置到远程机器上,可以配置多个。在独立模式的基础上需要在 hive-site.xml 文件中增加的配置项如下:

<property>
    <name>hive.metastore.local</name>
    <value>local</value>
</property>
<property>
    <name>hive.metastore.uris</name>
    <value>uri1,uri2,... </value>//可配置多个 uri
    <description>JDBC connect string for a JDBC metastore</description>
</property>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值