かなり疲れた...
sqoopって
sqoopってのはHDFS....まぁこちらを読んでもらうのが一番良い
http://www.ne.jp/asahi/hishidama/home/tech/apache/sqoop/
さて早速インストール。
ここを参考にね。
http://blog.kylemulka.com/2012/04/how-to-install-sqoop-on-amazon-elastic-map-reduce-emr/
bootstrapとしてやるんじゃなくとりあえず試したいのでガスガスやってみる.
注意としては、Sqoopダウンロードしたものにsqoop-1.4.5.jar
が含まれてないのもあるので
ダウンロードするときはsqoop-x.x.x.bin__hadoop-xxx-yyy.tar.gz
こっちをダウンロードする、
$ cd
# sqoopのダウンロード
$ wget http://ftp.jaist.ac.jp/pub/apache/sqoop/1.4.5/sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz
$ tar -xzf sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz
# mysql-connector-javaだけど
# EMR+Hive環境なら、すでにあるからコピーしちゃう
$ cp ~/hive/lib/mysql-connector-java-5.1.30.jar sqoop-1.4.5.bin__hadoop-2.0.4-alpha/lib/
これでセットアップ自体はOK
ここからが疲れた
sqoop実行できない!
これはsqoop-1.4.5.jar
が含まれていなかったから。
ダウンロードしたものが悪かった。
さっき書いたけどsqoop-x.x.x.bin__hadoop-xxx-yyy.tar.gz
こっち!
HDFSを指定してORC形式のファイルはエクスポートできない!
どうも、区切り文字付きのtext形式、Avro、SequenceFilesこいつらに対応していて、
それ以外は対応していない...
ここでHCatalogの出番。
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.3-Win/bk_dataintegration/content/ch_using-sqoop-hcat-integration.html
$ export HCAT_HOME=/home/hadoop/hive/hcatalog
こいつを実行してから
$ ./sqoop-1.4.5.bin__hadoop-2.0.4-alpha/bin/sqoop export --connect jdbc:mysql://mysql-host:3306/test --username admin --password admin --table mysql_table --hcatalog-table hive_table
partitionはStringだけ
INT型でpartitionしてたのでStringに変更。。。
これで、やっとexportが成功する。
Avro、SequenceFilesとかはデリミタの設定とかしなくていいからとっても助かる。
実行前に特定のレコードのdeleteとかはsqoopではできないのかな?
このあとは、これをbootstrap化してあげる。