hive:为什么要在我的项目文件夹中创建metastore\u db?

8i9zcol2  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(488)

我已经把 hive-site.xml 在我的 spark/conf dir并将其配置为连接到 thrift://<user>:9083 我没有使用 derby 我有 mysql-connector-jar 在hive/lib文件夹中,仍然每次创建hive表并存储数据时,所有数据都存储在 metastore_db 在我的项目目录中,而不是在我的 hdfs://<user>:9000/user/hive/warehouse ,因此,如果我删除metastore,\u db数据将丢失。 conf/hive-site.xml ```

javax.jdo.option.ConnectionURL
jdbc:mysql://saurab:3306/metastore_db?
createDatabaseIfNotExist=true
metadata is stored in a MySQL server

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>MySQL JDBC driver class</description>
</property>

<property>
    <name>hive.aux.jars.path</name>
    <value>/home/saurab/hadoopec/hive/lib/hive-serde-
   2.1.1.jar</value>
</property>

<property>
    <name>spark.sql.warehouse.dir</name>
    <value>hdfs://saurab:9000/user/hive/warehouse</value>
</property>

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://saurab:9083</value>
    <description>URI for client to contact metastore 
    server</description>
</property>
这是我的thriftserver日志。mysql服务器正在运行。那么为什么它仍在创建metastore\u db并在那里存储数据。
wwtsj6pe

wwtsj6pe1#

我想说您在spark conf文件夹上做了这些更改,但在服务器上没有(至少不是所有更改)。注意服务器日志:“metastore.metastoredirectsql:usingdirectsql,底层db是derby”
一种常见的做法是不复制spark/conf下的配置,只需从那里添加一个到/etc/hive/conf/hive-site.xml的链接,以确保客户机和服务器使用相同的配置。
我的建议是首先正确设置服务器端(也有端口冲突),用beeline测试,只有他们从spark开始使用它

相关问题