Ubuntu 16.04配置hive mysql db元数据

本文介绍如何将Hive默认的Derby元数据替换为MySQL,包括安装MySQL、配置hive-site.xml、创建数据库、初始化模式及解决依赖问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    默认hive使用的元信息数据库derby不是很好用。第一就是不支持多任务,第二就是配置hive环境变量然后启动hive因为derby的数据文件路径问题经常报错。

    配置hive的一个小前提是Hadoop环境已经配置ok,hfs可用。参考其官方quick start即可。hive的配置主要配置文件就一个hive-site.conf。

1,从默认xml复制一份。

cp hive-default.xml.template hive-site.xml

2,Ubuntu安装mysql,如果mysql已经安装跳过此步骤。

sudo apt install mysql-server mysql-client

在命令执行过程中会有对话框让输入mysql账号root的密码,连续输入两次完成mysql root账号密码配置。

严谨点对于一般mysql数据库不应用直接提供root账号作为应用账号。都需要新建个账号提供给hive使用。一是不安全,就类似linux服务一般会新建用户组来提供服务;二是生成环境如果db连接数满了mysql会预留给root一个连接,用于数据库管理。如果普通应用也使用则此功能就失效了。

3,修改hive-site.xml文件一共4处逐一修改如下即可。


<property>  
    <name>javax.jdo.option.ConnectionURL</name>  
    <value>jdbc:mysql://localhost:3306/hive</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>root</value>  
    <description>password to use against metastore database</description>  
  </property>  

 

4,命令行进入mysql。创建配置在connectionUrl后面的db,加过createDatabaseIfNoExist。但是不好用,还是手动创建的。

5,执行hive之前需要init schema,启动hive之前需要启动hdfs。

schematool -dbType mysql -initSchema

6,启动hive命令,会提示找不到mysql jar包。到mvnrepository下载个jar包放到lib下面即可。笔者hive2版本用的mysql jar包是5.1。添加上jar包启动ok。

 

 

转载于:https://my.oschina.net/xiaopei/blog/1626995

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值