[java] 자바를 사용한 아파치 하둡 데이터 분석 예제

아파치 하둡(Hadoop)은 대용량 데이터를 분산 처리하기 위한 오픈 소스 소프트웨어 프레임워크입니다. 자바를 사용해서 아파치 하둡을 활용하여 데이터를 분석하는 예제를 알아보겠습니다.

1. 환경 설정

먼저, 아파치 하둡을 설치하고 환경을 설정해야 합니다. 아파치 하둡의 설치 및 환경 설정에 대한 자세한 내용은 아파치 하둡 공식 문서를 참고하세요.

2. 데이터 분석 예제

다음은 자바를 사용하여 아파치 하둡에서 데이터를 읽고 분석하는 예제입니다.

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;
import java.util.StringTokenizer;

public class WordCount {

    public static class TokenizerMapper extends Mapper<Object, Text, Text, Text> {

        private final static Text word = new Text();
        private final static Text count = new Text("1");

        public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
            StringTokenizer itr = new StringTokenizer(value.toString());
            while (itr.hasMoreTokens()) {
                word.set(itr.nextToken());
                context.write(word, count);
            }
        }
    }

    public static class SumReducer extends Reducer<Text, Text, Text, Text> {

        private final static Text result = new Text();

        public void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (Text val : values) {
                sum += Integer.parseInt(val.toString());
            }
            result.set(String.valueOf(sum));
            context.write(key, result);
        }
    }

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "word count");
        job.setJarByClass(WordCount.class);

        job.setMapperClass(TokenizerMapper.class);
        job.setCombinerClass(SumReducer.class);
        job.setReducerClass(SumReducer.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(Text.class);

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

위 예제는 WordCount라는 프로그램으로, 입력 파일에 있는 각 단어의 등장 횟수를 계산하여 출력하는 역할을 합니다. 예제를 실행하기 위해서는 Hadoop 환경이 미리 구성되어 있어야 합니다.

3. 실행 결과

위 예제를 실행하면 아파치 하둡 클러스터에서 입력 파일을 읽고, 각 단어의 등장 횟수를 계산한 뒤 결과를 출력합니다. 출력 결과는 다른 파일로 저장되며, 분석 결과를 활용하여 다양한 작업을 수행할 수 있습니다.

4. 결론

자바를 사용하여 아파치 하둡 데이터를 분석하는 예제를 살펴보았습니다. 아파치 하둡은 대용량 데이터 처리에 효율적이며, 다양한 분석 및 작업을 지원합니다. 자세한 내용은 아파치 하둡 공식 문서를 참고하세요.