我在apachehadoop分布式集群中添加了hive。我想在hdfs中创建metastore,而不是在本地目录中创建metastore。但是,我在hive-site.xml中的设置似乎不起作用。我得到的错误如下,这似乎是Hive仍然试图使用运行元存储在本地模式。
java.sql.sqlexception:无法创建目录/home/zz/metastore\u db。
有人能告诉我我的设置出了什么问题吗?谢谢!
以下是my hive-site.xml内容:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://client2/metastore</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>user name for connecting to mysql server </description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hadoop</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.server2.servermode</name>
<value>thrift</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master1</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://client2:9083</value>
<description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>
1条答案
按热度按时间4uqofj5v1#
确保
hive-site.xml
文件在配置单元类路径中。在您的情况下,更新的hive-site.xml文件没有正确地采用默认值。在执行hive命令之前,可以使用以下环境变量显式设置hive conf目录(应指定包含hive-site.xml的目录)
要将远程mysql配置为hivemetastore,首先需要在远程mysql(metastore数据库)中创建具有足够权限的数据库。最初,数据库是空的,因此如果数据库是空的,那么通过将以下属性设置为true,将自动在远程数据库中创建metastore架构
如果问题仍然存在,请使用选项启动配置单元
--config
如下