HDInsight'ta Hadoop ile Apache Sqoop'u kullanma

HDInsight kümesi ile Azure SQL Veritabanı arasında verileri içeri ve dışarı aktarmak için HDInsight'ta Apache Sqoop'u kullanmayı öğrenin.

Apache Hadoop, günlükler ve dosyalar gibi yapılandırılmamış ve yarı yapılandırılmış verileri işlemek için doğal bir seçenek olsa da, ilişkisel veritabanlarında depolanan yapılandırılmış verilerin işlenmesi de gerekebilir.

Apache Sqoop, Hadoop kümeleri ve ilişkisel veritabanları arasında veri aktarmak için tasarlanmış bir araçtır. SQL Server, MySQL veya Oracle gibi bir ilişkisel veritabanı yönetim sisteminden (RDBMS) Hadoop dağıtılmış dosya sistemine (HDFS) veri aktarmak, Hadoop'taki verileri MapReduce veya Apache Hive ile dönüştürmek ve sonra verileri bir RDBMS'ye geri aktarmak için kullanabilirsiniz. Bu makalede, ilişkisel veritabanınız için Azure SQL Veritabanı kullanıyorsunuz.

Önemli

Bu makalede, veri aktarımını gerçekleştirmek için bir test ortamı oluşturulur. Ardından Sqoop işlerini çalıştırma bölümündeki yöntemlerden birinden bu ortam için bir veri aktarım yöntemi seçersiniz.

HDInsight kümelerinde desteklenen Sqoop sürümleri için bkz. HDInsight tarafından sağlanan küme sürümlerindeki yenilikler

Senaryoyu anlama

HDInsight kümesi bazı örnek verilerle birlikte gelir. Aşağıdaki iki örneği kullanırsınız:

  • konumunda /example/data/sample.logbulunan bir Apache Log4j günlük dosyası. Aşağıdaki günlükler dosyasından ayıklanır:
2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851
2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254
2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656
...
  • adresinde bulunan /hive/warehouse/hivesampletableveri dosyasına başvuran adlı hivesampletablebir Hive tablosu. Tabloda bazı mobil cihaz verileri yer alır.

    Alan Veri türü
    Clientıd string
    querytime string
    Pazar string
    deviceplatform string
    devicemake string
    devicemodel string
    state string
    ülke string
    querydwelltime double
    Sessionıd bigint
    sessionpagevieworder bigint

Bu makalede, Sqoop içeri ve dışarı aktarmayı test etmek için bu iki veri kümesini kullanırsınız.

Test ortamını ayarlama

Küme, SQL veritabanı ve diğer nesneler azure Resource Manager şablonu kullanılarak Azure portal aracılığıyla oluşturulur. Şablon , Azure hızlı başlangıç şablonlarında bulunabilir. Resource Manager şablonu, tablo şemalarını bir SQL veritabanına dağıtmak için bacpac paketini çağırır. bacpac dosyaları için özel bir kapsayıcı kullanmak istiyorsanız, şablonda aşağıdaki değerleri kullanın:

"storageKeyType": "Primary",
"storageKey": "<TheAzureStorageAccountKey>",

Not

Şablon veya Azure portal kullanarak içeri aktarma işlemi yalnızca Azure blob depolama alanından BACPAC dosyasının içeri aktarılmasını destekler.

  1. Azure portal Resource Manager şablonunu açmak için aşağıdaki görüntüyü seçin.

    Yeni küme için Azure'a dağıt düğmesi

  2. Aşağıdaki özellikleri girin:

    Alan Değer
    Abonelik Açılan listeden Azure aboneliğinizi seçin.
    Kaynak grubu Açılan listeden kaynak grubunuzu seçin veya yeni bir grup oluşturun
    Konum Açılan listeden bir bölge seçin.
    Küme Adı Hadoop kümesi için bir ad girin. Yalnızca küçük harf kullanın.
    Küme Oturum Açma Kullanıcı Adı Önceden doldurulmuş değerini admintutun.
    Küme Oturum Açma Parolası Parola girin.
    Ssh Kullanıcı Adı Önceden doldurulmuş değerini sshusertutun.
    Ssh Parolası Parola girin.
    Sql Yönetici Oturum Açma Önceden doldurulmuş değerini sqlusertutun.
    Sql Yönetici Parolası Parola girin.
    _artifacts Konumu Kendi bacpac dosyanızı farklı bir konumda kullanmak istemiyorsanız varsayılan değeri kullanın.
    _artifacts Konum Sas Belirteci Boş bırakın.
    Bacpac Dosya Adı Kendi bacpac dosyanızı kullanmak istemiyorsanız varsayılan değeri kullanın.
    Konum Varsayılan değeri kullanın.

    Mantıksal SQL sunucusu adı şeklindedir<ClusterName>dbserver. Veritabanı adı şeklindedir <ClusterName>db. Varsayılan depolama hesabı adı şeklindedir e6qhezrh2pdqu.

  3. Yukarıda belirtilen hüküm ve koşulları kabul ediyorum'ı seçin.

  4. Satın al'ı seçin. Şablon dağıtımı için dağıtım gönderme başlıklı yeni bir kutucuk görürsünüz. Kümenin ve SQL Database’in oluşturulması yaklaşık 20 dakika sürer.

Sqoop işlerini çalıştırma

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

İsterseniz bunu kullanın ... ... etkileşimli kabuk ... toplu işlem ... bu istemci işletim sisteminden
SSH ? ? Linux, Unix, Mac OS X veya Windows
Hadoop için .NET SDK   ? Windows (şimdilik)
Azure PowerShell   ? Windows

Sınırlamalar

  • Toplu dışarı aktarma - Linux tabanlı HDInsight ile verileri Microsoft SQL Server veya SQL Veritabanı'e aktarmak için kullanılan Sqoop bağlayıcısı şu anda toplu eklemeleri desteklemez.
  • Toplu İşlem - Linux tabanlı HDInsight ile, eklemeleri gerçekleştirirken anahtarı kullanırken -batch Sqoop, ekleme işlemlerini toplu olarak çalıştırmak yerine birden çok ekleme gerçekleştirir.

Sonraki adımlar

Artık Sqoop'un nasıl kullanılacağını öğrendinsiniz. Daha fazla bilgi edinmek için şu makalelere bakın: