配置Hive使用MySql存储元数据

栏目: 服务器 · 发布时间: 6年前

内容简介:默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。Derby是一个嵌入式的本地数据库,只能单进程进行访问,不允许多个连接。因此,Derby只适合本地测试,不适合用在生产环境。Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。本文假设你已经单机安装、配置好了MySql和Hive。如果没有,可以参考下面两篇文章:前往:

默认情况下,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前面的&,必须要转义成:&amp;,如果根据习惯直接写&则会报错。

异常解决

配置完成后,在 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元数据的配置。

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


以上所述就是小编给大家介绍的《配置Hive使用MySql存储元数据》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

AI极简经济学

AI极简经济学

阿杰伊·阿格拉沃尔、乔舒亚·甘斯、阿维·戈德法布 / 闾佳 / 湖南科技出版社 / 2018-12-1 / 58.00

人工智能正在以不可阻挡的态势席卷全球。无论是iPhone的神经网络引擎、AlphaGo的围棋算法,还是无人驾驶、深度学习……毫无疑问,人工智能正在改写行业形态。如同此前个人电脑、互联网、大数据的风行一般,技术创新又一次极大地改变了我们的工作与生活。 那么,究竟应该如何看待人工智能?在《AI极简经济学》一书中,三位深耕人工智能和决策领域的经济学家给出了清晰的答案。他们以坚实的经济学理论剖析动态,把握......一起来看看 《AI极简经济学》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具