【问题标题】:Sqoop and Avro depedency issue in Dataproc Spark 3.1Dataproc Spark 3.1 中的 Sqoop 和 Avro 依赖问题
【发布时间】:2021-01-29 11:56:05
【问题描述】:

我正在 GCP Dataproc 中从 spark 2.4.7 升级到 spark 3.1。我正在做sqoop import 并将数据加载到 Parquet 文件中。该代码在 Spark 2.4.7 版本上运行良好,但在 Spark 3.1 中出现以下错误。

2021-01-29 10:57:25,383 ERROR sqoop.Sqoop: Got exception running Sqoop: org.apache.avro.AvroRuntimeException: Unknown datum class: class org.codehaus.jackson.node.NullNode
org.apache.avro.AvroRuntimeException: Unknown datum class: class org.codehaus.jackson.node.NullNode
    at org.apache.avro.util.internal.JacksonUtils.toJson(JacksonUtils.java:87)
    at org.apache.avro.util.internal.JacksonUtils.toJsonNode(JacksonUtils.java:48)
    at org.apache.avro.Schema$Field.<init>(Schema.java:558)
    at org.apache.sqoop.orm.AvroSchemaGenerator.generate(AvroSchemaGenerator.java:100)
    at org.apache.sqoop.mapreduce.DataDrivenImportJob.generateAvroSchema(DataDrivenImportJob.java:131)
    at org.apache.sqoop.mapreduce.DataDrivenImportJob.configureMapper(DataDrivenImportJob.java:116)
    at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:266)
    at org.apache.sqoop.manager.SqlManager.importQuery(SqlManager.java:747)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:536)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:633)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:146)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:182)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:233)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:242)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:251)

我尝试将 Sqoop 依赖 jar 从旧版本替换为新版本,但问题仍然存在。我无法找到解决此问题的方法。

安装 Sqoop 1.5.0-SNAPSHOT 版本时是否存在 GCP Dataproc 依赖问题?

【问题讨论】:

    标签: java avro sqoop google-cloud-dataproc


    【解决方案1】:

    此异常是由SQOOP-3485 问题引起的。我们将在 2 周后在 Dataproc 2.0 映像的未来版本中修复它。

    同时您可以尝试通过将org.codehaus.jackson:jackson-mapper-asl:1.9.13 jar 添加到 Sqoop 和/或您的应用程序类路径来解决此问题。

    【讨论】:

    • 我在 /usr/lib/sqoop/lib/ 文件夹中添加了上面的 jar 并运行了 sqoop 导入命令。同样的错误仍然存​​在。你能帮我找到另一个可行的解决方案吗?
    • 在这种情况下,唯一的解决方法是在 Sqoop 主干中修复 SQOOP-3485(有关 Hive 中的类似修复示例,请参阅 HIVE-24436),构建新的 Sqoop jar 并使用 Dataproc 初始化操作将它们安装到Dataproc 2.0 集群。否则,您将需要在大约 2 周后等待下一个 Dataproc 2.0 映像中的修复推出。
    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 2020-12-06
    • 2015-03-10
    • 2021-10-24
    • 2016-06-25
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多