>  기사  >  Java  >  실제 응용을 위한 Java 기초 소개: 빅 데이터의 실제 분석

실제 응용을 위한 Java 기초 소개: 빅 데이터의 실제 분석

WBOY
WBOY원래의
2024-05-07 16:33:01475검색

이 튜토리얼은 Java 기초부터 실제 응용까지 빅데이터 분석 기술을 익히는 데 도움이 됩니다. Java 기본 사항(변수, 제어 흐름, 클래스 등), 빅 데이터 도구(Hadoop 생태계, Spark, Hive) 및 실제 사례(OpenFlights에서 비행 데이터 가져오기)가 포함됩니다. Hadoop을 사용하여 데이터를 읽고 처리하며 항공편 목적지에 대해 가장 빈번한 공항을 분석합니다. Spark를 사용하여 목적지까지의 최신 항공편을 드릴다운하고 찾으세요. Hive를 사용하여 데이터를 대화형으로 분석하고 각 공항의 항공편 수를 계산합니다.

실제 응용을 위한 Java 기초 소개: 빅 데이터의 실제 분석

Java 기초에서 실무까지: 빅 데이터 실무 분석

소개

빅 데이터 시대가 도래하면서 빅 데이터 분석 기술을 익히는 것이 중요해졌습니다. 이 튜토리얼에서는 Java의 기초부터 실용적인 빅 데이터 분석을 위해 Java를 사용하는 방법까지 안내합니다.

Java 기초

  • 변수, 데이터 유형 및 연산자
  • 제어 흐름(if-else, for, while)
  • 클래스, 객체 및 메소드
  • 배열 및 컬렉션(목록, 맵, 세트)

빅 데이터 분석 도구

  • Hadoop 생태계(Hadoop, MapReduce, HDFS)
  • Spark
  • Hive

실제 사례: Java를 사용하여 비행 데이터 분석

1단계: 데이터 가져오기

항공편 다운로드 OpenFlights 데이터세트의 데이터입니다.

2단계: Hadoop을 사용하여 데이터를 읽고 씁니다.

Hadoop 및 MapReduce를 사용하여 데이터를 읽고 처리합니다.

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
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;

public class FlightStats {

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

        job.setMapperClass(FlightStatsMapper.class);
        job.setReducerClass(FlightStatsReducer.class);

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

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

        job.waitForCompletion(true);
    }

    public static class FlightStatsMapper extends Mapper<Object, Text, Text, IntWritable> {
        @Override
        public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
            String[] line = value.toString().split(",");
            context.write(new Text(line[1]), new IntWritable(1));
        }
    }

    public static class FlightStatsReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
        @Override
        public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (IntWritable value : values) {
                sum += value.get();
            }
            context.write(key, new IntWritable(sum));
        }
    }
}

3단계: 추가 분석을 위해 Spark 사용

Spark DataFrame 및 SQL 쿼리를 사용하여 데이터를 분석합니다.

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

public class FlightStatsSpark {

    public static void main(String[] args) {
        SparkSession spark = SparkSession.builder().appName("Flight Stats Spark").getOrCreate();

        Dataset<Row> flights = spark.read().csv("hdfs:///path/to/flights.csv");

        flights.createOrReplaceTempView("flights");

        Dataset<Row> top10Airports = spark.sql("SELECT origin, COUNT(*) AS count FROM flights GROUP BY origin ORDER BY count DESC LIMIT 10");

        top10Airports.show(10);
    }
}

4단계: Hive 대화형 쿼리 사용

Hive 대화형 쿼리를 사용하여 데이터를 분석합니다.

CREATE TABLE flights (origin STRING, dest STRING, carrier STRING, dep_date STRING, dep_time STRING, arr_date STRING, arr_time STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

LOAD DATA INPATH 'hdfs:///path/to/flights.csv' OVERWRITE INTO TABLE flights;

SELECT origin, COUNT(*) AS count FROM flights GROUP BY origin ORDER BY count DESC LIMIT 10;

결론

이 튜토리얼을 통해 Java의 기본 사항과 실용적인 빅데이터 분석을 위해 Java를 사용하는 기술을 마스터했습니다. Hadoop, Spark 및 Hive를 이해하면 대규모 데이터 세트를 효율적으로 분석하고 그로부터 귀중한 통찰력을 추출할 수 있습니다.

위 내용은 실제 응용을 위한 Java 기초 소개: 빅 데이터의 실제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.