[빅데이터 개발 기술] 실험 03 - 하둡 파일 읽기

Hadoop은 파일을 읽습니다.

1. 실험 목표

  1. Hadoop 운영 지침 및 HDFS 명령줄 인터페이스에 능숙함
  2. 마스터 HDFS 원칙
  3. HDFS의 API 사용법을 마스터하세요
  4. URL 클래스를 통해 HDFS의 파일 내용을 읽는 방법을 마스터하세요.
  5. FileSystem이 HDFS에서 파일 내용을 읽는 방법을 마스터하세요.

2. 실험적 요구사항

  1. 각 실험 작업 단계의 성공적인 결과에 대한 스크린샷을 제공하세요.
  2. 이 실험 작업에 대한 포괄적인 요약을 제공하십시오.
  3. 실험 내용이 완료되면 실험 보고서 파일의 이름이 학생 ID 이름 실험 3으로 변경됩니다.

3. 실험적인 내용

  1. FileSystem 클래스를 사용하여 HDFS에서 파일을 읽고, 파일 내용을 표준 출력 스트림으로 인쇄하고, 로컬과 클러스터에서 각각 테스트합니다. 자세한 구현 프로세스, 전체 코드 및 구현 효과에 대한 스크린샷이 제공됩니다. 최종 렌더링은 그림 1과 그림 2를 참조하세요. (로컬에서 새 파일을 생성해야 합니다. 파일 이름이나 파일 내용은 귀하의 이름을 반영해야 합니다. 파일 내용은 중국어와 영어로 준비할 수 있습니다. 쉘 명령을 사용하여 HDFS에 업로드합니다.) 그림 1 로컬 테스트 효과 파일을 읽는 FileSystem 그림 2
    1
    파일 시스템
    2
    읽기 Fetch 파일 클러스터 테스트 렌더링

  2. URL 클래스를 통해 HDFS의 파일 내용을 읽고 주요 구현 과정, 전체 코드 및 구현 효과 스크린샷을 제공합니다.최종 렌더링은 그림 3과 그림 4를 참조하세요. (로컬에서 새 파일을 생성해야 합니다. 파일 이름이나 파일 내용은 본인의 이름을 반영해야 합니다. 파일 내용은 직접 준비해야 합니다. 중국어, 영어 모두 사용할 수 있습니다. 쉘 명령을 사용하여 HDFS에 업로드합니다.) 그림 3 URL 읽기 파일의 로컬 테스트 효과 그림 4
    5
    URL
    6
    읽기 파일 클러스터 테스트 렌더링

  3. FileSystem 클래스를 사용하면 HDFS에서 여러 파일을 읽고, 파일 내용을 표준 출력 스트림으로 인쇄하고, 주요 구현 프로세스, 전체 코드 및 구현 효과에 대한 스크린샷을 제공할 수 있습니다. 구현 효과의 스크린샷은 그림 5를 참조하세요(그림 5는 cs.txt 및 cslg.txt 두 파일의 내용을 읽는 테스트 효과의 스크린샷입니다). 로컬에서 새 파일 2개를 생성해야 합니다. 파일 중 두 개는 학번과 이름으로 지정됩니다. 파일 내용은 개인 프로필과 고향 정보입니다. 파일 내용은 중국어와 영어 모두 가능합니다. 쉘 명령을 사용하여 HDFS에 업로드합니다. .
    9
    그림 5 여러 파일의 내용을 읽는 FileSystem 메서드

  4. URL 클래스를 통해 HDFS에 있는 여러 파일의 내용을 읽고 주요 구현 프로세스, 전체 코드 및 구현 효과 스크린샷을 제공하며 최종 렌더링은 그림 6에 나와 있습니다. 이전 실험에서 사용된 두 개의 텍스트 파일을 이용하여 두 개의 새로운 텍스트 파일을 생성할 수도 있으며 파일 이름은 이전 실험과 동일하며 파일 내용은 사용자 정의됩니다.
    12
    그림 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();
                }
            }
        }
        
    }

}

실험 스크린샷

삼
4

실험 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);
          }
    }
}


실험 스크린샷

7
8
실험 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();
                }
            }
        }
		}
    }

}

실험 스크린샷

10
11
실험 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);
          }
		}
	}

}

실험 스크린샷

13
14

첨부: 일련의 기사

실험 기사 디렉토리 직접 링크
실험 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

추천

출처blog.csdn.net/m0_68111267/article/details/132912077