Rumah > Java > javaTutorial > teks badan

Pembangunan Java: Cara mengendalikan pengkomputeran teragih bagi data berskala besar

PHPz
Lepaskan: 2023-09-21 14:55:44
asal
580 orang telah melayarinya

Pembangunan Java: Cara mengendalikan pengkomputeran teragih bagi data berskala besar

Pembangunan Java: Cara memproses pengkomputeran teragih bagi data berskala besar, contoh kod khusus diperlukan

Dengan kemunculan era data besar, permintaan untuk memproses data berskala besar juga semakin meningkat. Dalam persekitaran pengkomputeran bersendirian tradisional, sukar untuk memenuhi permintaan ini. Oleh itu, pengkomputeran teragih telah menjadi cara penting untuk memproses data besar Java, sebagai bahasa pengaturcaraan yang popular, memainkan peranan penting dalam pengkomputeran teragih.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan Java untuk pengkomputeran teragih data berskala besar dan memberikan contoh kod khusus. Pertama, kita perlu membina persekitaran pengkomputeran teragih berdasarkan Hadoop. Kemudian, kami akan menunjukkan cara mengendalikan pengkomputeran teragih data berskala besar melalui contoh WordCount yang mudah.

  1. Membina persekitaran pengkomputeran teragih (berdasarkan Hadoop)

Untuk melaksanakan pengkomputeran teragih, anda perlu membina persekitaran pengkomputeran teragih terlebih dahulu. Di sini kami memilih untuk menggunakan Hadoop, rangka kerja pengkomputeran teragih sumber terbuka yang digunakan secara meluas.

Pertama, kita perlu memuat turun dan memasang Hadoop. Versi keluaran terkini boleh didapati daripada laman web rasmi Hadoop (https://hadoop.apache.org/). Selepas memuat turun, ikut arahan dalam dokumentasi rasmi untuk memasang dan mengkonfigurasi.

Selepas pemasangan selesai, kita perlu memulakan kluster Hadoop. Buka terminal baris arahan, tukar ke direktori sbin bagi direktori pemasangan Hadoop, dan laksanakan arahan berikut untuk memulakan kluster Hadoop:

./start-dfs.sh   // 启动HDFS
./start-yarn.sh   // 启动YARN
Salin selepas log masuk

Selepas permulaan selesai, anda boleh melihat status kluster Hadoop dengan melawati http:// localhost:50070 dan http://localhost: 8088 untuk mengakses pengurus sumber YARN.

  1. Contoh: Pengkomputeran teragih WordCount

WordCount ialah program contoh klasik yang digunakan untuk mengira bilangan kejadian setiap perkataan dalam teks. Di bawah ini kami akan menggunakan Java untuk melakukan pengiraan diedarkan WordCount.

Mula-mula, buat projek Java dan perkenalkan pakej balang Hadoop.

Buat kelas WordCount dalam projek dan tulis pelaksanaan Map dan Reduce di dalamnya.

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

public class WordCount {

  public static class WordCountMapper 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 {
      String[] words = value.toString().split(" ");
      for (String word : words) {
        this.word.set(word);
        context.write(this.word, one);
      }
    }
  }

  public static class WordCountReducer 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(WordCountMapper.class);
    job.setCombinerClass(WordCountReducer.class);
    job.setReducerClass(WordCountReducer.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);
  }
}
Salin selepas log masuk

Seterusnya, kita perlu menyediakan data input. Buat direktori input pada kelompok Hadoop dan letakkan fail teks yang memerlukan statistik ke dalam direktori.

Akhirnya, kami boleh menyerahkan tugas WordCount untuk dijalankan pada kelompok Hadoop menggunakan arahan berikut:

hadoop jar WordCount.jar WordCount <input-directory> <output-directory>
Salin selepas log masuk

Ganti dan

Selepas operasi selesai, kami boleh melihat fail hasil dalam direktori output, yang mengandungi setiap perkataan dan bilangan kejadian yang sepadan.

Artikel ini memperkenalkan langkah asas untuk pengkomputeran teragih data berskala besar menggunakan Java dan menyediakan contoh WordCount khusus. Diharapkan pembaca dapat lebih memahami dan mengaplikasikan teknologi pengkomputeran teragih melalui pengenalan dan contoh artikel ini, supaya dapat memproses data berskala besar dengan lebih cekap.

Atas ialah kandungan terperinci Pembangunan Java: Cara mengendalikan pengkomputeran teragih bagi data berskala besar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!