通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据(2)

sqoop export --connect jdbc:mysql://192.168.66.96:3306/sqoop --username sqoop --password sqoop --table students --export-dir hdfs://masternode:9000/user/grid/students/part-m-00000

 

若成功,在mysql中会看到students表中的数据恢复了!

 

注意过程中可能会因为slavenode的50010端口没打开而报错,需用root用户通过sudo ufw allow 50010命令打开端口!

 

二、Mysql与Hbase互导数据

将mysql的数据导入hbase的命令格式为:

sqoop import --connect jdbc:mysql://mysqlserver_IP/databaseName --username --password password --table datatable --hbase-create-table --hbase-table hbase_tablename --column-family col_fam_name --hbase-row-key key_col_name

其中 ,databaseName 和datatable 是mysql的数据库和表名,hbase_tablename是要导成hbase的表名,key_col_name可以指定datatable中哪一列作为hbase新表的rowkey,col_fam_name是除rowkey之外的所有列的列族名

 

例如:可通过如下命令将Mysql中的students表导入到Hbase中:

/home/grid/sqoop/bin/sqoop import --connect jdbc:mysql://192.168.66.96/sqoop --username sqoop --password liyang16 --table students --hbase-create-table --hbase-table students --column-family stuinfo --hbase-row-key id

成功执行后,可在hbase中用以下命令查看结果:

hbase(main):011:0> scan 'students'

ROW COLUMN+CELL

10001 column=stuinfo:age, timestamp=1356759994058, value=29

10001 column=stuinfo:name, timestamp=1356759994058, value=liyang

10002 column=stuinfo:age, timestamp=1356760044478, value=28

10002 column=stuinfo:name, timestamp=1356760044478, value=lion

10003 column=stuinfo:age, timestamp=1356760044478, value=26

10003 column=stuinfo:name, timestamp=1356760044478, value=leon

3 row(s) in 0.0900 seconds

 

三、Oracle与Hbase互导数据

将Oracle中的dept表(列为id,name,addr)导出至hbase中的dept表(行键为id,列族为deptinfo)

sqoop import --append --connect jdbc:oracle:thin:@192.168.66.90:1521:orcl --username test --password test --m 1 --table dept --columns id,name,addr --hbase-create-table --hbase-table dept --hbase-row-key id --column-family deptinfo

 

-------------------------------------------------------------------------------------

注:以上所有命令均实测通过,只需修改参数即可执行!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/c9a6a2d1c005b06d6ec2214fda9d1217.html