我试图使用Streamsets查询Oracle数据库并将数据发布到Kafka。我在Mac上下载了Streamsets的tarball并将其解压缩到我的主目录中。第一次尝试时启动$HOME/streamsets-datacollector-2.1.0.2/bin/streamsets dc
,然后按照说明here添加jdbc驱动程序,然后添加说明here以配置我的streamset作业。但是,我收到了一个错误: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
。
答案 0 :(得分:2)
这最终与进程可以打开的文件数量限制有关。当我在笔记本电脑上运行ulimit -n
时,它显示4864
,然后我通过10,000
将其设置为ulimit -n 10000
,重新启动了streamsets服务器,它运行良好!如果我需要继续运行它,我会找到一种更程序化的方法来设置此过程的ulimit来解决这个问题。
答案 1 :(得分: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做类似的事情。