Visual Studio için Data Lake araçlarını kullanarak Apache Hive sorgularını çalıştırma

Visual Studio için Data Lake araçlarını kullanarak Apache Hive'ı sorgulamayı öğrenin. Data Lake araçları, Azure HDInsight üzerinde Apache Hadoop'a Hive sorgularını kolayca oluşturmanıza, göndermenize ve izlemenize olanak sağlar.

Önkoşullar

  • HDInsight üzerinde bir Apache Hadoop kümesi. Bu öğeyi oluşturma hakkında bilgi için bkz . Resource Manager şablonunu kullanarak Azure HDInsight'ta Apache Hadoop kümesi oluşturma.

  • Visual Studio. Bu makaledeki adımlarda Visual Studio 2019 kullanılır.

  • Visual Studio için HDInsight araçları veya Visual Studio için Azure Data Lake araçları. Araçları yükleme ve yapılandırma hakkında bilgi için bkz . Visual Studio için Data Lake Araçları'nı yükleme.

Visual Studio kullanarak Apache Hive sorguları çalıştırma

Hive sorguları oluşturmak ve çalıştırmak için iki seçeneğiniz vardır:

  • Geçici sorgular oluşturun.
  • Hive uygulaması oluşturun.

Geçici Hive sorgusu oluşturma

Geçici sorgular Batch veya Etkileşimli modda yürütülebilir.

  1. Visual Studio'yu başlatın ve Kod olmadan devam et'i seçin.

  2. Sunucu Gezgini'nde Azure'a sağ tıklayın, Microsoft Azure Aboneliğine Bağlan... öğesini seçin ve oturum açma işlemini tamamlayın.

  3. HDInsight'ı genişletin, sorguyu çalıştırmak istediğiniz kümeye sağ tıklayın ve ardından Hive Sorgusu Yaz'ı seçin.

  4. Aşağıdaki hive sorgusunu girin:

    SELECT * FROM hivesampletable;
    
  5. Yürüt'ü seçin. Yürütme modu varsayılan olarak Etkileşimli'yi kullanır.

    Execute interactive Hive query, Visual Studio.

  6. Aynı sorguyu Batch modunda çalıştırmak için, açılan listeyi Etkileşimli'denBatch'e geçirin. Yürütme düğmesi Yürüt'ten Gönder'e değişir.

    Submit batch Hive query, Visual Studio.

    Hive düzenleyicisi IntelliSense’i destekler. Visual Studio için Data Lake Araçları, Hive betiğinizi düzenlerken uzak meta verilerin yüklenmesini destekler. Örneğin, yazarsanız SELECT * FROMIntelliSense önerilen tüm tablo adlarını listeler. Bir tablo adı belirtildiğinde, IntelliSense sütun adlarını listeler. Araçlar çoğu Hive DML deyimlerini, alt sorguları ve yerleşik UDF'leri destekler. IntelliSense yalnızca HDInsight araç çubuğunda seçilen kümelerin meta verilerini önerir.

  7. Sorgu araç çubuğunda (sorgu sekmesinin altındaki ve sorgu metninin üstündeki alan) Gönder'i seçin veya Gönder'in yanındaki aşağı açılan oku seçin ve açılan listeden Gelişmiş'i seçin. İkinci seçeneği seçerseniz,

  8. Gelişmiş gönderme seçeneğini belirlediyseniz, Betiği Gönder iletişim kutusunda İş Adı, Bağımsız Değişkenler, Ek Yapılandırmalar ve Durum Dizini'ni yapılandırın. Ardından Gönder'i seçin.

    Submit Script dialog box, HDInsight Hadoop Hive query.

Hive uygulaması oluşturma

Hive uygulaması oluşturarak hive sorgusu çalıştırmak için şu adımları izleyin:

  1. Visual Studio'yu açın.

  2. Başlangıç penceresinde Yeni proje oluştur'u seçin.

  3. Yeni proje oluştur penceresindeki Şablon ara kutusuna Hive yazın. Ardından Hive Uygulaması'nı ve ardından İleri'yi seçin.

  4. Yeni projenizi yapılandırın penceresinde bir Proje adı girin, yeni proje için bir Konum seçin veya oluşturun ve ardından Oluştur'u seçin.

  5. Bu projeyle oluşturulan Script.hql dosyasını açın ve aşağıdaki HiveQL deyimlerine yapıştırın:

    set hive.execution.engine=tez;
    DROP TABLE log4jLogs;
    CREATE EXTERNAL TABLE log4jLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE LOCATION '/example/data/';
    SELECT t4 AS sev, COUNT(*) AS count FROM log4jLogs WHERE t4 = '[ERROR]' AND  INPUT__FILE__NAME LIKE '%.log' GROUP BY t4;
    

    Bu deyimler aşağıdaki eylemleri gerçekleştirir:

    • DROP TABLE: Varsa tabloyu siler.

    • CREATE EXTERNAL TABLE: Hive'da yeni bir 'dış' tablo oluşturur. Dış tablolar tablo tanımını yalnızca Hive'da depolar. (Veriler özgün konumda bırakılır.)

      Not

      Temel alınan verilerin MapReduce işi veya Azure hizmeti gibi bir dış kaynak tarafından güncelleştirilmesini beklediğiniz durumlarda dış tablolar kullanılmalıdır.

      Dış tablo bırakılıyorsa veriler silinmez, yalnızca tablo tanımı silinir.

    • ROW FORMAT: Hive'a verilerin nasıl biçimlendirildiğini bildirir. Bu durumda, her günlükteki alanlar bir boşlukla ayrılır.

    • STORED AS TEXTFILE LOCATION: Hive'a verilerin örnek/veri dizininde depolandığını ve metin olarak depolandığını bildirir.

    • SELECT: sütununun t4 değerini [ERROR]içerdiği tüm satırların sayısını seçer. Bu deyim, üç satır bu değeri içerdiğinden 3değerini döndürür.

    • INPUT__FILE__NAME LIKE '%.log': Hive'a yalnızca .log ile biten dosyalardan veri döndürmesini söyler. Bu yan tümce, aramayı verileri içeren sample.log dosyasıyla kısıtlar.

  6. Sorgu dosyası araç çubuğundan (geçici sorgu araç çubuğuna benzer bir görünüme sahip), bu sorgu için kullanmak istediğiniz HDInsight kümesini seçin. Ardından, Deyimleri Hive işi olarak çalıştırmak için Etkileşimli'yi Batch (gerekirse) olarak değiştirin ve Gönder'i seçin.

    Hive İşi Özeti görüntülenir ve çalışan iş hakkındaki bilgileri görüntüler. İş Durumu Tamamlandı olarak değişene kadar iş bilgilerini yenilemek için Yenile bağlantısını kullanın.

    Completed Hive job summary, Hive application, Visual Studio.

  7. Bu işin çıkışını görüntülemek için İş Çıktısı'nı seçin. Bu sorgu tarafından döndürülen değer olan değerini görüntüler [ERROR] 3.

Ek örnek

Aşağıdaki örneklog4jLogs, hive uygulaması oluşturma adlı önceki yordamda oluşturulan tabloyu temel alır.

  1. Sunucu Gezgini'nden kümenize sağ tıklayın ve Hive Sorgusu Yaz'ı seçin.

  2. Aşağıdaki hive sorgusunu girin:

    set hive.execution.engine=tez;
    CREATE TABLE IF NOT EXISTS errorLogs (t1 string, t2 string, t3 string, t4 string, t5 string, t6 string, t7 string) STORED AS ORC;
    INSERT OVERWRITE TABLE errorLogs SELECT t1, t2, t3, t4, t5, t6, t7 FROM log4jLogs WHERE t4 = '[ERROR]' AND INPUT__FILE__NAME LIKE '%.log';
    

    Bu deyimler aşağıdaki eylemleri gerçekleştirir:

    • CREATE TABLE IF NOT EXISTS: Henüz yoksa bir tablo oluşturur. EXTERNAL Anahtar sözcük kullanılmadığından, bu deyim bir iç tablo oluşturur. İç tablolar Hive veri ambarında depolanır ve Hive tarafından yönetilir.

      Not

      Tablolardan farklı olarak EXTERNAL , iç tablo bırakılıyorsa temel alınan veriler de silinir.

    • STORED AS ORC: Verileri iyileştirilmiş satır sütunlu (ORC) biçiminde depolar. ORC, Hive verilerini depolamak için yüksek oranda iyileştirilmiş ve verimli bir biçimdir.

    • INSERT OVERWRITE ... SELECT: içeren [ERROR]tablodan log4jLogs satırları seçer ve ardından verileri tabloya errorLogs ekler.

  3. Gerekirse Etkileşimli'yi Batch olarak değiştirin ve gönder'i seçin.

  4. İşin tabloyu oluşturduğunu doğrulamak için Sunucu Gezgini'ne gidin ve Azure>HDInsight'ı genişletin. HDInsight kümenizi genişletin ve ardından Hive Veritabanları>varsayılan'ı genişletin. errorLogs tablosu ve log4jLogs tablosu listelenir.

Sonraki adımlar

Gördüğünüz gibi, Visual Studio için HDInsight araçları HDInsight üzerinde Hive sorguları ile çalışmak için kolay bir yol sağlar.