Developersland

Teknoloji ve Yazılım Blogu

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır

Hadoop Kurulumu ve Örnek Program

Hadoop kurulumlarını Hadoop Quick Start (http://hadoop.apache.org/common/docs/r0.20.2/quickstart.html) sayfasındaki adımları takip ederek yaptım.
Öncelikle Hadoop'un stable versiyonunu indiriyoruz. (http://ftp.itu.edu.tr/Mirror/Apache//hadoop/common/stable/hadoop-0.20.203.0rc1.tar.gz) sıkıştırılmış dosyaları çıkardıktan sonra conf dosyasının içerisindeki "hadoop-env.sh" isimli belgenin içerisinde JAVA_HOME isimli değişkene sistemimizde yüklü java yolunu belirtiyoruz.
Yukarıdaki işlemleri yaptıktan sonra Hadoop altyapısını kullanarak bir örnek yapabiliriz. Örneğimiz bir dosya içerisinde bulunan metin belgeleri içerisindeki kelimeleri sayan bir program olsun. Programı Netbeans 6.9 kullanarak yazdım. Bunun için öncelikle Netbeans'e "Karmasphere Studio For Hadoop" isimli plugin'i eklememiz gerekiyor. Plugini  (http://hadoopstudio.org/updates/updates.xml) adresini kullanarak ekleyebiliriz.
Daha sonra WordCount isimli sınıfımızın kodlarını yazıyoruz bu kodlar aşağıda gösterilmiştir.

     
     package wordcount;

     import java.io.IOException;
     import java.util.*;
     import org.apache.hadoop.fs.Path;
     import org.apache.hadoop.conf.*;
     import org.apache.hadoop.io.*;
     import org.apache.hadoop.mapred.*;
     import org.apache.hadoop.util.*;

     public class WordCount {

        public static class Map extends MapReduceBase implements Mapper
           {
          private final static IntWritable one = new IntWritable(1);
          private Text word = new Text();
          public void map(LongWritable key, Text value, OutputCollector output, Reporter reporter) throws IOException {
           String line = value.toString();
            StringTokenizer tokenizer = new StringTokenizer(line);
            while (tokenizer.hasMoreTokens())
               {
              word.set(tokenizer.nextToken());
              output.collect(word, one);
            }
          }
        }

        public static class Reduce extends MapReduceBase implements Reducer {
          public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException {
            int sum = 0;
            while (values.hasNext())
               {
              sum += values.next().get();
            }
            output.collect(key, new IntWritable(sum));
          }
        }

        public static void main(String[] args) throws Exception {
          JobConf conf = new JobConf(WordCount.class);
          conf.setJobName("wordcount");

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

          conf.setMapperClass(Map.class);
          conf.setCombinerClass(Reduce.class);
          conf.setReducerClass(Reduce.class);

          conf.setInputFormat(TextInputFormat.class);
          conf.setOutputFormat(TextOutputFormat.class);

          FileInputFormat.setInputPaths(conf, new Path(args[0]));
          FileOutputFormat.setOutputPath(conf, new Path(args[1]));

          JobClient.runJob(conf);
        }
     }



Kodumuzu "jar" uzantılı derlenmiş halini kullanacağımızdan Build Main Project diyerek WordCount.jar isimli dosyamızın oluşturulmasını sağlıyoruz. Daha sonra bu jar file'mızı hadoop dosyamızın altına kaydediyoruz.
Sırada komut ekranını kullanarak WordCount kodunu çalıştırmak var bunun için Hadoop klasörümüzün içerisinde input isimli bir dosya oluşturuyoruz ve bu dosyanın içerisine istediğimiz sayıda metin belgesi atıyoruz programımız bu metin belgelerinin içerisindeki kelimeleri sayacaktır. ve output isimli klasörün içerisinde bu bilgileri okuyabileceğimiz "part-00000" isimli bir belge oluşturacaktır. Komut satırından Hadoop dizinine girdikten sonra "bin/hadoop jar WordCount.jar input output"  komutunu çalıştırıyoruz ve output içerisindeki "part-00000" isimli belgeden sonuçları inceliyoruz.


hadoop kurulumu

Dosyamızın yukarıdakine benzer bir içeriğe sahip olacaktır.

 

Yorumlar  

 
0 #1 Kenan 12-07-2012 15:07
Selamlar,ben hbase veya hdfs kurmak istiyorum bunun için öncelikle hadoop'u kurmam gerekiyor mu yoksa hdbase veya hdfs kurdugum zaman hadoop kurulu geliyor mu?
Ve kurulumlar il ilgili önerebilecegini z döküman var mı?
Teşekürler
Alıntı
 

Yorum ekle


Güvenlik kodu
Yenile