Membuat dan Menjalankan Aplikasi Hadoop MapReduce dengan Intellij IDEA pada OS Windows
Pada artikel Cara Sederhana Install Hadoop 2 mode Standalone pada Windows 7 dan Windows 10 telah dibahas bagaimana menginstall Hadoop 2 mode standalone pada OS Windows 7 maupun Windows 10. Setelah Hadoop berhasil di-install, kali ini kita akan mencoba untuk membuat dan menjalankan sebuah contoh aplikasi MapReduce "WordCount" dengan menggunakan IDE Intellij IDEA pada OS Windows. Kebetulan versi OS yang digunakan adalah Windows 10.
Software yang diperlukan adalah sebagai berikut ( sudah harus terinstal dan berjalan normal ) :
- JDK 1.8; cara install ada di Cara Sederhana Install Hadoop 2 mode Standalone pada Windows 7 dan Windows 10
- Hadoop-2.7.7; cara install ada di Cara Sederhana Install Hadoop 2 mode Standalone pada Windows 7 dan Windows 10
Langkah-langkah menjalankan aplikasi Hadoop MapReduce dengan Intellij IDEA pada OS Windows
- Buat Maven Project dari menu File > New > Project > Maven ( silakan ikuti sesuai gambar, kemudian terakhir klik Finish ):
New Project > Maven > Next GroupId, ArtifacId, Version > Next Project Name, Project location > Finish - Muat Hadoop Library dari menu File > Project Structure > Modules > Dependencies > + > 1 JARs or directories…
Dependencies: semua sub-direktori pada hadoop Dependencies: sub-direktori lib dari direktori hadoop\common - Buat Java Package "wordcount" dengan klik kanan WordCount > src > main > java > New > Package
New Package > wordcount - Buat Java Class "WordCount.java" dengan klik kanan WordCount > src > main > java > wordcount > New > Java Class
New Class > WordCount - Buka WordCount.java, kemudian copy-paste source code WordCount.java dari GithubThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package wordcount; 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 final Text word = new Text(); @Override 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 final IntWritable result = new IntWritable(); @Override 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); } } - Edit konfigurasi untuk menjalankan program WordCount dari menu Run > Edit Configuration… > + > Application ( Ingat! buat direktori input, tapi JANGAN buat direktori output. Kemudian taruh sembarang text file direktori input )
Run Configuration - Jalankan aplikasi dari menu Run > Run 'WordCount' ( Hasilnya adalah seperti gambar )
Hasil WordCount
Demikian, Selamat Mencoba !
Komentar
Posting Komentar