Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
HDInsight üzerinde Apache Hadoop ile birlikte verilen MapReduce örneklerini çalıştırmayı öğrenin.
Önkoşullar
HDInsight üzerinde bir Apache Hadoop kümesi. Bkz . Linux'ta HDInsight'ı kullanmaya başlama.
Bir SSH istemcisi. Daha fazla bilgi için bkz. SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.
MapReduce örnekleri
HDInsight kümesinde, /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar konumunda örnekler bulunur. Bu örneklerin kaynak kodu, /usr/hdp/current/hadoop-client/src/hadoop-mapreduce-project/hadoop-mapreduce-examples konumundaki HDInsight kümesine dahil edilmiştir.
Bu arşivde aşağıdaki örnekler bulunur:
| Örnek | Açıklama |
|---|---|
| toplam kelime sayısı | Giriş dosyalarındaki sözcükleri sayar. |
| birleştirilmiş kelime geçmişi | Giriş dosyalarındaki sözcüklerin histogramını hesaplar. |
bbp |
Pi'nin tam rakamlarını hesaplamak için Bailey-Borwein-Plouffe 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şteki bir regex'in eşleşmelerini sayar. |
| katıl | Sıralanmış, eşit bölümlenmiş veri kümeleri üzerinde birleştirme gerçekleştirir. |
| multifilewc | Birkaç dosyadaki sözcükleri sayar. |
| pentomino (beş kareli şekil) | Pentomino sorunlarına çözüm bulmak için döşeme yerleştirme programı. |
| pi | Quasi-Monte Carlo yöntemini kullanarak Pi'ye tahminde bulunur. |
| randomtextwriter | Düğüm başına 10 GB rastgele metin verileri yazar. |
randomwriter |
Düğüm başına 10 GB rastgele veri yazar. |
secondarysort |
Azaltma aşamasına ikincil bir sıralama tanımlar. |
| sırala | Rastgele yazar tarafından yazılan verileri sıralar. |
| sudoku | Sudoku çözücü. |
| teragen | Terasort için veri oluşturun. |
| Terasort (belirli bir sıralama algoritması/süreç adı) | Terasort'u çalıştırın. |
| tera doğrulama | Terasort sonuçları kontrol ediliyor. |
| kelime sayısı | Giriş dosyalarındaki sözcükleri sayar. |
wordmean |
Giriş dosyalarındaki sözcüklerin ortalama uzunluğunu sayar. |
wordmedian |
Giriş dosyalarındaki sözcüklerin ortanca uzunluğunu sayar. |
| wordstandarddeviation | Giriş dosyalarındaki sözcüklerin uzunluğunun standart sapması sayar. |
Wordcount örneğini çalıştırma
SSH kullanarak HDInsight'a bağlanın. değerini kümenizin adıyla değiştirin
CLUSTERve aşağıdaki komutu girin:ssh sshuser@CLUSTER-ssh.azurehdinsight.netÖrnekleri listelemek için SSH oturumunda aşağıdaki komutu kullanın:
yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jarBu komut, bu belgenin önceki bölümünde yer alan örnek listesini oluşturur.
Belirli bir örnekle ilgili yardım almak için aşağıdaki komutu kullanın. Bu durumda , 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 birkaç giriş yolu sağlayabileceğinizi gösterir. Son yol, çıkışın (kaynak belgelerdeki sözcük sayısı) depolandığı yerdir.
Kümenizle birlikte örnek veriler olarak sağlanan Leonardo da Vinci Not Defterleri'ndeki tüm sözcükleri saymak için aşağıdakileri kullanın:
yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar wordcount /example/data/gutenberg/davinci.txt /example/data/davinciwordcountBu işin girişi öğesinden
/example/data/gutenberg/davinci.txtokunur. Bu örneğin çıktısı içinde/example/data/davinciwordcountdepolanır. Her iki yol da yerel dosya sistemi için değil küme için varsayılan depolamada bulunur.Uyarı
Wordcount örneğinin yardımında belirtildiği gibi, birden çok giriş dosyası da belirtebilirsiniz. Örneğin,
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/twowordcounthem davinci.txt hem de ulysses.txtsözcükleri sayar.İş 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ı birleştirir. Konsolun çıkışını 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ş verilerinde kaç kez gerçekleştiğini temsil eder.
Sudoku örneği
Sudoku dokuz adet 3x3'lik kareden oluşan bir mantık bulmacasıdır. Kılavuzdaki bazı hücrelerde sayılar bulunurken, diğerleri boş ve amaç boş hücreleri çözmektir. Önceki bağlantı bulmaca hakkında daha fazla bilgiye sahiptir, ancak bu örneğin amacı boş hücreler için çözmektir. Bu nedenle girişimiz aşağıdaki biçimde bir dosya olmalıdır:
- Dokuz sütundan oluşan 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 bulmacaları oluşturmanın belirli bir yolu vardır; sütun veya satırdaki bir sayıyı yineleyemezsiniz. Düzenli bir şekilde oluşturulmuş bir HDInsight kümesi örneği vardır. konumunda 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 karesine rastgele yerleştirilir. Kare bir daire de içerir. Noktaların daire içinde olma olasılığı, dairenin pi/4 alanına eşittir. pi değeri, değerinden 4Rtahmin edilebilir. R, dairenin içindeki nokta sayısının kare içindeki toplam nokta sayısına oranıdır. Kullanılan puan örneği ne kadar büyük olursa tahmin o kadar iyi olur.
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 içeren 16 eşleme 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,1415915500000000000000000000a benzer. Başvurular için pi'nin ilk 10 ondalık basamak sayısı 3,1415926535'tir.
10 GB GraySort örneği
GraySort bir karşılaştırmalı sıralamadır. Ölçüm, genellikle en az 100 TB olan büyük miktarda veriyi sıralarken elde edilen sıralama hızıdır (TB/dakika).
Bu örnek, nispeten hızlı bir şekilde çalıştırılabilmesi için 10 GB'lık mütevazı bir veri kullanır.
Owen O'Malley ve Arun Murthy tarafından geliştirilen MapReduce uygulamalarını kullanır. Bu uygulamalar 2009 yılında 0,578 TB/dk (173 dakikada 100 TB) ile yıllık genel amaçlı ("Daytona") terabayt sıralama karşılaştırmasını kazandı. Bu ve diğer sıralama karşılaştırmaları hakkında daha fazla bilgi için Sıralama Karşılaştırması sitesine bakın.
Bu örnekte üç MapReduce programı kümesi kullanılır:
TeraGen: Sıralanacak veri satırları oluşturan mapreduce programı
TeraSort: Giriş verilerini örnekler ve mapreduce kullanarak verileri toplam düzende sıralar
TeraSort, özel bölümleyici dışında standart bir MapReduce sıralamasıdır. Bölümleyici, her azaltma 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 i'yi azaltmak için gönderilir. Bu bölümleyici,
iazaltma işleminin çıktılarınıni+1azaltma işleminin çıktısından daha küçük olmasını garanti eder.TeraValidate: Çıkışın genel olarak sıralandığını doğrulayan bir MapReduce programı
Çıkış dizininde dosya başına bir eşleme oluşturur ve her eşleme her anahtarın öncekinden küçük veya buna eşit olmasını sağlar. Map işlevi, her dosyanın ilk ve son anahtarlarının kayıtlarını oluşturur. reduce işlevi, i dosyasının ilk anahtarının i-1 dosyasının son anahtarından büyük olmasını sağlar. Tüm sorunlar, anahtarların sıra dışı olduğu azaltma aşamasının çıkışı olarak bildirilir.
Veri oluşturmak, sıralamak ve çıkışı doğrulamak için aşağıdaki adımları kullanın:
HDInsight kümesinin varsayılan depolama
/example/data/10GB-sort-inputalanına depolanan 10 GB veri oluşturun:yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen -Dmapred.map.tasks=50 100000000 /example/data/10GB-sort-inputHadoop'a
-Dmapred.map.tasksbu iş için kaç eşleme görevinin kullanılacağını bildirir. Son iki parametre, işe 10 GB veri oluşturmasını ve içinde/example/data/10GB-sort-inputdepolamasını belirtir.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-outputHadoop'a
-Dmapred.reduce.tasksiş için kaç azaltma görevi kullanılacağını bildirir. Son iki parametre yalnızca verilerin giriş ve çıkış konumlarıdır.Sıralamayla 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 örnekleri çalıştırmayı öğrendiniz. HDInsight ile Pig, Hive ve MapReduce kullanma hakkında öğreticiler için aşağıdaki konulara bakın: