Ftp 传输大量小文件集
当数据在MB甚至GB范围内时,通常的数据传输方法(scp、http和ftp实用程序,如curl或wget)可以正常工作,但当您有非常大的小文件集合(例如10KB)时,传输速度将非常慢,而且根本不使用带宽 有两个服务器(S1、S2),当S1中接收到一个文件时,应立即将其发送给S2Ftp 传输大量小文件集,ftp,apache-flink,apache-nifi,file-transfer,data-stream,Ftp,Apache Flink,Apache Nifi,File Transfer,Data Stream,当数据在MB甚至GB范围内时,通常的数据传输方法(scp、http和ftp实用程序,如curl或wget)可以正常工作,但当您有非常大的小文件集合(例如10KB)时,传输速度将非常慢,而且根本不使用带宽 有两个服务器(S1、S2),当S1中接收到一个文件时,应立即将其发送给S2 你有没有想过使用一些DSP工具,例如ApacheFlink或NIFI?我没有使用过ApacheFlink,但是 使用NiFi这个用例相当简单(只需拖放并配置3个处理器) 流量: 1.ListFile //list fil
你有没有想过使用一些DSP工具,例如ApacheFlink或NIFI?我没有使用过ApacheFlink,但是 使用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/liststp..etc
- 一旦我们列出了文件,我们就可以进行
负载平衡,并跨集群中的所有节点分发
工作
- 文件的实际提取将由
处理器根据与流文件关联的属性动态完成FetchFile
- 使用
处理器的FetchFile
连接,使用success
处理器将文件传输到S2服务器PutFile/putstp..etc
请参阅链接以了解上述流的更多详细信息/用法。我没有使用ApacheFlink,但是 使用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/liststp..etc
- 一旦我们列出了文件,我们就可以进行
负载平衡,并跨集群中的所有节点分发
工作
- 文件的实际提取将由
处理器根据与流文件关联的属性动态完成FetchFile
- 使用
处理器的FetchFile
连接,使用success
处理器将文件传输到S2服务器PutFile/putstp..etc
有关上述流程的更多详细信息/用法,请参阅链接。您可以使用Flink连续复制文件,是的-尽管这不是我通常看到的用例,因为您所做的只是移动字节,而不是处理数据(这是Flink最擅长的) 要使用Flink实现这一点,您需要设置一个连续监视S3源目录并向任何新文件发送路径的。然后您可能会使用异步复制将文件从当前位置异步复制到新位置
--Ken您可以使用Flink连续复制文件,是的-尽管这不是我通常看到的用例,因为您所做的只是移动字节,而不是处理数据(这是Flink做得最好的地方) 要使用Flink实现这一点,您需要设置一个连续监视S3源目录并向任何新文件发送路径的。然后您可能会使用异步复制将文件从当前位置异步复制到新位置
--Ken我怀疑我遗漏了您问题的某些方面,但通常当您有许多小文件时,您可以将它们组合在一起以避免“每个文件”的开销,或者运行多个,并行流使用可用带宽。我怀疑您的问题中有一些方面我不知道,但通常当您有许多小文件时,您可以将它们组合在一起以避免“每个文件”的开销,或者运行多个并行流以使用可用带宽。