【发布时间】:2020-05-07 22:54:34
【问题描述】:
我有一个需要澄清的问题以及使用云数据融合的 2 个错误: 背景:创建管道以使用云数据融合将数据从 Oracle(版本 11.2.0.4,本地服务器)中的单个表移动到 BigQuery。我已经从即时客户端 11.2.0.4.0 下载了 Oracle JDBC 驱动程序,并将 ojdbc6.jar 文件用作以下部署的 oracle 驱动程序。如果我使用较新的,我会收到日期错误。
清晰:似乎有 3 个地方可以加载 OJDBC 驱动程序:
(a) Wrangler 数据库列表(例如:sbl),单击编辑,它会要求我安装 Oracle 驱动程序或 Oracle 瘦驱动程序。我需要输入 Oracle 类(我复制了示例 oracle.jdbc.driver.OracleDriver)。如果我不这样做并选择瘦客户端,当我尝试查看 Wrangler->Database 下的数据库对象时会出现错误。如果我只执行此操作而不执行其他操作,那么在验证管道中的源时,我会收到一条消息,表明尚未部署 oracle 插件。
(b) 单击 HUB 并选择 Drivers 我看到 Oracle 12c JDBC Drver v12c 的选项。如果我选择 Oracle 选项,我会收到下载 Oracle 12c JDBC 驱动程序的提示,然后通过将驱动程序拖到窗口中来部署该驱动程序(此时没有配置选项)。
(c) 单击 HUB 和插件,我会看到 Oracle 导出操作插件 v 1.7.0 或 Oracle 插件 v 1.2.0 的选项。如果我单击 Oracle 插件选项,我会得到一个“部署”选项。
为了澄清,我需要使用这些选项或组合中的哪些来部署适当的驱动程序和插件来访问作为源的 oracle 数据库?
错误 1: 如果我使用上面的 (c) 选项,我将在源代码中看到一个 Oracle 选项。我选择它并输入我的驱动程序名称(与上面给出的名称相同(例如:ojdbc6)、主机、连接凭据和所有相关信息。当我选择验证按钮时,我收到以下错误:名为“Oracle”类型的插件找不到batchsource'。确保已经部署了'batchsource'类型的插件'Oracle'。不确定上面用于部署的选项,我尝试了不同的组合但没有成功。希望使用Oracle源作为一个选项。
错误 2: 我选择“数据库”作为源(不是 Oracle)。我输入插件名称(它与我在上面的选项 (a) 中使用的名称匹配。我输入我的连接字符串:jdbc:oracle:thin@1.1.20.1:1521:sbl 和所有连接信息。我验证它传递并填充输出架构(使用正确的列和数据类型)。我选择 BigQuery 作为我的接收器,然后连接源和接收器之间的箭头。接收器已更新以适当地包含源列和目标列。我验证并通过。然后我“预览”和“运行”。大约 31 秒后,我收到以下警告和错误消息:
Warning: In spark 1.0 and later spark.local.dir will be overridden by the value set by the cluster manager (via spark_local_dirs in mesos/standalone and local_dirs in yarn)
org.apache.spark.SparkConf#66-spark-submitter-phase-1-e4706b9a-3c7e-11ea-bb5c-36e9df22dd3d
Error:
org.apache.spark.executor.Executor#91-Executor task launch worker for task 0 E
java.lang.NullPointerException: null
at org.apache.hadoop.mapreduce.lib.db.DataDrivenDBInputFormat.createDBRecordReader(DataDrivenDBInputFormat.java:281) ~[hadoop-mapreduce-client-core-2.9.2.jar:na]
at io.cdap.plugin.db.batch.source.DataDrivenETLDBInputFormat.createDBRecordReader(DataDrivenETLDBInputFormat.java:124) ~[1579632628793-0/:na]
at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.createRecordReader(DBInputFormat.java:245) ~[hadoop-mapreduce-client-core-2.9.2.jar:na]
at io.cdap.cdap.etl.batch.preview.LimitingInputFormat.createRecordReader(LimitingInputFormat.java:51) ~[cdap-etl-core-6.1.0.jar:na]
at org.apache.spark.rdd.NewHadoopRDD$$anon$1.liftedTree1$1(NewHadoopRDD.scala:187) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.NewHadoopRDD$$anon$1.<init>(NewHadoopRDD.scala:186) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:141) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:70) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at io.cdap.cdap.app.runtime.spark.data.DatasetRDD.compute(DatasetRDD.scala:58) ~[io.cdap.cdap.cdap-spark-core2_2.11-6.1.0.jar:na]
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.UnionRDD.compute(UnionRDD.scala:105) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:49) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:49) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:49) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.rdd.RDD.iterator(RDD.scala:288) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.scheduler.Task.run(Task.scala:109) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345) ~[spark-core_2.11-2.3.3.jar:2.3.3]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_232]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_232]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_232]
【问题讨论】:
-
我们遇到的问题与您完全相同。这有什么好运气吗?
-
另外,您能否查看 Wrangler 中感兴趣的表格?而不是仅仅能够在 Studio 中导入架构。
-
另外也看到了这个问题。如果您能够解决此问题,建议将很有帮助。
标签: oracle apache-spark jdbc google-cloud-data-fusion