Hadoop 하둡 데이터 분석 및 처리 패턴
Data Analyst

빅데이터 관련 자료

Hadoop 하둡 데이터 분석 및 처리 패턴

carpe08 2023. 12. 7. 13:07
320x100
320x100

하둡은 대용량 데이터를 처리하기 위한 강력한 프레임워크로, 다양한 데이터 분석 및 처리 패턴을 제공합니다. 이를 이해하기 위해서는 맵리듀스를 활용한 데이터 분석 예제와 다양한 데이터 처리 기술에 대한 이해가 필요합니다.

 

1. 맵리듀스를 활용한 데이터 분석 예제와 코드 샘플

맵리듀스는 하둡에서 데이터를 처리하는 핵심적인 프로그래밍 모델입니다. 데이터를 맵(Map) 단계와 리듀스(Reduce) 단계로 나누어 병렬 처리하고 결과를 생성합니다.

예제:

Word Count:

이 예제는 문서 내 단어의 빈도를 세는 것으로, 각 단어를 키(key)로, 해당 단어의 등장 횟수를 값(value)으로 하는 맵리듀스 작업을 수행합니다.

public class WordMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        String[] words = value.toString().split("\\s+"); // 공백으로 단어 분리
        for (String w : words) {
            word.set(w);
            context.write(word, one); // <단어, 1> 형태로 출력
        }
    }
}

public class WordReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        context.write(key, new IntWritable(sum)); // <단어, 빈도수> 형태로 출력
    }
}

 

2. 다양한 데이터 처리 및 분석 기술에 대한 설명과 튜토리얼

Hive:

설명: Hive는 SQL 스타일의 쿼리 언어(HiveQL)를 사용하여 데이터를 처리하는데 특화된 하둡 에코시스템 도구입니다.

튜토리얼

1. 테이블 생성

CREATE TABLE IF NOT EXISTS employees (
    id INT,
    name STRING,
    department STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

2. 데이터 삽입

LOAD DATA INPATH '/input/employees.csv' OVERWRITE INTO TABLE employees;

3. 데이터 조회

SELECT * FROM employees WHERE department = 'IT';

 

3. 데이터 분석 및 처리 튜토리얼

Pig:

설명: Pig는 스크립트 언어인 Pig Latin을 사용하여 데이터를 처리하는 도구입니다.

튜토리얼

1. 데이터 읽기

더보기

data = LOAD '/input/data.txt' USING PigStorage(',') AS (id:int, name:chararray, age:int);

2. 데이터 처리

더보기

filtered_data = FILTER data BY age > 25;

3. 데이터 저장

더보기

STORE filtered_data INTO '/output/filtered_data' USING PigStorage(',');

 

320x100
320x100