Bu konu, bir E-MapReduce (EMR) kümesinde Apache Sqoop kullanarak OSS-HDFS'de depolanan verilere nasıl okuma ve yazma erişimi sağlanacağını açıklar.
Önkoşullar
EMR V3.42.0 veya sonraki bir sürümü ya da EMR V5.8.0 veya sonraki bir sürümü çalıştıran ve Sqoop bileşenini seçtiğiniz bir EMR kümesi oluşturdunuz. Daha fazla bilgi için bkz. Küme oluşturma.
OSS-HDFS'yi etkinleştirdiniz ve gerekli erişim izinlerini verdiniz. Daha fazla bilgi için bkz. OSS-HDFS'yi etkinleştirme.
Yordam
-
EMR kümesine bağlanın.
EMR konsoluna oturum açın. Sol gezinme bölmesinde EMR on ECS seçeneğine tıklayın.
Oluşturduğunuz EMR kümesine tıklayın.
Nodes sekmesine tıklayın ve düğüm grubunun solundaki
simgesine tıklayın.ECS Kimliğine tıklayın. Örnekler sayfasında, örnek kimliğinin yanındaki Connect seçeneğine tıklayın.
SSH anahtar çifti veya parola kullanarak Windows veya Linux ortamından kümeye oturum açmak için bkz. Kümeye oturum açma.
-
Verileri OSS-HDFS'den MySQL'e aktarın.
sudo sqoop import --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <oss-dir> --temporary-rootdir <oss-tmpdir> --check-column <col> --incremental <mode> --last-value <value> --as-<format> -m <count>-
Aşağıdaki tabloda komuttaki parametreler açıklanmaktadır.
Parametre
Gerekli
Açıklama
dburi
Evet
Veritabanı bağlantısı URI'si. Örnek:
jdbc:mysql://192.168.xxx.xxx:3306/.dbname
Evet
Veritabanı adı.
username
Evet
Veritabanında oturum açmak için kullanılan kullanıcı adı.
password
Evet
Veritabanı kullanıcısının parolası.
tablename
Evet
MySQL tablosu adı.
oss-dir
Evet
İçe aktarılan veriler için OSS-HDFS'deki hedef dizin. Örnek:
oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/.oss-tmpdir
Hayır
İçe aktarma işi için geçici dizin. Bu parametre, 'append' artımlı içe aktarma modu için gereklidir.
Mod parametresini append olarak ayarlarsanız Apache Sqoop verileri geçici bir dizine aktarır ve ardından dosyaları yeniden adlandırıp hedef dizinde depolar. Hedef dizin OSS-HDFS'de zaten varsa Apache Sqoop bu dizine veri aktarmaz veya dizindeki verilerin üzerine yazmaz.
col
Hayır
Artımlı içe aktarma için kontrol sütunu.
mode
Hayır
Artımlı içe aktarma modu. Geçerli değerler:
appendvelastmodified.-
append: Otomatik artan bir sütuna göre verileri artımlı olarak içe aktarır. -
lastmodified: Zaman damgası sütununa göre verileri artımlı olarak içe aktarır.
value
Hayır
Önceki artımlı içe aktarmadaki kontrol sütununun maksimum değeri.
format
Hayır
Çıktı dosyası biçimi. Geçerli değerler:
avrodatafile,sequencefile,textfile(varsayılan) veparquetfile.count
Hayır
MapReduce görev sayısı.
-
-
Örnek
Aşağıdaki örnek kod, examplebucket içindeki belirtilen bir dizindeki verilerin MySQL'deki src_kv tablosuna nasıl aktarılacağını gösterir:
sqoop import --connect jdbc:mysql://master-1-1/sqoop_test --username root --password password1 --table src_kv -m 1 --target-dir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/tmp/sqoop_kv --as-parquetfile
-