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.log
bulunan bir ApacheLog4j
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/hivesampletable
veri dosyasına başvuran adlıhivesampletable
bir 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.
Azure portalında Resource Manager şablonunu açmak için aşağıdaki görüntüyü seçin.
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 admin
koruyun.Küme oturum açma Parolası Bir parola girin. SSH Kullanıcı Adı Önceden doldurulmuş değerini sshuser
koruyun.SSH Parolası Bir parola girin. Sql Yöneticisi oturum açma Önceden doldurulmuş değerini sqluser
koruyun.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ıre6qhezrh2pdqu
.Yukarıda belirtilen hüküm ve koşulları kabul ediyorum'ı seçin.
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:
- HDInsight ile Apache Hive kullanma
- HDInsight'a veri yükleme: HDInsight/Azure Blob depolamaya veri yüklemek için başka yöntemler bulun.
- HDInsight üzerinde Apache Hadoop ile SQL Veritabanı arasında veri içeri ve dışarı aktarma işlemleri için Apache Sqoop'u kullanma