【问题标题】:how to configure mysql 5.5.35 with hive 0.12如何使用 hive 0.12 配置 mysql 5.5.35
【发布时间】:2014-05-12 20:05:30
【问题描述】:

我正在尝试使用 Hive 0.12 配置 MySQL,这就是我所做的 -

我安装了

MySQL - mysql Ver 14.14 Distrib 5.5.35,适用于使用 readline 6.2 的 debian-linux-gnu (x86_64) mysql-connector-java-5.1.30 并将 jar 文件复制到 $HIVE_HOME/lib 安装了 HIVE 0.12

这里是 hive-site.xml 条目

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/metastore_db?createDatabaseIfNotExist=true</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>hiveuser</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hivepassword</value>
    </property>
</configuration>

当我进入 hive shell 并尝试创建一个表时,它给了我以下错误 -

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

我在这里做错了吗?请指教。

【问题讨论】:

  • Hive 现在在 Metastore 数据库中记录架构版本,并验证 Metastore 架构版本是否与要访问该 Metastore 的 Hive 二进制文件兼容。请注意,默认情况下禁用隐式创建或更改现有架构的 Hive 属性。 Hive 不会尝试隐式更改元存储模式。当您对旧模式执行 Hive 查询时,它将无法访问元存储。
  • 要禁止模式检查并允许元存储隐式修改模式,您需要在 hive-site.xml 中将配置属性 hive.metastore.schema.verification 设置为 false。

标签: mysql hadoop hive


【解决方案1】:

Hive 现在将架构版本记录在元存储数据库中,并验证元存储架构版本是否与要访问元存储的 Hive 二进制文件兼容。请注意,默认情况下禁用隐式创建或更改现有架构的 Hive 属性。 Hive 不会尝试隐式更改元存储模式。当您对旧模式执行 Hive 查询时,它将无法访问元存储。

要禁止模式检查并允许元存储隐式修改模式,您需要在 hive-site.xml 中将配置属性 hive.metastore.schema.verification 设置为 false。

现在解决了,这就是我所做的 -

<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>

已解决。

要遵循这些步骤,请访问我的博客MySQL with Hive

【讨论】:

    【解决方案2】:

    您也可以添加以下属性并检查

    <property>
      <name>datanucleus.autoCreateSchema</name>
      <value>false</value>
    </property>
    <property>
      <name>datanucleus.fixedDatastore</name>
     <value>true</value>`enter code here`
    </property>
    

    还要检查您的 MySQL 服务是否正在运行。

    service mysqld status 
    

    应该显示正在运行...

    【讨论】:

    • 我昨天自己解决了我刚刚在 hive-site.xml 中将 hive.metastore.schema.verification 添加到 false 并且它有效。不过感谢您的投入。
    猜你喜欢
    • 2016-08-01
    • 1970-01-01
    • 2012-01-03
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多