对于SCDF来说,是新手,我已经在docker-compose.yml上启动了我计算机上的最新版本(截至1.7.2)
从那时起,我在使用捆绑的ftp源应用程序时遇到了麻烦。
我已经通过Web UI配置了一个测试流,如下所示:
ftp
--auto-create-local-dir=true
--filename-pattern=Test.csv
--mode=contents
--password=MyPassword
--delete-remote-files=false
--host=myhost.preprod.org
--remote-dir=TheRemoteDir
--fixed-delay=30
--initial-delay=15
--username=aFtpUser
|
file
--name-expression='ftp_'.concat(T(java.time.LocalDateTime).now().toString())
--suffix=.csv
--directory=/tmp/testScdf
我注意到了:
1)该流的初始触发确实在托管文件应用的Docker容器的/ tmp / testScdf目录中创建了一个文件
2)随后的触发器全部失败,导致没有额外的文件创建
3)跟踪ftp应用程序日志我可以看到每30秒出现一次以下WARN条目:
2018-11-09 16:51:30.491 WARN 68 --- [ask-scheduler-5] o.s.i.f.i.FtpInboundFileSynchronizer : The remote file '11-09-18 04:41PM 4678 Test.csv' has not been transferred to the existing local file '/tmp/xd/ftp/Test.csv'. Consider removing the local file.
4)确实,当我docker exec -it dataflow-server ls -la /tmp/xd/ftp/
时,我发现此目录从未清除过。
5)我找不到在ftp源应用程序级别上的任何参数,这些参数似乎是要求该应用程序在流接收成功后执行清除的有效候选对象。
我很困惑:
为什么ftp源应用程序没有删除它加载到其tmp目录(此处为/ tmp / xd / ftp /)中的文件?
为什么此应用需要将文件作为实际文件接收,而不是将其作为内存文件流进行管理?
我想这个选项可能丢失了,或更可能是我缺少了SCDF的重要概念
任何评论/帮助将不胜感激。