Domuza Derin Bir Dalış

Bu blog yazısı, Pig ve işlevlerine derinlemesine bir dalıştır. Java'ya bağımlı olmadan Pig kullanarak Hadoop üzerinde nasıl çalışabileceğinizi gösteren bir demo bulacaksınız.



Son zamanlarda Hadoop'un popülaritesinin hızla artmasının en büyük nedenlerinden biri, Pig ve Hive gibi özelliklerin, programcı olmayanlara daha önce Java programcılarına özel olan işlevselliğe sahip olmasına izin vermesidir. Bu özellikler, Hadoop profesyonellerine yönelik artan talebin bir sonucuydu. Java dışı geçmişlere sahip Hadoop uzmanları tarafından kullanılan diğer özellikler Flume, Sqoop, HBase ve Oozie'dir.



Hadoop öğrenmek için neden Java'ya ihtiyacınız olmadığını anlamak için göz atın bu blog .

1 Domuz Geçmişi



Bu özelliklerin nasıl çalıştığını anlayalım.

MapReduce kodlarını yazmak için programlama bilgisinin bir gereklilik olduğunu hepimiz biliyoruz. Peki ya sadece ayrıntıları verirsem kodlamayı yapabilen bir aracım varsa? Domuzun kas gücünü sergilediği yer burasıdır. Pig, Java MapReduce deyiminden programlamayı, RDBMS sistemleri için SQL'e benzer şekilde MapReduce programlamasını yüksek düzeyde yapan bir gösterime özetleyen Pig Latin adlı bir platform kullanır. Pig Latin MapReduce ile yazılan kodlar otomatik olarak eşdeğer MapReduce işlevlerine dönüştürülür. Harika değil mi? Akıllara durgunluk veren bir başka gerçek de, 200 Java Satırını değiştirmek için yalnızca 10 Satır Domuzun gerekli olmasıdır.



10 satır Pig = 200 satır Java

Bu sadece Java dışı profesyonellerin Hadoop'u kullandığı anlamına gelmez, aynı zamanda Pig'in eşit sayıda teknik geliştirici tarafından kullanıldığının altını çizen gerçeği de kanıtlar.

Ek olarak, kendi MapReduce kodunuzu yazmak istiyorsanız, bunu Perl, Python, Ruby veya C gibi dillerden herhangi birinde yapabilirsiniz.Pig kullanarak herhangi bir Veri Kümesinde gerçekleştirebileceğimiz bazı temel işlemler Grup, Birleştirme, Filtreleme ve Sıralama'dır. . Bu işlemler yapılandırılmış, yapılandırılmamış ve ayrıca yarı yapılandırılmış veriler üzerinde gerçekleştirilebilir. Çok büyük veri kümelerinde MapReduce işlerini oluşturmak ve yürütmek için geçici bir yol sağlarlar.

Sıradaki, Hive'ı anlayalım. Veri özetleme, sorgulama ve analiz için Hadoop'a dayalı açık kaynaklı, peta bayt ölçekli bir veri ambarı çerçevesidir. Hive, Hadoop için SQL benzeri bir arayüz sağlar. Hadoop'taki dosyaları okuyup yazmak ve raporlarınızı bir BI aracından çalıştırmak için Hive'ı kullanabilirsiniz. Hadoop'un bazı tipik işlevleri şunlardır:

Pig on Clickstream veri kümesini kullanarak size bir demo göstermeme izin verin
Bu Tıklama Akışı verilerini kullanacağız ve Dönüşümler, Birleştirmeler ve Gruplamalar gerçekleştireceğiz.

ClickStream, özellikle pazarlama amacıyla bir kişinin ilgi alanlarını değerlendirmek için izlenen ve İnternet'e erişirken kullanıcı tarafından yapılan bir dizi fare tıklamasıdır. Esas olarak, öneriler oluşturmak için faaliyetlerinizi izleyen Flipkart ve Amazon gibi çevrimiçi perakende web siteleri tarafından kullanılır. Kullandığımız Clickstream veri kümesi aşağıdaki alanlara sahiptir:

1. Web uygulaması tarafından desteklenen dil türü

2. Tarayıcı türü

3. Bağlantı türü

4. Ülke Kimliği

5. Zaman Damgası

6. URL

7. Kullanıcı durumu

8. Kullanıcı Tipi

Uygun alanlarla böyle görünecek.

Aşağıda, belirli bir web sitesinde gezinirken çeşitli kişiler tarafından kullanılan tarayıcı türlerinin listesi bulunmaktadır. Liste arasında Internet Explorer, Google Chrome, Lynx ve benzeri tarayıcılar var.

İnternet bağlantı türü Lan / Modem / Wifi olabilir. Tam liste için aşağıdaki resme bakın:

angularjs'de açılır menü

Bir sonraki resimde, web sitesinin izleyicilerin ilgisini çektiği ülkelerin listesini kimlikleriyle birlikte bulacaksınız.

Tüm veri kümelerini topladıktan sonra, Pig komutlarını çalıştırmak için başlatılan Pig's Grunt kabuğunu başlatmalıyız.

Grunt kabuğunu başlatırken yapmamız gereken ilk şey, Clickstream verilerini Pig’in ilişkisine yüklemektir. Bir ilişki bir tablodan başka bir şey değildir. Aşağıda, HDFS'de bulunan bir dosyayı Pig'in ilişkisine yüklemek için kullandığımız komut bulunmaktadır.

İlişkinin şemasını click_stream'i açıkla komutu ile doğrulayabiliriz.

Şimdi, kimlikleriyle ülkelerin listesi ve kimlikleriyle birlikte farklı tarayıcı türleri hakkında ayrıntıları içerecek referans dosyalarını eklememiz gerekiyor.

Şimdi iki referans dosyamız var, ancak bir ilişki kurmak için bunların birbirine bağlanması gerekiyor.
Bağlantı türünü belirtmek için bir connection_ref komutu çalıştırıyoruz.

Artık çalışan bir bağlantımız ve kurulmuş bir ilişkimiz olduğuna göre, bu verileri nasıl dönüştürebileceğimizi size göstereceğiz.
Clickstream'deki her kayıt için, dönüştürülmüş veriler gibi farklı bir formatta yeni bir kayıt oluşturacağız. Yeni biçim, TimeStamp, Tarayıcı türü, Ülke Kimlikleri ve daha fazlası gibi alanları içerecektir.

Büyük Veriyi azaltmak için bir Filtre işlemi yapabiliriz. Farklı kullanıcı türleri Yöneticiler, Misafirler veya Bot'lardır. Demomuzda, Misafirler için listeyi filtreledim.

Hatırlarsanız, Ülke Kimliği Tıklama Akışında mevcuttur ve ülke adlarıyla birlikte kimlikleriyle birlikte bir country_ref dosyası yükledik. Böylece iki dosya arasında bir Birleştirme işlemi gerçekleştirebilir ve içgörüler elde etmek için verileri birleştirebiliriz.

Verileri birleştirirsek, Gruplandırma ile kullanıcıların bulundukları farklı ülkeleri bulabiliriz. Bu verilere sahip olduktan sonra, belirli bir ülkeden kullanıcı sayısını belirlemek için bir Sayma işlemi gerçekleştirebiliriz.

Büyük Veriden içgörü elde etmek roket bilimi değildir. Bunlar, uyguladığım birçok özellikten sadece birkaçı ve Hive, Hbase, Oozie, Sqoop ve Flume gibi araçlarla henüz keşfedilmeyi bekleyen bir veri hazinesi var. Dolayısıyla, Hadoop'u öğrenmekten kendinizi alıkoyanlarınız, artık değişme zamanı.

Bizim için bir sorunuz mu var? Lütfen yorumlar bölümünde bunlardan bahsedin, size geri döneceğiz.

İlgili Mesajlar:

R ve Hadoop'u Birlikte Kullanmanın 4 Yolu

Apache Hadoop için Cloudera Sertifikalı Geliştirici Hakkında Her Şey