首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java千万级别数据处理(2)-千万级别FTP上载

2012-09-03 
java千万级别数据处理(2)-千万级别FTP下载?? ? ? ? ? ? 这个也是以前做过的一个程序,目的主要是去ftp主机(

java千万级别数据处理(2)-千万级别FTP下载

?

? ? ? ? ? ? 这个也是以前做过的一个程序,目的主要是去ftp主机(最多100左右)去取xx数据文件.


? ? ? ? ? ??千万级别只是个概念,代表数据量等于千万或者大于千万的数据

? ? ? ? ? ??本分享不牵扯分布式采集存储之类的.是在一台机器上处理数据,如果数据量很大很大的话,可以考虑分布式处理,如果以后我有这方面的经验,会及时分享的.


1、程序采用的ftp工具, apache 的 commons-net-ftp-2.0.jar

?

2、千万级别ftp核心关键的部分--列目录到文件,只要是这块做好了,基本上性能就没有太大的问题了.

?

? 可以通过apache 发送ftp命令 "NLST" 的方式列目录到文件中去

?

? # ftp列目录执行的命令 以环境变量的配置优先,不配置则使用默认的列目录方式 NLST

?

? ? ? ? ? ??当然应该还有其他形式的,大家可以自己研究一下

?

? ? ? ? ? ??十万级别以上的数据量的话千万不要使用下面这种方式,如果用的话 ==== 找死

?

? ? ??? ? ? ?FTPFile[] dirList = client.listFiles();

??

3、分批次从文件中读取 要下载的文件名. ?加载到内存中处理,或者读取一个文件名就下载一个文件,不要把所有的数据都加载到内存,如果很多的话会出问题

? ?

? ? ? ? ? ??为啥要分批次?

? ? ? ? ? ??因为是大数据量,如果有1000W条记录,列出来的目录文件的大小 1G以上吧



4、文件下载的核心代码----关于文件的断点续传, 获得ftp文件的大小和本地文件的大小进行判断,然后使用ftp提供的断点续传功能

? ? ? ? ? ??下载文件一定要使用二进制的形式

? ? ? ? ? ??client.enterLocalPassiveMode();// 设置为被动模式

? ? ? ? ? ??ftpclient.binary(); ?// 一定要使用二进制模式


???

? ?

?

?

? ? ? ? ?欢迎访问我的个人博客 ? java进阶网 ? ??www.javady.com

?? ? ? ? ? ?<千万级别数据生成xml文件> ?原创文章 by dyllove98 @?http://jlins.iteye.com?转载请表明出处。

?



记录下
千万级别的数据库转移或者读取和处理大文件 持续关注,谢谢分享   
可以呀,o(∩_∩)o...
谢谢支持
谢谢支持

谢谢支持

热点排行