通常的数据传输方法(scp、http和ftp实用程序,如curl或wget)在数据处于mb甚至gb范围内时可以正常工作,但是当您有非常大的小文件集合(例如10kb)时,传输速度会非常慢,而且根本不使用带宽。有两个服务器(s1,s2)当在s1中接收到一个文件时,它应该立即将其发送到s2。你有没有想过使用一些dsp工具,比如ApacheFlink或nifi?
368yc8dk1#
我没用过 Apache-Flink 但是使用nifi这个用例相当简单(只需拖放和配置3个处理器)流量:
Apache-Flink
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 处理器一直递增地列出目录中的文件。一旦我们列出了我们可以做的文件 load balance and distribute 群集中所有节点之间的工作文件的实际获取将由 FetchFile 基于与流文件关联的属性动态地处理程序。使用 success 连接自 FetchFile 处理器使用将文件传输到s2服务器 PutFile/PutSFTP..etc 处理器。有关上述流程的更多详细信息/用法,请参阅此链接。
ListFile/ListSFTP..etc
load balance and distribute
FetchFile
success
PutFile/PutSFTP..etc
brccelvz2#
您可以使用flink连续复制文件,是的-虽然这不是我通常看到的用例,因为您所做的只是移动字节,而不是处理数据(这是flink做得最好的地方)。为了和Flink一起做这件事,你会建立一个 (Rich)SourceFunction 它连续监视s3源目录,并向任何新文件发送路径。那么你可能会使用 AsyncFunction 将文件从当前位置异步复制到新位置。--肯
(Rich)SourceFunction
AsyncFunction
2条答案
按热度按时间368yc8dk1#
我没用过
Apache-Flink
但是使用nifi这个用例相当简单(只需拖放和配置3个处理器)流量:
我们要跑了
ListFile/ListSFTP..etc
处理器一直递增地列出目录中的文件。一旦我们列出了我们可以做的文件
load balance and distribute
群集中所有节点之间的工作文件的实际获取将由
FetchFile
基于与流文件关联的属性动态地处理程序。使用
success
连接自FetchFile
处理器使用将文件传输到s2服务器PutFile/PutSFTP..etc
处理器。有关上述流程的更多详细信息/用法,请参阅此链接。
brccelvz2#
您可以使用flink连续复制文件,是的-虽然这不是我通常看到的用例,因为您所做的只是移动字节,而不是处理数据(这是flink做得最好的地方)。
为了和Flink一起做这件事,你会建立一个
(Rich)SourceFunction
它连续监视s3源目录,并向任何新文件发送路径。那么你可能会使用AsyncFunction
将文件从当前位置异步复制到新位置。--肯