前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置Hive使用MySql存储元数据

配置Hive使用MySql存储元数据

作者头像
张子阳
发布2018-09-28 14:40:12
3.2K0
发布2018-09-28 14:40:12
举报

配置Hive使用MySql存储元数据

2018-7-24 作者: 张子阳 分类: 大数据处理

默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。Derby是一个嵌入式的本地数据库,只能单进程进行访问,不允许多个连接。因此,Derby只适合本地测试,不适合用在生产环境。Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。

本文假设你已经单机安装、配置好了MySql和Hive。如果没有,可以参考下面两篇文章:

安装MySql连接器

前往:https://dev.mysql.com/downloads/connector/j/5.1.html,下载MySql连接器(connector)。

解压后,将mysql-connector-java-5.1.xx.jar,上传到Linux的 $HIVE_HOME/lib 文件夹下。

配置hive-site.xml

hive-site.xml用于配置Hive的各个参数,位于$HIVE_HOME/conf文件夹下。默认情况下,并没有这个文件,所有的参数配置在hive-default.xml.template中。因此,第一次使用时,需要手动创建这个文件。假设你的mysql位于192.168.1.56:3306,则像下面这样配置:

<configuration>
    <property>
       <name>javax.jdo.option.ConnectionURL</name>
       <value>jdbc:mysql://192.168.1.56:3306/hive_metastore?createDatabaseIfNotExist=true&amp;useSSL=false</value>
       <description>metadata is stored in a MySQL server</description>
    </property>
    <property>
       <name>javax.jdo.option.ConnectionDriverName</name>
       <value>com.mysql.jdbc.Driver</value>
       <description>MySQL JDBC driver class</description>
    </property>
    <property>
       <name>javax.jdo.option.ConnectionUserName</name>
       <value>username</value>
       <description>mysql server connection username</description>
    </property>
    <property>
       <name>javax.jdo.option.ConnectionPassword</name>
       <value>password</value>
       <description>mysql server connection user password</description>
    </property>
 </configuration>

根据上面的配置,会创建一个叫做hive_metasotre的数据库(也可以在hive-site.xml中将其修改为其他名字)。

注意上面useSSL前面的&,必须要转义成:&,如果根据习惯直接写&则会报错。

异常解决

配置完成后,在shell命令行启动Hive,然后执行一下show databases;。此时,可能会遇到一个异常:MetaException(message:Version information not found in metastore.)

这个时候,可以登录到mysql,删除掉hive_metastore数据库,然后执行一下下面的命令,重新初始化一下元数据库:

schematool --dbType mysql --initSchema

接下来,再次启动hive控制台,重新执行 show databases;,如果成果,则说明一切正常了。

hive> show databases; OK default tglog_aw_2018 Time taken: 0.052 seconds, Fetched: 2 row(s)

至此,便完成了使用MySql来存储Hive元数据的配置。

感谢阅读,希望这篇文章能给你带来帮助!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-7-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置Hive使用MySql存储元数据
    • 安装MySql连接器
      • 配置hive-site.xml
        • 异常解决
        • schematool --dbType mysql --initSchema
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档