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.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
...
adresinde bulunan
/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ü 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.
Azure portal 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 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 admin
tutun.Küme Oturum Açma Parolası Parola girin. Ssh Kullanıcı Adı Önceden doldurulmuş değerini sshuser
tutun.Ssh Parolası Parola girin. Sql Yönetici Oturum Açma Önceden doldurulmuş değerini sqluser
tutun.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ı şeklindedire6qhezrh2pdqu
.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 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:
- HDInsight ile Apache Hive kullanma
- HDInsight'a veri yükleme: HDInsight/Azure Blob depolama alanına 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin