최근 업데이트:2017-08-10
출처: 인터넷
작성자: 사용자
키워드:
Hdfs
자바 코드
추가 및 삭제 확인
HDFS 추가 및 삭제 도구 클래스를 확인 하려면
알림: IDE idear 또는 이클립스에서 실행 하려는 경우 당신이 사용 권한을 할당 해야 합니다 HDFs에 윈도우, 사용자 편의 위해 사용 하는 디렉터리에 모든 권한을 777 추천
만들기 디렉터리 명령
HDFs dfs mkdir MyProject
할당 권한 명령 HDFs dfs chmod 777 MyProject HDFs 추가 하 고 삭제 패키지 hdfs; 가져오기 org.apache.hadoop.conf.Configuration; 가져오기 Org.apache.hadoop.fs.FileStatus; 가져오기 Org.apache.hadoop.fs.FileSystem; 가져오기 Org.apache.hadoop.fs.Path; 가져오기 java.io.IOException; 가져오기 java.util.ArrayList; 가져오기 java.util.List; / * * * 2017/8/7에 Liuwensheng에 의해 만들어진. * * 공용 클래스 Hdfsutils {개인 최종 string file_protocol = "file:///"; 개인 최종 문자열 hdfs_protocol = "hdfs: / / Xxx:9000 / myproject "//here XXX 나타냅니다 귀하의 IP 주소와 같은: 192.168.18.1/** * HDFs에 업로드할 로컬 파일에서 파일을 선택 하는 데 사용 * @param 회의 Org.apache.hadoop.conf.Configuration 구성 정보 * @param localpath 문자열 로컬 파일 저장 경로 * @param Hdfspath 문자열 업로드 HDFs 경로 예: a/b. TXT * @throws IOException * / File2hdfs 무효 (구성 회의 localpath 문자열, 문자열 hdfspath) IOException을 throw {파일 시스템 fs (conf); Filesystem.get = Fs.copyfromlocalfile ((File_protocol + localpath) 새로운 경로, 새로운 경로 (Hdfs_protocol + hdfspath)); Fs.close (); / * * * 파일이 테스트 * @param conf 구성 정보 * @param 경로 파일 경로 * @return * @throws IOException/공공 부울 isexit (구성 회의 문자열 경로)는 ioexception을 throw {fs = Filesystem.get (conf); 부울 출구 = Fs.exists (새로운 경로 (Hdfs_protocol + 경로)); Fs.close (); 반환 출구; / * * * 파일을 삭제 * @param conf org.apache.hadoop.conf.Configuration 구성 정보 * @param 경로 파일 경로 삭제할 수 * @throws ioexception * * publi C 부울 Deleteformhdfs (구성 회의 문자열 경로)는 IOException을 throw {파일 시스템 fs (conf); Filesystem.get = Boolea n Isdel = fs.deleteonexit (새로운 경로 (Hdfs_protocol + 경로)); Fs.close (); Isdel; 반환 / * * * 로컬 HDFs 파일 다운로드 * @param conf 구성 정보 * @param hdfspath HDFs 파일 경로 * @param localpath 로컬 파일 경로 * @throws IOException * * public void File2loacl (구성 회의 문자열 hdfspath, 문자열 localpath) ioexception을 throw {파일 시스템 fs = Filesystem.get (conf); Fs.copytolocalfile ((Hdfs_protocol + hdfspath) 새로운 경로, 새로운 경로 (File_protocol + localpath)); Fs.close (); / * * * Hdfs 디렉토리를 생성 * @param conf 구성 정보 * @param 경로 디렉터리 경로 만들 필요가 * @return 성공을 만들 것인지 * @throws IoexcEption/공공 부울 mkhdfsdir (구성 회의 문자열 경로) ioexception을 throw {파일 시스템 fs = Filesystem.get (conf ); MyPath 경로 = 새로운 경로 (hdfs_protocol + 경로); 부울 ISMK = false; 만약 (! fs.exists (MyPath)) {ISMK = Fs.mkdirs (MyPath);} fs.close (); ISMK; 반환 / * * * 현재 디렉터리에 있는 파일 목록 보기 * @param conf 구성 정보 * @param 경로 보기 디렉터리 * @return 파일 상태 배열 * @throws IOException/공개 목록 Lshdfsdir (구성 회의 문자열 경로)는 ioexception을 throw {목록 = new ArrayList (); 파일 시스템 fs = Filesystem.get (conf); filestatus filestatuses = fs.liststatus (새로운 경로 (Hdfs_protocol + 경로)); (Filestatus filestatus:filestatuses)에 대 한 {List.add (Filestatus.getpath (). toString ());} fs.close (); 반환 목록; 패키지 테스트 사례 HDFs를 가져옵니다. Hdfsutils; 가져오기 org.apache.hadoop.conf.Configuration; 가져오기 Org.apache.hadoop.fs.FileStatus; 가져오기 Org.junit.Before; 가져오기 Org.junit.Test; 가져오기 Javax.ws.rs.core.Context; 가져오기 java.io.IOException; 가져오기 java.util.List; / * * * LWS 2017/8/7에 만든. */공용 클래스 Myhdfstest {개인 Hdfsutils hdfsutils = 새로운 Hdfsutils (); 개인 구성 conf = 새로운 구성 (); @Before 공용 void beforebegining () {Conf.set ("Fs.defaultfs", "hdfs://xxx:9000 /"); / XXX 여기 당신의 IP 주소, 192.168.12.8 등} @ 테스트 공용 void Test_file2hdfs () ioexception{Hdfsutils.file2hdfs를 throw (회의 "D:\\bugreport.txt", "/ MYUSER2/1"); 테스트 공용 void Test_deleteformhdfs () ioexception{Hdfsutils.deleteformhdfs를 throw (회의 "/ myuser/bugreport.txt"); 테스트 공용 void Test_isexit ()는 ioexception을 throw {부울 Hdfsutils.isexit = (회의 "/ myuser/bugreport.txt"); System.out.print (은); @Test 공용 void Test_file2local () ioexception{hdfsutils.file2loacl를 throw (conf,/myuser/bugreport.txt, d: / / 테스트 "); } @Test 공용 void Test_mkhdfsdir ()는 ioexception을 throw {부울는 Hdfsutils.mkhdfsdir = (회의 "/" myuser/liming); System.out.print (a); @Test 공용 void Test_lshdfsdir ()는 ioexception을 throw {목록 Hdfsutils.lshdfsdir = (회의 "/ myuser2"); : 목록) {SYSTEM.OUT.PRIntln (파일); } } }