6 Mart 2016 Pazar

Sqoop ile Veri Aktarımları-3 (son)

Merhaba,
Son gönderdiğim blog yazımdan itibaren uzun bir zaman geçmiş. Bugünlerde işlerimin yoğunluğundan blog yazılarıma yeterince ilgi gösteremedim.
Sqoop yazılarımın sonuncusu olan bu blog ile birlikte sqoop konusu son bulacaktır. Sqoop’u baştan aşağıya kurulum ve örneklerini anlatmaya çalıştım.
Başka Bir Örnek
Tab Delimeter ile Ayrılmış Dosyaların (Hdfs Ortamından) Oracle Ortamına Atılması:
weblogs_entries.txt in aşağıdaki gibi tab delimeter şeklinde verisi var. Bu şekilde bir verinin aktarımını nasıl yapabiliriz?
–input-fields-terminated-by “\t” ifadesini kullanmamız gerekiyor.
Dosya örneğimiz aşağıdadır. Tab delimeter ile ayrılmıştır.
abba15edcd0c8042a14bf216c5 /jcwbtvnkkujo.html 2012-05-10 21:25:44 148.113.13.214
e7d3f242f111c1b522137481d8508ab7 /ckyhatbpxu.html 2012-05-10 21:11:20 4.175.198.160
b8bd62a5c4ede37b9e77893e043fc1 /rr.html 2012-05-10 21:32:08 24.146.153.181
4f64e7db5e4c6c3aec94d460e49a68 /illrd.html 2012-05-10 21:25:17 203.156.137.68
dd781819a9e8df83863c715c0efd82a /tdevxhsb.html 2012-05-10 21:18:10 114.127.210.217
Önce oracle da tabloyu create edelim.
Create table WEBLOGS_FROM_HDFS1 (MD5 VARCHAR(100), URL VARCHAR(100), REQUEST_DATE VARCHAR(100), REQUEST_TIME VARCHAR(100), IP VARCHAR(100) );
[hadoop@mmetincentosos bin]$ ./sqoop export –connect jdbc:oracle:thin:@localhost:1521/XE –username XXXXXX –password XXXXXX –table WEBLOGS_FROM_HDFS1 -columns “MD5, URL,REQUEST_DATE,REQUEST_TIME,IP” –export-dir /data/weblogs –input-fields-terminated-by “\t” -m 1
Hbase Import:
Yukarıda hdfs sistemine import ve export işlemleri yaptık. Hbase yapmak istediğimizde ise aşağıdaki adımlar kullanılır. Hbase işleminde sadece import edilebilir. Export şu anda mevcut değildir.
Not: hbase ile ilgili yazılarıma yine bu blog’ tan erişebilirsiniz. noSql database olarak hbase kullanabilirsiniz.
Not: noSql = not only Sql anlamındadır. Lütfen karıştırmayalım.
Sqoop maalesef : does not support export from hbase to external system yet.
Daha öncesinde hbase sisteminde test1 adında bir tablo yapmıştık. Ve bu tablonun kayıt biçimi aşağıdaki gibidir.
hhbase test1 tablosunun ilk hali:
hbase(main):007:0> scan ‘test1′
ROW COLUMN+CELL
Row1 column=data:ADI, timestamp=1370954985974, value=murat
Row1 column=data:SOYADI, timestamp=1370954985974, value=metin
Row1 column=data:TAKIMI, timestamp=1370954985974, value=besiktas
1 row(s) in 0.7040 seconds
Bu tabloya kayıt import etmek istediğimizde aşağıdaki komut kullanılır.
[hadoop@mmetincentosos bin]$ ./sqoop import –connect jdbc:oracle:thin:@localhost:1521/XE –username XXXX –password XXXXXXXXX –table DEMO_USERS –columns “USER_ID,USER_NAME,PASSWORD” –hbase-table test1 –columns “ADI,SOYADI,TAKIMI” –column-family data –hbase-row-key USER_ID –hbase-create-table -m 1
Elbette oracle tarafında böyle bir tablomuz olması gerekir.
komut çalıştırıldıktan sonraki hali:
hbase(main):009:0> scan ‘test1′
ROW COLUMN+CELL
1 column=data:PASSWORD, timestamp=1371217638636, value=D5CBDAA7C349F8FDB7A925BADE3F445C
1 column=data:USER_NAME, timestamp=1371217638636, value=ADMIN
2 column=data:PASSWORD, timestamp=1371217638636, value=1553433D44A6A7F2814691CEADD6F78B
2 column=data:USER_NAME, timestamp=1371217638636, value=DEMO
Row1 column=data:ADI, timestamp=1370954985974, value=murat
Row1 column=data:SOYADI, timestamp=1370954985974, value=metin
Row1 column=data:TAKIMI, timestamp=1370954985974, value=besiktas
3 row(s) in 0.3840 seconds
Aşağıdaki bilgiler oldukça faydalıdır. Bu zamana kadar yaptığımız işlemlerin özetlenmiş halidir.
Aşağıda Sqoop İle İlgili Genel birkaç Örnek Yer Almaktadır.
İmport:
sqoop import
–connect jdbc:oracle:thin:@//HOST:PORT/DB
–username DBA_USER
-P
–table TABLENAME
–columns “column1,column2,column3,..”
–as-textfile
–target-dir /target/directory/in/hdfs
-m 1
–check-column COLUMN3
–incremental lastmodified
–last-value “LAST VALUE”
Ayrıca itiraf edeyim. job tanımlamadım. Ama ne kadar kolay olduğunu yine bu vereceğim kısa bilgi ile edinebilirsiniz.
Sqoop taki işleri job olarak tanımlayabilirsiniz.
Job Tanımlama:
sqoop job
–create JOBNAME
— import
–connect jdbc:oracle:thin:@//HOST:PORT/DB
–username DBA_USER
-P
–table TABLENAME
–columns “column1,column2,column3,..”
–as-textfile
–target-dir /target/directory/in/hdfs
-m 1
–check-column COLUMN3
–incremental lastmodified
–last-value “LAST VALUE”
Jobların Listelenmesi, Silinmesi ve Execute Edilmesi:
List , Delete, Exec
sqoop job –list
sqoop job –delete JOB_NAME
sqoop job –exec JOB_NAME
Bugünkü blog yazımız bu kadar.
Bir sonraki blog yazımda görüşmek dileğiyle.
Sizlerden ricam bir sonraki blog yazımda hangi konuyu yazıya dökmemiz uygun olur gönderirseniz sevinirim.
Lütfen, yorumlarınızı bekliyorum.
mmetin

http://tr.linkedin.com/in/muratmetin

Hiç yorum yok:

Yorum Gönder