Hadoop은 파일을 읽습니다.
1. 실험 목표
- Hadoop 운영 지침 및 HDFS 명령줄 인터페이스에 능숙함
- 마스터 HDFS 원칙
- HDFS의 API 사용법을 마스터하세요
- URL 클래스를 통해 HDFS의 파일 내용을 읽는 방법을 마스터하세요.
- FileSystem이 HDFS에서 파일 내용을 읽는 방법을 마스터하세요.
2. 실험적 요구사항
- 각 실험 작업 단계의 성공적인 결과에 대한 스크린샷을 제공하세요.
- 이 실험 작업에 대한 포괄적인 요약을 제공하십시오.
- 실험 내용이 완료되면 실험 보고서 파일의 이름이 학생 ID 이름 실험 3으로 변경됩니다.
3. 실험적인 내용
-
FileSystem 클래스를 사용하여 HDFS에서 파일을 읽고, 파일 내용을 표준 출력 스트림으로 인쇄하고, 로컬과 클러스터에서 각각 테스트합니다. 자세한 구현 프로세스, 전체 코드 및 구현 효과에 대한 스크린샷이 제공됩니다. 최종 렌더링은 그림 1과 그림 2를 참조하세요. (로컬에서 새 파일을 생성해야 합니다. 파일 이름이나 파일 내용은 귀하의 이름을 반영해야 합니다. 파일 내용은 중국어와 영어로 준비할 수 있습니다. 쉘 명령을 사용하여 HDFS에 업로드합니다.) 그림 1 로컬 테스트 효과 파일을 읽는 FileSystem 그림 2
파일 시스템
읽기 Fetch 파일 클러스터 테스트 렌더링 -
URL 클래스를 통해 HDFS의 파일 내용을 읽고 주요 구현 과정, 전체 코드 및 구현 효과 스크린샷을 제공합니다.최종 렌더링은 그림 3과 그림 4를 참조하세요. (로컬에서 새 파일을 생성해야 합니다. 파일 이름이나 파일 내용은 본인의 이름을 반영해야 합니다. 파일 내용은 직접 준비해야 합니다. 중국어, 영어 모두 사용할 수 있습니다. 쉘 명령을 사용하여 HDFS에 업로드합니다.) 그림 3 URL 읽기 파일의 로컬 테스트 효과 그림 4
URL
읽기 파일 클러스터 테스트 렌더링 -
FileSystem 클래스를 사용하면 HDFS에서 여러 파일을 읽고, 파일 내용을 표준 출력 스트림으로 인쇄하고, 주요 구현 프로세스, 전체 코드 및 구현 효과에 대한 스크린샷을 제공할 수 있습니다. 구현 효과의 스크린샷은 그림 5를 참조하세요(그림 5는 cs.txt 및 cslg.txt 두 파일의 내용을 읽는 테스트 효과의 스크린샷입니다). 로컬에서 새 파일 2개를 생성해야 합니다. 파일 중 두 개는 학번과 이름으로 지정됩니다. 파일 내용은 개인 프로필과 고향 정보입니다. 파일 내용은 중국어와 영어 모두 가능합니다. 쉘 명령을 사용하여 HDFS에 업로드합니다. .
그림 5 여러 파일의 내용을 읽는 FileSystem 메서드 -
URL 클래스를 통해 HDFS에 있는 여러 파일의 내용을 읽고 주요 구현 프로세스, 전체 코드 및 구현 효과 스크린샷을 제공하며 최종 렌더링은 그림 6에 나와 있습니다. 이전 실험에서 사용된 두 개의 텍스트 파일을 이용하여 두 개의 새로운 텍스트 파일을 생성할 수도 있으며 파일 이름은 이전 실험과 동일하며 파일 내용은 사용자 정의됩니다.
그림 6 URL을 사용하여 여러 파일 내용 읽기
4. 실험 단계
실험 1
실험 코드
package com.wjw.hadoop;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileSystemCat01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String uri = "hdfs://master:9000/wjw01.txt";
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://master:9000");
FileSystem fs = null;
FSDataInputStream in =null;
try{
fs = FileSystem.get(conf);
in = fs.open(new Path(uri));
IOUtils.copyBytes(in, System.out, 4096, false);
}catch(IOException e){
e.printStackTrace();
}finally{
if(in != null){
try{
fs.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
}
실험 스크린샷
실험 2
실험 코드
package com.wjw.hadoop;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
public class FileCat01 {
static{
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String arg = "hdfs://master:9000/wjw02.txt";
InputStream in = null;
try{
in = new URL(arg).openStream();
IOUtils.copyBytes(in, System.out, 2048, false);
}catch(IOException e){
e.printStackTrace();
}finally{
IOUtils.closeStream(in);
}
}
}
실험 스크린샷
실험 3
실험 코드
package com.wjw.hadoop;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class FileSystemCat02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
args = new String[2];
args[0] = "hdfs://master:9000/wjw03.txt";
args[1] = "hdfs://master:9000/wjw04.txt";
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://master:9000");
for(int i=0; i < args.length; i++){
FileSystem fs = null;
FSDataInputStream in =null;
try{
fs = FileSystem.get(conf);
in = fs.open(new Path(args[i]));
IOUtils.copyBytes(in, System.out, 4096, false);
}catch(IOException e){
e.printStackTrace();
}finally{
if(in != null){
try{
fs.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
}
}
실험 스크린샷
실험 4
실험 코드
package com.wjw.hadoop;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
public class FileCat02 {
static{
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
args = new String[2];
args[0] = "hdfs://master:9000/wjw03.txt";
args[1] = "hdfs://master:9000/wjw04.txt";
for(int i=0; i < args.length; i++){
InputStream in = null;
try{
in = new URL(args[i]).openStream();
IOUtils.copyBytes(in, System.out, 2048, false);
}catch(IOException e){
e.printStackTrace();
}finally{
IOUtils.closeStream(in);
}
}
}
}
실험 스크린샷
첨부: 일련의 기사
실험 | 기사 디렉토리 | 직접 링크 |
---|---|---|
실험 01 | Hadoop 설치 및 배포 | https://want595.blog.csdn.net/article/details/132767284 |
실험 02 | HDFS 일반 셸 명령 | https://want595.blog.csdn.net/article/details/132863345 |
실험 03 | Hadoop은 파일을 읽습니다. | https://want595.blog.csdn.net/article/details/132912077 |
실험 04 | HDFS 파일 생성 및 쓰기 | https://want595.blog.csdn.net/article/details/133168180 |
실험 05 | HDFS 디렉터리 및 파일 생성, 삭제 및 쿼리 | https://want595.blog.csdn.net/article/details/133168734 |