Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang diedarkan di Jawa?

Bagaimana untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang diedarkan di Jawa?

王林
王林asal
2023-08-11 13:16:45806semak imbas

Bagaimana untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang diedarkan di Jawa?

Bagaimana untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang diedarkan di Jawa?

Dengan perkembangan pesat Internet dan peningkatan jumlah maklumat, permintaan untuk pengiraan dan pemprosesan data besar juga semakin meningkat. Pengkomputeran teragih dan pemprosesan teragih telah menjadi cara yang berkesan untuk menyelesaikan masalah pengkomputeran dan pemprosesan berskala besar. Di Java, kita boleh menggunakan beberapa rangka kerja sumber terbuka untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang Artikel ini akan memperkenalkan kaedah pelaksanaan berdasarkan Apache Hadoop dan Spring Boot.

  1. Pengenalan kepada Apache Hadoop:
    Apache Hadoop ialah rangka kerja pengkomputeran teragih berskala sumber terbuka yang mampu memproses set data berskala besar. Ia menggunakan sistem fail teragih (HDFS) untuk menyimpan data dan mengedarkan pengkomputeran melalui model pengaturcaraan MapReduce. Di Jawa, kita boleh menggunakan rangka kerja Hadoop MapReduce untuk menulis tugas pengkomputeran teragih.
  2. Pengenalan kepada Spring Boot:
    Spring Boot ialah rangka kerja untuk mencipta kendiri, aplikasi Spring gred pengeluaran yang memudahkan konfigurasi dan penggunaan aplikasi Spring. Di Java, kita boleh menggunakan Spring Boot untuk membina sistem penjadualan dan pengurusan untuk tugas pemprosesan yang diedarkan.

Berikut akan memperkenalkan langkah-langkah cara menggunakan Apache Hadoop dan Spring Boot untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang teragih.

Langkah 1: Bina kluster Hadoop
Pertama, kita perlu membina kluster Hadoop untuk pengkomputeran dan pemprosesan teragih. Anda boleh merujuk kepada dokumentasi rasmi Hadoop atau tutorial dalam talian untuk membina kluster. Secara umumnya, kluster Hadoop memerlukan sekurang-kurangnya tiga pelayan, satu daripadanya berfungsi sebagai NameNode (nod induk) dan selebihnya sebagai DataNode (nod hamba). Pastikan kluster berfungsi dengan baik.

Langkah 2: Tulis tugas MapReduce
Buat projek Java dan import perpustakaan pergantungan Hadoop. Kemudian tulis tugas MapReduce untuk memproses data borang. Contoh kod khusus adalah seperti berikut:

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;

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

public class WordCount {

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

    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    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, one);
      }
    }
  }

  public static class IntSumReducer
       extends Reducer<Text,IntWritable,Text,IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values,
                       Context context
                       ) throws IOException, InterruptedException {
      int sum = 0;
      for (IntWritable val : values) {
        sum += val.get();
      }
      result.set(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(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

Langkah 3: Tulis aplikasi Spring Boot
Seterusnya, kami menggunakan Spring Boot untuk menulis aplikasi untuk menjadualkan dan mengurus tugas pemprosesan yang diedarkan. Buat projek Spring Boot baharu dan tambahkan kebergantungan Hadoop. Kemudian tulis penjadual dan pengurus untuk menyerahkan dan memantau tugas pemprosesan yang diedarkan, dan memproses hasil tugasan. Contoh kod khusus adalah seperti berikut:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.Job;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.io.IOException;

@SpringBootApplication
public class Application implements CommandLineRunner {

  // Hadoop配置文件路径
  private static final String HADOOP_CONF_PATH = "/path/to/hadoop/conf";

  // 输入文件路径
  private static final String INPUT_PATH = "/path/to/input/file";

  // 输出文件路径
  private static final String OUTPUT_PATH = "/path/to/output/file";

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

  @Override
  public void run(String... args) throws Exception {
    // 创建Hadoop配置对象
    Configuration configuration = new Configuration();
    configuration.addResource(new Path(HADOOP_CONF_PATH + "/core-site.xml"));
    configuration.addResource(new Path(HADOOP_CONF_PATH + "/hdfs-site.xml"));
    configuration.addResource(new Path(HADOOP_CONF_PATH + "/mapred-site.xml"));

    // 创建HDFS文件系统对象
    FileSystem fs = FileSystem.get(configuration);

    // 创建Job对象
    Job job = Job.getInstance(configuration, "WordCount");

    // 设置任务的类路径
    job.setJarByClass(Application.class);

    // 设置输入和输出文件路径
    FileInputFormat.addInputPath(job, new Path(INPUT_PATH));
    FileOutputFormat.setOutputPath(job, new Path(OUTPUT_PATH));

    // 提交任务
    job.waitForCompletion(true);

    // 处理任务的结果
    if (job.isSuccessful()) {
      // 输出处理结果
      System.out.println("Job completed successfully.");
      // 读取输出文件内容
      // ...
    } else {
      // 输出处理失败信息
      System.out.println("Job failed.");
    }
  }
}

Langkah 4: Jalankan kod
Selepas mengkonfigurasi fail konfigurasi berkaitan Hadoop dan Spring Boot dengan betul, anda boleh memulakan aplikasi Spring Boot dan memerhatikan pelaksanaan tugas. Jika semuanya berjalan lancar, anda sepatutnya dapat melihat hasil pelaksanaan tugas pengkomputeran yang diedarkan.

Melalui langkah di atas, kami berjaya melaksanakan pengkomputeran teragih dan pemprosesan data borang yang diedarkan menggunakan Apache Hadoop dan Spring Boot. Kod boleh dilaraskan dan dioptimumkan mengikut keperluan sebenar untuk menyesuaikan diri dengan senario aplikasi yang berbeza. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengkomputeran teragih dan pemprosesan data borang diedarkan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn