Aracılığıyla paylaş


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 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çim olsa da, ilişkisel veritabanlarında depolanan yapılandırılmış verileri işleme gereksinimi de olabilir.

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, MapReduce veya Apache Hive ile Hadoop'taki verileri 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 makale, veri aktarımını gerçekleştirmek için bir test ortamı ayarlar. 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
...
  • konumundaki /hive/warehouse/hivesampletableveri dosyasına başvuran adlı hivesampletablebir Hive tablosu. Tabloda bazı mobil cihaz verileri yer alır.

    Alan Veri türü
    clientid Dize
    querytime Dize
    pazar Dize
    deviceplatform Dize
    devicemake Dize
    devicemodel Dize
    semt Dize
    ülke Dize
    querydwelltime çift
    sessionid 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 Bir Azure Resource Manager şablonu kullanılarak Azure portalı üzerinden 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 bir bacpac paketi ç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 kullanarak içeri aktarma veya Azure portalı yalnızca Azure blob depolama alanından BACPAC dosyasını içeri aktarmayı destekler.

  1. Azure portalında 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 tane 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 adminkoruyun.
    Küme oturum açma Parolası Bir parola girin.
    SSH Kullanıcı Adı Önceden doldurulmuş değerini sshuserkoruyun.
    SSH Parolası Bir parola girin.
    Sql Yöneticisi oturum açma Önceden doldurulmuş değerini sqluserkoruyun.
    Sql Yönetici Parolası Bir 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ıdır<ClusterName>dbserver. Veritabanı adı şeklindedir <ClusterName>db. Varsayılan depolama hesabı adıdır 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 uygun olduğuna karar vermek için aşağıdaki tabloyu kullanın, ardından bir 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, macOS 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'a aktarmak için kullanılan Sqoop bağlayıcısı veya SQL Veritabanı şu anda toplu eklemeleri desteklemez.
  • Toplu işleme - Linux tabanlı HDInsight ile, eklemeleri gerçekleştirirken anahtarı kullanırken -batch , Sqoop ekleme işlemlerini toplu olarak gerçekleştirmek 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: