我正在尝试使用Hive 0.12配置MySQL,这就是我所做的 -
我安装了
MySQL - mysql Ver 14.14使用readline 6.2为debian-linux-gnu(x86_64)分发5.5.35 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
我在这里做错了吗?请指教。
答案 0 :(得分:0)
您还可以添加以下属性并检查
<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
应显示正在运行...
答案 1 :(得分:0)
Hive现在将模式版本记录在Metastore数据库中,并验证Metastore模式版本是否与将要访问Metastore的Hive二进制文件兼容。请注意,默认情况下会禁用隐式创建或更改现有架构的Hive属性。 Hive不会尝试隐式更改Metastore架构。当您针对旧架构执行Hive查询时,它将无法访问Metastore。
要禁止模式检查并允许Metastore隐式修改模式,您需要在hive-site.xml中将配置属性hive.metastore.schema.verification设置为false。
现在解决了这就是我所做的 -
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
解决。
要按照相关步骤操作,请访问我的博客MySQL with Hive