【问题标题】:Unable to use MySQL as Hive Metastore for Spark无法将 MySQL 用作 Spark 的 Hive Metastore
【发布时间】:2022-01-25 15:49:25
【问题描述】:

我想设置我的本地 Spark 以启用多个连接。 (即笔记本、BI 工具、应用程序等)所以我必须远离 Derby。

我的hive-site.xml如下

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.cj.jdbc.Driver</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>spark@localhost</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>spark</value>
</property>

<property>
  <name>datanucleus.schema.autoCreateTables</name>
  <value>true</value>
</property>

我按照 Spark 的建议将“datanucleus.schema.autoCreateTables”设置为 true。 "createDatabaseIfNotExist=true" 似乎什么也没做。

但这仍然失败

21/12/26 04:34:20 WARN Datastore: SQL Warning : 'BINARY as attribute of a type' is deprecated and will be removed in a future release. Please use a CHARACTER SET clause with _bin collation instead
21/12/26 04:34:20 ERROR Datastore: Error thrown executing CREATE TABLE `TBLS`
(
    `TBL_ID` BIGINT NOT NULL,
    `CREATE_TIME` INTEGER NOT NULL,
    `DB_ID` BIGINT NULL,
    `LAST_ACCESS_TIME` INTEGER NOT NULL,
    `OWNER` VARCHAR(767) BINARY NULL,
    `RETENTION` INTEGER NOT NULL,
    `IS_REWRITE_ENABLED` BIT NOT NULL,
    `SD_ID` BIGINT NULL,
    `TBL_NAME` VARCHAR(256) BINARY NULL,
    `TBL_TYPE` VARCHAR(128) BINARY NULL,
    `VIEW_EXPANDED_TEXT` TEXT [CHARACTER SET charset_name] [COLLATE collation_name] NULL,
    `VIEW_ORIGINAL_TEXT` TEXT [CHARACTER SET charset_name] [COLLATE collation_name] NULL,
    CONSTRAINT `TBLS_PK` PRIMARY KEY (`TBL_ID`)
) ENGINE=INNODB : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[CHARACTER SET charset_name] [COLLATE collation_name] NULL,

等等。

请指教。

【问题讨论】:

    标签: apache-spark hive


    【解决方案1】:

    好的,我做到了。

    所以基本上我不能依靠 Spark 自动执行此操作,即使它能够初始化 Derby 版本。

    所以我必须同时下载 Hadoop 和 Hive,并使用 Hive 中捆绑的 schemaTool 来设置元存储。

    然后 Spark 可以直接使用它。

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 1970-01-01
      • 2016-08-01
      • 2017-12-19
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      相关资源
      最近更新 更多