当你的数据在MB甚至GB范围内时,通常的数据传输方法(scp、http和ftp实用程序,如curl或wget)可以很好地工作,但是当你有非常大的小文件集合(例如10KB)时,传输将非常慢,并且根本不会使用带宽。
有两个服务器( S1,S2),当在S1中接收到一个文件时,它应该立即将其发送到S2。
您是否了解如何使用一些DSP工具,例如Apache Flink或NIFI?
发布于 2018-12-16 14:41:42
我没有使用过Apache-Flink,但是使用NiFi这个用例相当简单(只需拖放并配置3个处理器)
流程:
1.ListFile //list files in S1 server
--> Success Connection (Load Balance Strategy (or) Remote Processor Group)
2.FetchFile //fetch the file from S1 Server
--> Success Connection
3.PutFile //send the file to S2 server我们将一直运行ListFile/ListSFTP..etc processor以递增方式列出directory.
FetchFile processor将根据与flowfile.
FetchFile processor的success连接将文件传输到使用PutFile/PutSFTP..etc processor的S2 。有关上述流程的更多详细信息/用法,请参阅this链接。
发布于 2018-12-17 05:58:02
你可以使用Flink连续复制文件,是的--尽管这不是我通常见过的用例,因为你所做的只是移动字节,而不是处理数据数据(这是Flink最擅长的地方)。
要使用Flink实现这一点,您需要设置一个持续监视S3源目录的(Rich)SourceFunction,并发出任何新文件的路径。然后,您可能会使用AsyncFunction将文件从当前位置异步复制到新位置。
--肯
https://stackoverflow.com/questions/53799490
复制相似问题