자바 큰 데이터 처리

출처: 인터넷
작성자: 사용자
키워드: Ftp 이름 if 자바 큰 데이터

FTP 호스트에서 XX 데이터 파일을 가져가 라.

수만 단지 개념, 수만 또는 수백만의 동일한 데이터를 나타내는 이다.

이 공유 분산된 수집 및 저장. 데이터의 양이 매우 큰, 분산된 처리, 공유 하는 시간에 있을 것입니다 만약 내가이 경험을 고려할 수 있습니다 경우 컴퓨터 처리 데이터에는 포함 되지 않습니다.

1, FTP 도구 응용 프로그램

2, 수만 FTP 코어-의 핵심 부분 파일,이 작품 만큼 열 디렉터리 이루어집니다, 기본적으로 성능이 너무 큰 문제가 되지 않습니다.

파일을 FTP 명령 "NLST" 아파치를 보낼 수 있습니다.

# FTP 열 디렉터리 먼저, 환경 변수의 구성 명령을 실행 하 고 기본 열 디렉터리 메서드 NLST를 구성 하지는 않습니다.

[자바]

# ds_list_cmd NLST =

공용 http://www.aliyun.com/zixun/aggregation/19352.html "> sendcommandandlisttofile (문자열 명령, 문자열 파일 Localpathname)는 IOException을 throw

{

시도 없음

반환 client.createfile (명령, localpathname);

catch (e IOException) 없음

Log.error (e);

새로운 IOException을 throw ("명령" 명령 + "올바르지 않습니다");

}

}

물론 다른 형태 이어야 한다, 공부할 수 있는 우리는

데이터의 금액 이상의 100000 수준 하지 다음 이러한 방법으로, 경우에 사용 해야 단어를 사용 하 여 찾기 죽음 = =

ftpfile dirlist = Client.listfiles ();

3, 다운로드 파일 이름을 읽고 파일에서 일괄 처리. 처리, 메모리에 로드 하거나 파일을 다운로드 하는 파일 이름을 읽기 로드 되지 않는 모든 데이터 메모리에 많은 것 들이 잘못가 면

왜 일괄 처리를 분할 하려면?

위에 나열 된 디렉터리 파일에 1 G 크기 때문에 많은 양의 데이터, 1000W 레코드 하는 경우,

4, 파일 다운로드---파일의 중단점에의 핵심 코드 계속 전송, FTP 파일의 크기 및 판단, 다음 FTP를 사용 하 여 전달 함수를 계속 중단점을 제공 하는 로컬 파일의 크기

다운로드 파일의 이진 형식 이어야

수동 모드를 Client.enterlocalpassivemode () //set

Ftpclient.binary (); 이진 모드를 사용 해야 합니다.

[자바]

/ * * 필요한 파일을 다운로드 및 중단점의 계속을 지원, 다운로드 및 반복 수 없습니다 ftp 파일을 삭제

* @param 경로 원격 파일

* @param localpath 로컬 파일

* @param registerfilename 로그 파일 이름 디렉터리

* @param 크기 업로드 파일

* @return 사실 다운로드 및 삭제 성공

* @throws IOException

* @throws 예외

*/

공공 부울 다운로드 (경로 이름 문자열, 문자열 localpath) throw IOException 없음

부울 플래그 = false;

파일을 파일 = 새로운 파일 (localpath + ". tmp"); //Set 임시 파일

FileOutputStream = null;

시도 없음

수동 모드를 Client.enterlocalpassivemode () //set

Client.setfiletype (Ftp.binary_file_type);//set 이진 전송

경우 (lff.getisfileexists (파일)) {//Judge 있는지 로컬 파일, 그것은 존재 하 고 ftp 파일의 길이 보다 작은 경우, 중단점이 갱신;

긴 사이즈 = This.getsize (pathName);

긴 localfilesize = lff.getsize (파일);

경우 (localfilesize > 크기) 없음

반환 허위;

}

= 새로운 FileOutputStream (파일, true);

Client.setrestartoffset (localfilesize);

플래그 = Client.retrievefile (새로운 문자열 (Pathname.getbytes (), client.getcontrolencoding ()), 밖으로);

Out.flush ();

} 다른 없음

밖으로 = new FileOutputStream (파일);

플래그 = Client.retrievefile (새로운 문자열 (Pathname.getbytes (), client.getcontrolencoding ()), 밖으로);

Out.flush ();

}

} catch 없음; (IOException e)

Log.error (e);

Log.error ("파일 다운로드 오류!");

던져 전자;

} 마지막으로 없음

시도 없음

경우 (null! 밖으로 =)

Out.close ();

경우 (플래그)

Lff.rename (파일, localpath);

} catch 없음; (IOException e)

던져 전자;

}

}

반환 깃발;

}

/**

파일 길이 얻을

* @param filenamepath 기본 파일

* @return

* @throws IOException

*/

공개 긴 GetSize (문자열 filenamepath) throw ioexception 없음

Ftpfile ftp client.listfiles = (새로운 문자열 (Filenamepath.getbytes (), client.getcontrolencoding ());

Ftp.length==0을 반환? 0:ftp [0].getsize ();

}

파일 크기 다운로드 하는 경우 로컬 파일 다운로드 경우 감지 합니다.

/**

* 로컬 파일에 대 한 가져오기 파일의 크기

* @param 파일

* @return

*/

공개 긴 getsize (파일) 없음

긴 크기 = 0;

경우 (getisfileexists (파일)) 없음

크기 = File.length ();

}

반환 크기;

}

5, 그 죽은 스레드 및 적시 올려 온라인 모니터링을 할 몇 가지 처리, 100 개 이상의 스레드까지 실행 프로그램 감지할 수 있기 때문에.

T.setuncaughtexceptionhandler (새로운 ThreadException (exlist));

원리: 각 스레드, 다이 정보에 해당 하는 스레드를 목록에 추가 하는 경우에 Uncaughtexceptionhandler를 추가 하 고 주 스레드 가끔 목록, 스캔 하는 동안에 데이터가 있을 경우, 직접 그것을 실행 하는 스레드를 다시

6, 프로그램은 메모리 상주 하는 경우에 사용 되지 않는 FTP 연결을 마지막으로 종료를 잊지 마세요

7, 대형 데이터베이스 수집 프로그램 계정 한 가지 디스크 공간 전체 처리에 걸릴 해야 합니다.

디스크 공간에 대 한 자바 가상 기계는 영어 환경 리눅스 엑스 기계 일반 보고서 전체

파일 시스템에 충분 한 공간이 되지 않습니다.

일반 보고서 "디스크 공간 전체" 중국 환경에서

다음 코드를 사용 하 여 확인 하 수 있습니다.

[자바]

파일 시스템에 충분 한 공간을 리눅스 Aix 거기으로

창의 파일 시스템에 충분 한 공간 아니다.

경우 (E.tostring (). 포함 ("충분 한 공간") | | E.tostring (). 포함 ("디스크 공간 전체")

{

Log.error ("채널" + channel_name + "않습니다 충분 한 공간이 디스크에");

Runtime.getruntime (). 출구 (0);

}

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.