You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark Druid Connector连接报错:JsonParseException无法识别token 'root1234'

Spark连接Druid深度存储时Jackson解析密码报错问题

我们尝试通过Spark连接Druid深度存储,使用了一个spark-druid-connector仓库,因版本不兼容,已针对Scala 2.11、Spark 2.4.3环境做适配修改。

第一种尝试及报错

按仓库示例代码读取Druid时:

import com.julianjaffe.spark_druid_connector.DruidDataFrameReader
import com.julianjaffe.spark_druid_connector.model.HdfsDeepStorageConfig

val deepStorageConfig = new HdfsDeepStorageConfig().storageDirectory("oss://debucket/druid/segments")
spark.read
     .brokerHost("10.100.1.123")
     .brokerPort(18082)
     .metadataDbType("mysql")
     .metadataUri("jdbc:mysql://10.100.1.123:3306/druid")
     .metadataUser("root")
     .metadataPassword("root1234")
     .dataSource("interaction")
     .deepStorage(deepStorageConfig)
     .druid()

抛出如下错误:

Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'root1234': was expecting ('true', 'false' or 'null')

第二种尝试仍未解决

我们也尝试了通过配置参数的方式读取,问题依旧:

val properties = Map[String, String](
  "metadata.dbType" -> "mysql",
  "metadata.connectUri" -> "jdbc:mysql://10.100.1.123:3306/druid",
  "metadata.user" -> "root",
  "metadata.password" -> "root123",
  "broker.host" -> "10.100.1.123",
  "broker.port" -> "8082",
  "table" -> "dataSource",
  "reader.deepStorageType" -> "hdfs",
  "local.storageDirectory" -> "oss://debucket/druid/segments/")

spark
  .read
  .format("druid")
  .options(properties)
  .load()

问题分析与解决方案

这个错误是Jackson在解析密码字符串时,误将纯文本密码当作JSON值处理导致的。以下是可行的排查和解决方向:

  • 检查适配代码的配置处理逻辑:重点查看连接器中metadataPassword字段的序列化/反序列化代码,确认是否错误地使用Jackson的JSON解析方法处理纯字符串密码。如果是,修改为直接传递字符串而非解析JSON。
  • 尝试给密码添加引号:在设置密码时,将密码用双引号包裹,比如.metadataPassword("\"root1234\""),或者在properties中写成"metadata.password" -> "\"root123\"",让Jackson能将其识别为合法的JSON字符串。
  • 验证元数据库连接信息:确认MySQL的URI、用户名、密码本身正确,排除数据库连接本身的问题。
  • 核对适配修改点:检查针对Scala 2.11、Spark 2.4.3的适配代码,是否在配置传递环节引入了不必要的JSON转换逻辑。

内容的提问来源于stack exchange,提问作者Elif Gerdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:01:28