无法在 Hive 中实例化 metadata.SessionHiveMetaStoreClient(Ubuntu 16.04)
Unable to instantiate metadata.SessionHiveMetaStoreClient in Hive(Ubuntu 16.04)
我正在尝试在 Ubuntu 16.04 上使用 mysql 设置配置单元 2.3.0。我已经安装了 Hadoop,运行 没问题。我能够进入配置单元控制台,但是没有执行任何命令,而是给我一个错误:
SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: 无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
这是我的 hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?useSSL=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>
<description>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepassword</value>
<description>password for connecting to mysql server</description>
</property>
</configuration>
我还在 mysql 中使用 this link 创建了 Metastore 数据库。
我想出了解决办法。 Metastore 未实例化的问题是由于 mysql 中的重复键造成的。而不是从 mysql 获取配置单元架构。使用这个:hive --service metastore
我也更新了 hive-site.xml:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?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>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Password</value>
<description>password for connecting to mysql server</description>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>True</value>
</property>
还可以使用 schematool 查看完整的堆栈跟踪:
schematool -initSchema -dbType mysql --verbose
我正在尝试在 Ubuntu 16.04 上使用 mysql 设置配置单元 2.3.0。我已经安装了 Hadoop,运行 没问题。我能够进入配置单元控制台,但是没有执行任何命令,而是给我一个错误:
SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: 无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
这是我的 hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?useSSL=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>
<description>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hivepassword</value>
<description>password for connecting to mysql server</description>
</property>
</configuration>
我还在 mysql 中使用 this link 创建了 Metastore 数据库。
我想出了解决办法。 Metastore 未实例化的问题是由于 mysql 中的重复键造成的。而不是从 mysql 获取配置单元架构。使用这个:hive --service metastore
我也更新了 hive-site.xml:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?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>user name for connecting to mysql server</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Password</value>
<description>password for connecting to mysql server</description>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>True</value>
</property>
还可以使用 schematool 查看完整的堆栈跟踪:
schematool -initSchema -dbType mysql --verbose