HDInsight MapReduce a dahil olan örneklerde çalıştırma

HDInsight üzerinde Apache Hadoop'a dahil olan MapReduce çalıştırmayı öğrenin.

Önkoşullar

Örnek MapReduce örnekler

Örnekler, 'de HDInsight kümesinde /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar bulunur. Bu örneklerin kaynak kodu, 'de HDInsight kümesine dahil /usr/hdp/current/hadoop-client/src/hadoop-mapreduce-project/hadoop-mapreduce-examples edilir.

Aşağıdaki örnekler bu arşivde yer alan örneklerdir:

Örnek Açıklama
aggregatewordcount Giriş dosyalarında sözcükleri sayar.
aggregatewordhist Giriş dosyalarında sözcüklerin histogramını hesaplar.
Bbp Pi'nin tam basamaklarını hesaplamak için Bailey-Borwein-Uffe kullanır.
dbcount Veritabanında depolanan sayfa görünümü günlüklerini sayar.
distbbp Pi'nin tam bitlerini hesaplamak için BBP türünde bir formül kullanır.
grep Girişte bir regex'in eşleşmelerini sayar.
join Sıralanmış, eşit olarak bölümlenmiş veri kümeleri üzerinde birleştirme gerçekleştirir.
multifilewc Birkaç dosyanın sözcüklerini sayar.
pentomino Pentomino sorunlarının çözümlerini bulmak için kutucuk döşeme programı.
Pi Quasi-Monte Carlo yöntemini kullanarak Pi tahminleri.
randomtextwriter Düğüm başına 10 GB rastgele metinsel veri yazar.
randomwriter Düğüm başına 10 GB rastgele veri yazar.
secondarysort Azaltma aşamasına ikincil bir sıralama tanımlar.
sort Rastgele yazar tarafından yazılan verileri sıralar.
Sudoku Sudoku çözücü.
teragen zamanort için veri oluşturma.
her zaman için aşağıdakini çalıştırın.
teravalidate sonuçları denetlendi.
wordcount Giriş dosyalarında sözcükleri sayar.
wordmean Giriş dosyalarında sözcüklerin ortalama uzunluğunu sayar.
wordmedian Giriş dosyalarında sözcüklerin orta boy uzunluğunu sayar.
wordstandarddeviation Giriş dosyalarında sözcüklerin uzunluğunun standart sapmasını sayar.

wordcount örneğini çalıştırma

  1. Bağlan hdInsight'a SSH kullanarak. yerine CLUSTER kümenizin adını yazın ve aşağıdaki komutu girin:

    ssh sshuser@CLUSTER-ssh.azurehdinsight.net
    
  2. SSH oturumunda aşağıdaki komutu kullanarak örnekleri listelenin:

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar
    

    Bu komut, bu belgenin önceki bölümünde yer alan örnek listesini üretir.

  3. Belirli bir örnekle ilgili yardım almak için aşağıdaki komutu kullanın. Bu örnekte, wordcount örneği:

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar wordcount
    

    Aşağıdaki iletiyi alırsınız:

    Usage: wordcount <in> [<in>...] <out>
    

    Bu ileti, kaynak belgeler için çeşitli giriş yolları sağlayabilirsiniz. Son yol, çıkışın (kaynak belgelerde sözcük sayısı) depolandığı yoldur.

  4. Kümeniz ile örnek veri olarak sağlanan Notebooks of The Notebooks of Aşağıdakini kullanın:

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar wordcount /example/data/gutenberg/davinci.txt /example/data/davinciwordcount
    

    Bu iş için giriş, 'den /example/data/gutenberg/davinci.txt okunur. Bu örneğin çıktısı içinde /example/data/davinciwordcount depolanır. Her iki yol da yerel dosya sisteminde değil küme için varsayılan depolamada bulunur.

    Not

    Wordcount örneği için yardımda da not alınarak birden çok giriş dosyası belirtebilirsiniz. Örneğin, hem hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar wordcount /example/data/gutenberg/davinci.txt /example/data/gutenberg/ulysses.txt /example/data/twowordcount sözcük hem de davinci.txt ulysses.txt.

  5. İş tamamlandıktan sonra çıktıyı görüntülemek için aşağıdaki komutu kullanın:

    hdfs dfs -cat /example/data/davinciwordcount/*
    

    Bu komut, iş tarafından üretilen tüm çıkış dosyalarını bir arada kullanır. Çıkışı konsolda görüntüler. Çıktı aşağıdaki metne benzer:

    zum     1
    zur     1
    zwanzig 1
    zweite  1
    

    Her satır bir sözcüğü ve giriş verisinde kaç kez meydana geldiği temsil eder.

Sudoku örneği

Sudoku, dokuz 3x3 kılavuzdan yapılmış bir mantık yapbozdur. Kılavuzda bazı hücreler sayı, diğerleri ise boştur ve amaç boş hücreleri çözmektir. Önceki bağlantıda yapboz hakkında daha fazla bilgi bulunur, ancak bu örneğin amacı boş hücreleri çözmektir. Bu nedenle girdimiz aşağıdaki biçimde bir dosya olmalıdır:

  • Dokuz sütundan dokuz satır
  • Her sütun bir sayı veya ? (boş bir hücreyi gösterir) içerebilir
  • Hücreler boşlukla ayrılır

Sudoku yapbozları oluşturmanın belirli bir yolu vardır; bir sütunda veya satırda bir s numarayı tekrarlamanız gerekir. HDInsight kümesinde düzgün oluşturulmuş bir örnek vardır. üzerinde bulunur /usr/hdp/*/hadoop/src/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/dancing/puzzle1.dta ve aşağıdaki metni içerir:

8 5 ? 3 9 ? ? ? ?
? ? 2 ? ? ? ? ? ?
? ? 6 ? 1 ? ? ? 2
? ? 4 ? ? 3 ? 5 9
? ? 8 9 ? 1 4 ? ?
3 2 ? 4 ? ? 8 ? ?
9 ? ? ? 8 ? 5 ? ?
? ? ? ? ? ? 2 ? ?
? ? ? ? 4 5 ? 7 8

Bu örnek sorunu Sudoku örneği aracılığıyla çalıştırmak için aşağıdaki komutu kullanın:

yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar sudoku /usr/hdp/*/hadoop/src/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/dancing/puzzle1.dta

Sonuçlar aşağıdaki metne benzer şekilde görünür:

8 5 1 3 9 2 6 4 7
4 3 2 6 7 8 1 9 5
7 9 6 5 1 4 3 8 2
6 1 4 8 2 3 7 5 9
5 7 8 9 6 1 4 2 3
3 2 9 4 5 7 8 1 6
9 4 7 2 8 6 5 3 1
1 8 5 7 3 9 2 6 4
2 6 3 1 4 5 9 7 8

Pi (π) örneği

Pi örneği, pi değerini tahmin etmek için istatistiksel (quasi-Monte Carlo) yöntemini kullanır. Noktalar bir birim karesinde rastgele yerleştirilir. Karede daire de yer almaktadır. Noktaların daire içinde olma olasılığı, dairenin alanına (pi/4) eşittir. pi değeri 4R değerinden tahmin olabilir. R, daire içinde olan noktaların sayısının kare içinde olan toplam punto sayısına oranıdır. Kullanım noktalarının daha büyük olması, tahminin ne kadar iyi olduğunu gösterir.

Bu örneği çalıştırmak için aşağıdaki komutu kullanın. Bu komut, Pi değerini tahmin etmek için her biri 10.000.000 örnek ile 16 Haritalar kullanır:

yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 16 10000000

Bu komut tarafından döndürülen değer 3.14159155000000000000 benzerdir. Başvurular için, Pi 'nin ilk 10 ondalık basamak 3,1415926535 ' dir.

10 GB gri sıralama örneği

Gri tonlamalı bir kıyaslama sıralaması. Ölçüm, büyük miktarlarda verileri sıralarken elde edilen sıralama oranıdır (TB/dakika), genellikle en az 100 TB 'tır.

Bu örnek, görece hızlı bir şekilde çalıştırılabilmesi için bir ila büyüklükteki 10 GB veri kullanır. owen 'malley tarafından geliştirilen MapReduce uygulamaları ve arun muralmi kullanır. Bu uygulamalar yıllık genel amaçlı ("Daytona") terabaytlık 2009 ' de 0,578, TB/dak oranında sıralama kıyaslaması (100 TB, 173 dakika) kazandı. Bu ve diğer sıralama kıyaslamaları hakkında daha fazla bilgi için bkz. kıyaslama sitesini sıralama .

bu örnek üç MapReduce program kümesi kullanır:

  • teragen: sıralanacak veri satırları üreten MapReduce bir programdır

  • TeraSort: giriş verilerini örnekler ve verileri toplam bir düzende sıralamak için MapReduce kullanır

    TeraSort, özel bir bölümleyici haricinde standart bir MapReduce sırsıdır. Bölümleyici, her bir küçültme için anahtar aralığını tanımlayan N-1 örneklenmiş anahtarların sıralanmış bir listesini kullanır. Özellikle, örnek [i-1] <= anahtar < örneği [i] gibi tüm anahtarlar ı azaltmak için gönderilir. Bu bölümleyici, ı azaltma çıktılarının t + 1 ' i düşürenden daha az olduğunu garanti eder.

  • TeraValidate: çıktının genel olarak sıralanacağını doğrulayan bir MapReduce programı

    Çıktı dizininde dosya başına bir harita oluşturur ve her bir eşleme, her bir anahtarın öncekine eşit veya ondan küçük olmasını sağlar. Map işlevi her bir dosyanın ilk ve son anahtarlarının kayıtlarını oluşturur. Küçültme işlevi, dosya ı-1 ' in son anahtarından daha büyük olduğumu ilk anahtarının daha büyük olmasını sağlar. Tüm sorunlar, azalmış olan anahtarlarla birlikte, azaltma aşamasının bir çıkışı olarak bildirilir.

Veri oluşturmak, sıralamak ve sonra çıktıyı doğrulamak için aşağıdaki adımları kullanın:

  1. HDInsight kümesinin varsayılan depolama alanında depolanan 10 GB veri oluşturun /example/data/10GB-sort-input :

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen -Dmapred.map.tasks=50 100000000 /example/data/10GB-sort-input
    

    -Dmapred.map.tasksBu iş için kaç tane eşleme görevinin kullanılacağını Hadoop 'a söyler. Son iki parametre, işe 10 GB veri oluşturulmasını ve üzerinde depolamayı yönlendirir /example/data/10GB-sort-input .

  2. Verileri sıralamak için aşağıdaki komutu kullanın:

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar terasort -Dmapred.map.tasks=50 -Dmapred.reduce.tasks=25 /example/data/10GB-sort-input /example/data/10GB-sort-output
    

    , -Dmapred.reduce.tasks İş için kaç tane ne kadar görev kullanacağınızı Hadoop 'a söyler. Son iki parametre yalnızca veri için giriş ve çıkış konumlarıdır.

  3. Sıralama tarafından oluşturulan verileri doğrulamak için aşağıdakileri kullanın:

    yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teravalidate -Dmapred.map.tasks=50 -Dmapred.reduce.tasks=25 /example/data/10GB-sort-output /example/data/10GB-sort-validate
    

Sonraki adımlar

Bu makalede, Linux tabanlı HDInsight kümelerine dahil edilen örneklerin nasıl çalıştırılacağını öğrendiniz. hdınsight ile Pig, Hive ve MapReduce kullanma hakkında öğreticiler için aşağıdaki konulara bakın: