반응형
일일이 파일을 HDFS에 올리는 작업을 할 수 없어서 JAVA코드로 지정해 놓은 경로에 파일이 있는 경우에 파일을 HDFS에 복사하는 코드를 작성해 보았습니다.
- 개발환경
- JDK 1.8
- hadoop-common-2.10.0.jar (글 작성 기준 최신버전)
- Spring Boot 2.1.8
Spring Boot POM.xml
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.10.0</version>
<exclusions>
<exclusion>
<artifactId>jdk.tools</artifactId>
<groupId>jdk.tools</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.10.0</version>
</dependency>
// 로컬 파일 파일 시스템에 복사
public void fileCopy() throws IOException {
// hdfs://hadoop설치IP:hadoop설정포트 --> namenode 경로
String rootPath = "hdfs://127.0.0.1:9000";
// 리눅스에 하둡 설치 당시 유저명(권한 문제)
String username = "dslcom";
// 하둡 namenode 경로 설정
Path p = new Path(rootPath);
// hadoop-common maven 참조
Configuration conf = new Configuration();
// 하둡을 연결할 유저명(권한 문제)
System.setProperty("HADOOP_USER_NAME", username);
// hadoop-common maven 참조
FileSystem fileSystem = p.getFileSystem(conf);
// 첫번째 Path : 로컬(복사하고 싶은 파일(대소문자 상관없음)), 두번째 Path : 파일 시스템(복사할 위치 및 파일 명(파일명 지정 안하면 복사한 파일 명으로 저장됨))
fileSystem.copyFromLocalFile(new Path("D://folder/hdfstest.csv"), new Path(rootPath + "/test/hdfs"));
}
반응형
'Programming > JAVA' 카테고리의 다른 글
[JAVA] Spring Boot(스프링 부트) - Security(시큐리티) 설정 (0) | 2022.12.24 |
---|---|
[JAVA] 정규 표현식 (regex) (0) | 2021.12.12 |
[JAVA] 파일 이동 및 파일명 변경 - FileUtils (0) | 2021.12.07 |
[JAVA] 파일 이동 및 파일명 변경 - renameTo (0) | 2021.12.06 |
[JAVA] 배열을 2차원 배열로 만드는 법 기존 테이블에서 새로운 테이블로 변환 (0) | 2020.04.24 |
댓글