java大数据处理(千万级别FTP).doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java大数据处理(千万级别FTP)

【转】java大数据处理(千万级别FTP下载) 从ftp主机取xx数据文件.? ??????? 千万级别只是个概念,代表数据量等于千万或者大于千万的数据? ?????????? 本分享不牵扯分布式采集存储之类的.是在一台机器上处理数据,如果数据量很大很大的话,可以考虑分布式处理,如果以后我有这方面的经验,会及时分享的.? ??? ? 1、程序采用的ftp工具, apache 的 commons-net-ftp-2.0.jar? ???? ?? 2、千万级别ftp核心关键的部分--列目录到文件,只要是这块做好了,基本上性能就没有太大的问题了.? ???? ???? 可以通过apache 发送ftp命令 NLST 的方式列目录到文件中去? ???? Java代码?? ???? #?ftp列目录执行的命令?以环境变量的配置优先,不配置则使用默认的列目录方式?NLST??#?DS_LIST_CMD?=?NLST??? ?? public?File?sendCommandAndListToFile(String?command,String?localPathName)?throws???IOException??? ????????{?? ?????????????????try?{?? ?????????????????????????return?client.createFile(command,?localPathName);?? ?????????????????}?catch?(IOException?e)?{?? ?????????????????????????log.error(e);?? ?????????????throw?new?IOException(the?command?+command?+?is?incorrect);?? ?????????????????}?? ?????????}?? ?????? 当然应该还有其他形式的,大家可以自己研究一下? ???? ?????????????? 十万级别以上的数据量的话千万不要使用下面这种方式,如果用的话 ==== 找死? ???? ??? Java代码?? FTPFile[]?dirList?=?client.listFiles();???? ?? 3、分批次从文件中读取 要下载的文件名.? 加载到内存中处理,或者读取一个文件名就下载一个文件,不要把所有的数据都加载到内存,如果很多的话会出问题? ?????? ?????????????? 为啥要分批次?? ?????????????? 因为是大数据量,如果有1000W条记录,列出来的目录文件的大小 1G以上吧? ??? ?? ? 4、文件下载的核心代码----关于文件的断点续传, 获得ftp文件的大小和本地文件的大小进行判断,然后使用ftp提供的断点续传功能? ?????????????? 下载文件一定要使用二进制的形式? Java代码?? ???????????client.enterLocalPassiveMode();//?设置为被动模式?? ????????????ftpclient.binary();??//?一定要使用二进制模式?? /**?下载所需的文件并支持断点续传,下载后删除FTP文件,以免重复? ???????*?@param?pathName?远程文件? ???????*?@param?localPath?本地文件? ???????*?@param?registerFileName?记录本文件名称目录? ???????*?@param?size?上传文件大小? ???????*?@return?true?下载及删除成功? ???????*?@throws?IOException?? ??????*?@throws?Exception? ???????*/?? ??????public?boolean?downLoad(String?pathName,?String?localPath)?throws?IOException?{?? ??????????????boolean?flag?=?false;?? ??????????????File?file?=?new?File(localPath+.tmp);//设置临时文件?? ??????????????FileOutputStream?out?=?null;?? ??????????????try{?? ??????????????????client.enterLocalPassiveMode();//?设置为被动模式?? ??????????????????client.setFileType(FTP.BINARY_F

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档