0

我试图使用 Streamsets 查询 Oracle 数据库并将数据发布到 Kafka。我在我的 Mac 上下载了 Streamsets 的压缩包并将其解压缩到我的主目录中。在我第一次尝试时开始运行$HOME/streamsets-datacollector-2.1.0.2/bin/streamsets dc,然后我按照此处的说明添加 jdbc 驱动程序,然后按照此处的说明配置我的流集作业。但是,我收到一个错误:JDBC_00 - Cannot connect to specified database: com.streamsets.pipeline.api.StageException: JDBC_06 - Failed to initialize connection pool: java.sql.SQLRecoverableException: IO Error: Bad file descriptor.

4

2 回答 2

2

这最终与进程可以打开的文件数量的限制有关。当我ulimit -n在笔记本电脑上运行时,它显示4864,然后我将其设置为10,000via ulimit -n 10000,重新启动流集服务器,它工作了!如果我需要继续运行它,我会找到一种更程序化的方法来设置此进程的 ulimit 以解决此问题。

于 2016-11-10T22:21:18.703 回答
1

你肯定需要增加 ulimit -n。要永久更改 Ubuntu 中的所有用户,请尝试以下操作:

echo "* soft nofile 60000" > /etc/security/limits.d/*_limits.conf && echo "* hard nofile 60000" >> /etc/security/limits.d/*_limits.conf

用你想要的任何数字替换 60000。我在使用 60k 的流集中从来没有遇到过问题。你应该能够在 bsd 中做类似的事情。

于 2018-04-16T14:32:22.043 回答