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.
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.
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
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) );
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.
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:
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
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
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”
İ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”
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
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.
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