HDInsight MapReduce a dahil olan örneklerde çalıştırma
HDInsight üzerinde Apache Hadoop'a dahil olan MapReduce çalıştırmayı öğrenin.
Önkoşullar
HDInsight üzerinde bir Apache Hadoop kümesi. Bkz Başlarken Linux'ta HDInsight ile bkz. .
Bir SSH istemcisi. Daha fazla bilgi için bkz. SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.
Ö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
Bağlan hdInsight'a SSH kullanarak. yerine
CLUSTERkümenizin adını yazın ve aşağıdaki komutu girin:ssh sshuser@CLUSTER-ssh.azurehdinsight.netSSH oturumunda aşağıdaki komutu kullanarak örnekleri listelenin:
yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jarBu komut, bu belgenin önceki bölümünde yer alan örnek listesini üretir.
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 wordcountAş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.
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/davinciwordcountBu iş için giriş, 'den
/example/data/gutenberg/davinci.txtokunur. Bu örneğin çıktısı içinde/example/data/davinciwordcountdepolanı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/twowordcountsözcük hem de davinci.txt ulysses.txt.İş 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 1Her 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:
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.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.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: