MaxCompute Studio'da bir WordCount MapReduce programı geliştirin, bunu JAR dosyası olarak paketleyin ve işi MaxCompute istemcisinde çalıştırın.
Önkoşullar
Başlamadan önce aşağıdaki gereksinimlerin karşılandığından emin olun:
MaxCompute istemcisi yüklü ve yapılandırılmış olmalıdır. Daha fazla bilgi için bkz. MaxCompute istemcisini yükleme ve yapılandırma.
MaxCompute Studio yüklü olmalı ve bir MaxCompute projesine bağlı olmalıdır. Daha fazla bilgi için bkz. MaxCompute Studio'yu yükleme ve Proje bağlantılarını yönetme.
-
Yerel makinenizde kaydedilmiş bir kaynak veri dosyanız bulunmalıdır.
Bu konuda, içeriği
hello,odpsolan data.txt adlı örnek bir dosya kullanılmaktadır. Dosya, MaxCompute istemcisindekibindizininde kaydedilir.
Kullanım notları
Bir MapReduce programı geliştirmek için Maven kullanıyorsanız, gerekli Java SDK sürümünü elde etmek üzere odps-sdk-mapred, odps-sdk-commons ve odps-sdk-core öğelerini Maven Central Repository adresinde arayın. Bu konuda örnek olarak 0.36.4-public sürümü kullanılmaktadır. Aşağıdaki bağımlılıkları pom.xml dosyasına ekleyin.
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-mapred</artifactId>
<version>0.36.4-public</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-commons</artifactId>
<version>0.36.4-public</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.36.4-public</version>
</dependency>
Yordam
-
Adım 1: Bir MapReduce programı geliştirme
MaxCompute Studio'da bir MapReduce programı yazın, çalıştırın ve hata ayıklayın.
-
Adım 2: Bir MapReduce JAR dosyası oluşturma ve yükleme
Derlenen WordCount.java betiğini bir JAR dosyasına paketleyin ve bunu MaxCompute projesine yükleyin.
-
Adım 3: MapReduce işini çalıştırma
MaxCompute projesine yüklenen JAR dosyasıyla birlikte
jarkomutunu kullanarak MapReduce işini çalıştırın.
Adım 1: Bir MapReduce programı geliştirme
-
Bir MaxCompute Java modülü oluşturun.
IntelliJ IDEA'yı başlatın. Menü çubuğunda seçeneklerini seçin.
New Module iletişim kutusunun sol gezinme bölmesinde MaxCompute Java seçeneğini belirleyin.
Module SDK öğesini yapılandırın ve Next düğmesine tıklayın.
Bir Module name girin (örneğin mapreduce) ve Finish düğmesine tıklayın.
-
WordCount MapReduce programını yazın, çalıştırın ve hata ayıklayın.
Project bölmesinde modülün kaynak kodu dizinine sağ tıklayın ve seçeneklerini seçin.
Create new MaxCompute java class iletişim kutusunda Driver seçeneğine tıklayın, bir Name girin (örneğin WordCount) ve Enter tuşuna basın.
-
Yeni oluşturulan WordCount.java dosyasında WordCount MapReduce programını yazın.
Tam WordCount örnek kodu için bkz. Kod örneği.
Sol gezinme bölmesinde WordCount.java betiğine sağ tıklayın ve Run seçeneğini belirleyin.
-
Run/Debug Configurations iletişim kutusunda MaxCompute project ayarlarını yapılandırın.
MaxCompute project ayarı için
http://service.cn-hangzhou.maxcompute.aliyun.com/apigibi bir Endpoint seçin ve ardından hedef projenizi seçin (örneğindoc_test_dev). OK düğmesine tıklayın. WordCount.java betiğini çalıştırın ve derlemenin başarılı olduğunu doğrulamak için hata ayıklayın.
Adım 2: Bir MapReduce JAR dosyası oluşturma ve yükleme
IntelliJ IDEA'nın sol gezinme bölmesinde WordCount.java betiğine sağ tıklayın ve Deploy to server... seçeneğini belirleyin.
-
Package a jar and submit resource iletişim kutusunda parametreleri yapılandırın ve OK düğmesine tıklayın.
Hedef MaxCompute project öğesini seçin. Resource file alanında paketlenmiş JAR dosyasının yolu görüntülenir. Bir Resource name girin (örneğin
mapreduce-1.0-SNAPSHOT.jar). İsteğe bağlı olarak Resource comment alanına bir açıklama ekleyin. Aynı ada sahip mevcut bir kaynağın üzerine yazmak için Force update if already exists seçeneğini işaretleyin.Parametreler hakkında daha fazla bilgi için bkz. Yordam.
NotMapReduce programını geliştirmek için Maven kullanıyorsanız, programı bir JAR dosyasına paketledikten sonra bunu MaxCompute istemcisini kullanarak MaxCompute projesine manuel olarak yüklemeniz gerekir. Daha fazla bilgi için bkz. Kaynak ekleme. Örnek:
add jar mapreduce-1.0-SNAPSHOT.jar;
Adım 3: MapReduce işini çalıştırma
-
MaxCompute istemcisinde oturum açma veya MaxCompute Studio'da MaxCompute istemcisini açın.
MaxCompute istemcisi, MaxCompute Studio ile tümleşiktir; bu nedenle doğrudan IDE üzerinden çalıştırabilirsiniz. Daha fazla bilgi için bkz. MaxCompute istemcisini tümleştirme.
-
Bir giriş tablosu ve bir çıkış tablosu oluşturun.
MapReduce işi, verileri giriş tablosundan okur ve sonuçları çıkış tablosuna yazar. Örnek:
-- Create the input table wc_in. create table wc_in (key STRING, value STRING); -- Create the output table wc_out. create table wc_out (key STRING, cnt BIGINT);Tablo oluşturma söz dizimi hakkında daha fazla bilgi için bkz. Tablo oluşturma.
-
Verileri wc_in tablosuna eklemek için Tunnel Upload komutunu kullanın.
-
Oluşturulan JAR dosyasıyla MapReduce işini çalıştırmak için
jarkomutunu kullanın.Örnek:
jar -resources mapreduce-1.0-SNAPSHOT.jar -classpath mapreduce-1.0-SNAPSHOT.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_out;-resources mapreduce-1.0-SNAPSHOT.jar: MapReduce işi tarafından kullanılan kaynağı belirtir. Bu örnekte kaynak, Adım 2 bölümünde yüklenen mapreduce-1.0-SNAPSHOT.jar dosyasıdır.-classpath mapreduce-1.0-SNAPSHOT.jar: MainClass'ı içeren JAR dosyasının yerel yolunu belirtir.com.aliyun.odps.mapred.open.example.WordCount: MapReduce programının MainClass'ı.wc_in wc_out: Giriş tablosu ve çıkış tablosu.
jarkomutu hakkında daha fazla bilgi için bkz. Söz dizimi. -
wc_out tablosundaki verileri görüntülemek için aşağıdaki komutu çalıştırın.
select * from wc_out;Beklenen çıktı:
+------------+------------+ | key | cnt | +------------+------------+ | hello | 1 | | odps | 1 | +------------+------------+