Share via


HDInsight üzerinde Apache Hadoop ile Apache Pig kullanma

HDInsight ile Apache Pig kullanmayı öğrenin.

Apache Pig, Pig Latin olarak bilinen bir yordam dili kullanarak Apache Hadoop için programlar oluşturmaya yönelik bir platformdur. Pig, MapReduce çözümleri oluşturmak için Java'ya bir alternatiftir ve Azure HDInsight ile birlikte sunulur. Pig'in HDInsight ile kullanabileceği çeşitli yolları keşfetmek için aşağıdaki tabloyu kullanın:

Apache Pig neden kullanılır?

Hadoop'ta MapReduce kullanarak veri işlemenin zorluklarından biri, işleme mantığınızı yalnızca bir harita ve azaltma işlevi kullanarak uygulamaktır. Karmaşık işleme için, istenen sonucu elde etmek için genellikle işlemeyi birbirine zincirlenmiş birden çok MapReduce işlemine bölmeniz gerekir.

Pig, işlemeyi, istenen çıkışı elde etmek için verilerin aktığı bir dizi dönüşüm olarak tanımlamanızı sağlar.

Pig Latin dili, istenen çıkışı oluşturmak için ham girişten bir veya daha fazla dönüşüme kadar veri akışını açıklamanıza olanak tanır. Pig Latin programları şu genel düzeni izler:

  • Yükleme: Dosya sisteminden işlenecek verileri okuyun.

  • Dönüştürme: Verileri işleme.

  • Döküm veya depolama: Verileri ekrana kaydedin veya işlenmek üzere depolayın.

Kullanıcı tanımlı işlevler

Pig Latin, Pig Latin'de modellemesi zor olan mantığı uygulayan dış bileşenleri çağırmanıza olanak tanıyan kullanıcı tanımlı işlevleri (UDF) de destekler.

Pig Latin hakkında daha fazla bilgi için bkz . Pig Latin Başvuru Kılavuzu 1 ve Pig Latin Başvuru Kılavuzu 2.

Örnek veriler

HDInsight, ve /HdiSamples dizinlerinde /example/data depolanan çeşitli örnek veri kümeleri sağlar. Bu dizinler kümeniz için varsayılan depolama alanındadır. Bu belgedeki Pig örneği, dosyasından /example/data/sample.loglog4j dosyasını kullanır.

Dosyanın içindeki her günlük, türü ve önem derecesini gösteren bir alan içeren bir [LOG LEVEL] alan satırından oluşur, örneğin:

2012-02-03 20:26:41 SampleClass3 [ERROR] verbose detail for id 1527353937

Önceki örnekte günlük düzeyi ERROR'dır.

Not

Ayrıca Apache Log4j günlük aracını kullanarak bir log4j dosyası oluşturabilir ve ardından bu dosyayı blobunuza yükleyebilirsiniz. Yönergeler için bkz . HDInsight'a Veri Yükleme. Azure depolamadaki blobların HDInsight ile nasıl kullanıldığı hakkında daha fazla bilgi için bkz. HDInsight ile Azure Blob Depolama kullanma.

Örnek iş

Aşağıdaki Pig Latin işi, HDInsight kümeniz için varsayılan depolama alanından dosyayı yükler sample.log . Ardından giriş verilerinde her günlük düzeyinin kaç kez oluştuğuna ilişkin bir dizi dönüştürme gerçekleştirir. Sonuçlar STDOUT'a yazılır.

LOGS = LOAD 'wasb:///example/data/sample.log';
LEVELS = foreach LOGS generate REGEX_EXTRACT($0, '(TRACE|DEBUG|INFO|WARN|ERROR|FATAL)', 1)  as LOGLEVEL;
FILTEREDLEVELS = FILTER LEVELS by LOGLEVEL is not null;
GROUPEDLEVELS = GROUP FILTEREDLEVELS by LOGLEVEL;
FREQUENCIES = foreach GROUPEDLEVELS generate group as LOGLEVEL, COUNT(FILTEREDLEVELS.LOGLEVEL) as COUNT;
RESULT = order FREQUENCIES by COUNT desc;
DUMP RESULT;

Aşağıdaki görüntüde, her dönüşümün verilere ne yaptığı özet gösterilmektedir.

Graphical representation of the transformations.

Pig Latin işini çalıştırma

HDInsight çeşitli yöntemler kullanarak Pig Latin işlerini çalıştırabilir. Hangi yöntemin sizin için uygun olduğuna karar vermek için aşağıdaki tabloyu kullanın, ardından bir izlenecek yol için bağlantıyı izleyin.

Pig ve SQL Server Integration Services

Bir Pig işini çalıştırmak için SQL Server Integration Services 'ı (SSIS) kullanabilirsiniz. SSIS için Azure Özellik Paketi, HDInsight'ta Pig işleri ile çalışan aşağıdaki bileşenleri sağlar.

SSIS için Azure Özellik Paketi hakkında daha fazla bilgiyi burada bulabilirsiniz.

Sonraki adımlar

Pig'i HDInsight ile kullanmayı öğrendiğinize göre, Azure HDInsight ile çalışmanın diğer yollarını keşfetmek için aşağıdaki bağlantıları kullanın.