我想从oracle创建一个源代码。所以我选择原点oracle cdc。然后我配置了每个参数:
JDBC连接字符串
但是当我运行这个过程时,我会在我的日志中找到:
2017-08-22 11:07:22,447 test / testb156f588-dbd7-4e4c-8896-caf658d14d77连接数据库时出错ERROR
com.streamsets.pipeline.api.StageException:JDBC_06 - 无法初始化连接池:java.lang.RuntimeException:无法获取jdbcUrl = jdbc的驱动程序实例:oracle:thin:@(DESCRIPTION = (ENABLE = BROKEN) (ADDRESS =(PROTOCOL = TCP)(HOST = myhost)(PORT = myport)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.WORLD))) 在com.streamsets.pipeline.lib.jdbc.JdbcUtil.createDataSourceForRead(JdbcUtil.java:638) 在com.streamsets.pipeline.stage.origin.jdbc.cdc.oracle.OracleCDCSource.init(OracleCDCSource.java:643) 在com.streamsets.pipeline.api.base.BaseStage.init(BaseStage.java:52) 在com.streamsets.pipeline.configurablestage.DStage.init(DStage.java:40) 在com.streamsets.datacollector.runner.StageRuntime.init(StageRuntime.java:156) 在com.streamsets.datacollector.runner.StagePipe.init(StagePipe.java:105) 在com.streamsets.datacollector.runner.StagePipe.init(StagePipe.java:53) 在com.streamsets.datacollector.runner.Pipeline.initPipe(Pipeline.java:299) 在com.streamsets.datacollector.runner.Pipeline.init(Pipeline.java:214) 在com.streamsets.datacollector.execution.runner.common.ProductionPipeline.run(ProductionPipeline.java:96) 在com.streamsets.datacollector.execution.runner.common.ProductionPipelineRunnable.run(ProductionPipelineRunnable.java:79) 在com.streamsets.datacollector.execution.runner.standalone.StandaloneRunner.start(StandaloneRunner.java:646) 在com.streamsets.datacollector.execution.runner.common.AsyncRunner.lambda $ start $ 3(AsyncRunner.java:143) at com.streamsets.pipeline.lib.executor.SafeScheduledExecutorService $ SafeCallable.call(SafeScheduledExecutorService.java:233) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745) 引起:java.lang.RuntimeException:无法获取jdbcUrl = jdbc的驱动程序实例:oracle:thin:@(DESCRIPTION = (ENABLE = BROKEN) (ADDRESS =(PROTOCOL = TCP)(HOST = myhost)(PORT = myport)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.WORLD))) 在com.zaxxer.hikari.util.DriverDataSource。(DriverDataSource.java:88) 在com.zaxxer.hikari.pool.PoolElf.initializeDataSource(PoolElf.java:157) 在com.zaxxer.hikari.pool.HikariPool。(HikariPool.java:113) 在com.zaxxer.hikari.HikariDataSource。(HikariDataSource.java:73) 在com.streamsets.pipeline.lib.jdbc.JdbcUtil.createDataSourceForRead(JdbcUtil.java:630) ......还有19个 引起:java.sql.SQLException:没有合适的驱动程序 在java.sql.DriverManager.getDriver(DriverManager.java:315) 在com.zaxxer.hikari.util.DriverDataSource。(DriverDataSource.java:81) ......还有23个
你有什么想法吗?
答案 0 :(得分:1)
似乎没有设置环境变量 STREAMSETS_LIBRARIES_EXTRA_DIR ,这是安装外部库安装过程的一部分。
根据Data Collector的初始化样式,有三种安装类型:
如果要安装 SDC
手动 开始,然后变量 STREAMSETS_LIBRARIES_EXTRA_DIR 应该由
从命令行设置export STREAMSETS_LIBRARIES_EXTRA_DIR="/opt/streamsets-data-collector/streamsets-data-collector-3.15.0/streamsets-libs-extras/"
从 服务 开始,则该参数已经存在 在 $ SDC_DIST / libexec / _sdc 文件中,作为
STREAMSETS_LIBRARIES_EXTRA_DIR="${STREAMSETS_LIBRARIES_EXTRA_DIR:=${SDC_DIST}/streamsets-libs-extras}"
其中 $ SDC_DIST 变量是SDC安装文件( tarball 或 RPM )的提取目录。 / p>
,并且应该将相同的路径添加到文件 $ SDC_CONF / sdc-security.policy
grant codebase "file:///opt/streamsets-data-collector/streamsets-data-collector-3.15.0/streamsets-libs-extras/-" {
permission java.security.AllPermission;
};
其中 $ SDC_CONF 的变量通常由路径 / etc / sdc
定义现在,我们准备登录Data Collector Console,以便按照以下步骤添加 JDBC外部库:
Data Collector列出了所有当前安装的外部库。
并选择 .jar 文件,例如 ojdbc8.jar ,该文件可以从JDBC and UCP Downloads page下载(在我的情况下,我选择了名为我的远程数据库版本是 Oracle Database 12c第2版(12.2.0.1)驱动程序。
最后一步,请不要忘记单击 Install External Libraries 窗口中的 Cancel ,然后运行以下命令:
service sdc restart ( for SysV Init)
或
systemctl restart sdc ( for Systemd Init )
(如果您是从命令行手动启动Data Collector的,则可以在 Install External Libraries 窗口中单击 Restart Data Collector 。 )
答案 1 :(得分:0)
在旧版配置标签下,尝试将 JDBC驱动程序类名称指定为 oracle.jdbc.driver.OracleDriver
答案 2 :(得分:0)
我必须在存储库
下添加ojdbc jar/opt/streamsets-extra/streamsets-datacollector-jdbc-lib/lib