gpt4 book ai didi

hadoop - 从Hive与Druid互动时出错

转载 作者:行者123 更新时间:2023-12-02 19:54:50 25 4
gpt4 key购买 nike

我正在尝试从Hive创建一个Druid数据源,并且正在为其使用表Hive。

首先,我创建了一个数据库Hive:database_hive,然后在此数据库中创建了一个表。

CREATE TABLE database_hive.hive_table (
timemachine int,
userId String,
lang String,
location String,
name String,
network String,
posted String,
sentiment String,
text String,
);

在第二次,我试图使用 hive_table在Druid上创建一个新的数据源。

SET hive.druid.broker.address.default = 10.1.123.30:8082; --fake ip for example
SET hive.druid.metadata.username = druid;
SET hive.druid.metadata.password = druidpassword;
SET hive.druid.metadata.db.type = derby;
SET hive.druid.metadata.uri = jdbc:mysql://10.1.123.30:3306/druid?createDatabaseIfNoExist=true;

CREATE TABLE druid_table
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
TBLPROPERTIES (
"druid.segment.granularity" = "MONTH",
"druid.query.granularity" = "DAY")
AS
SELECT
cast(timemachine as timestamp) as `__time`,
cast(userId as string) userId,
cast(lang as string) lang,
cast(location as string) location,
cast(name as string) name,
cast(network as string) network,
cast(posted as string) posted,
cast(sentiment as string) sentiment,
cast(text as string) text
FROM hive_table
;

此查询返回一个错误:
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException: java.sql.SQLException: Cannot create JDBC driver of class 'org.apache.derby.jdbc.ClientDriver' for connect URL 'jdbc:mysql://10.1.123.30:3306/druid?createDatabaseIfNoExist=true' (state=08S01,code=1)

在我的Hive存储库中,我使用了 mysql-connector-java.jar,所以我不明白这是什么问题。我尝试了一些其他主题的提案,但没有找到解决方案。
有人有建议吗?

感谢帮助 !

最佳答案

问题出在您的Druid元数据数据库配置中。
Hive需要访问Druid用于存储所有元数据的关系数据库。可以在Druid端将其设置为derby,但是Derby类似于SQLite,因此Hive无法访问它。因此,Hive不允许将derby作为hive.druid.metadata.db.type属性的有效参数。唯一允许的是mysqlpostgresql

因此,要解决此问题,您需要:

  • 确保您的Druid集群使用MySQL或PSQL进行元数据存储
  • hive.druid.metadata.db.type设置为正确的数据库类型
  • 设置hive.druid.metadata.uri以更正数据库URL
  • 关于hadoop - 从Hive与Druid互动时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58376870/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com