tangtb

Hadoop,SpringMVC,ExtJs,Struts2,Spring,SpringSecurity,Hibernate,Struts
posts - 25, comments - 88, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Sqoop安装配置及数据导入导出

Posted on 2014-05-31 14:41 tangtb 阅读(20267) 评论(3)  编辑  收藏 所属分类: Hadoop

前置条件

已经成功安装配置HadoopMysql数据库服务器,如果将数据导入或从Hbase导出,还应该已经成功安装配置Hbase。

下载sqoopMysqlJDBC驱动

sqoop-1.2.0-CDH3B4.tar.gz http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz

mysql-connector-java-5.1.28

安装sqoop

[hadoop@appserver ~]$ tar -zxvf sqoop-1.2.0-CDH3B4.tar.gz

配置环境变量

拷贝Hadoop核心包和MYSQL驱动包到sqooplib目录

[hadoop@appserver ~]$ cp hadoop-1.1.2/hadoop-core-1.1.2.jar sqoop-1.2.0-CDH3B4/lib/

[hadoop@appserver ~]$ cp  mysql-connector-java-5.1.28-bin.jar sqoop-1.2.0-CDH3B4/lib/

 

配置sqoop-1.2.0-CDH3B4/bin/configure-sqoop文件

注释掉hbase和zookeeper检查(除非准备使用HABASE等HADOOP组件)

启动hadoop集群

启动mysql

创建sqoop用户

 

建立sqoop库,test表,并构造测试数据

测试sqoop连接

[hadoop@appserver ~]$ sqoop list-databases --connect jdbc:mysql://10.120.10.11:3306/ --username sqoop --password sqoop

列出mysql中所有数据库的名称

mysql导入到hdfs

sqoop ##sqoop命令

import ##表示导入

--connect jdbc:mysql://ip:3306/sqoop ##告诉jdbc,连接mysql的url

--username sqoop ##连接mysql的用户名

--password sqoop ##连接mysql的密码

--table test ##从mysql导出的表名称

--fields-terminated-by '\t' ##指定输出文件中的行的字段分隔符

-m 1 ##复制过程使用1个map作业

 

[hadoop@appserver ~]$ sqoop import --connect jdbc:mysql://10.120.10.11:3306/sqoop --username sqoop --password sqoop --table test --fields-terminated-by ':' -m 1

Hadoop中查看导入结果

hdfs导出到mysql

sqoop

export ##表示数据从hive复制到mysql中

--connect jdbc:mysql://ip:3306/sqoop

--username sqoop

--password sqoop

--table test ##mysql中的表,即将被导入的表名称

--export-dir '/user/root/aa/part-m-00000' ##hive中被导出的文件

--fields-terminated-by '\t' ##hive中被导出的文件字段的分隔符

[hadoop@appserver ~]$ sqoop export --connect jdbc:mysql://10.120.10.11:3306/sqoop --username sqoop --password sqoop --table test --export-dir '/user/hadoop/test/part-m-00000' --fields-terminated-by ':' -m 1

Mysql中查看导出结果

Mysql导入到Hbase

参数说明:

Ø hbase_tablename指定要导成hbase的表名

Ø key_col_name指定mysql数据库表中哪一列作为hbase新表的rowkey

Ø col_fam_name是除rowkey之外的所有列的列族名

[hadoop@appserver ~]$ sqoop import --connect jdbc:mysql://10.120.10.11:3306/sqoop --username sqoop --password sqoop --table test --hbase-create-table --hbase-table mysql_sqoop_test --column-family info --hbase-row-key id -m 1

Hbase中查看结果


评论

# re: Sqoop安装配置及数据导入导出  回复  更多评论   

2014-06-04 17:02 by 艾青
不错的东东,谢谢楼主分享!

# re: Sqoop安装配置及数据导入导出[未登录]  回复  更多评论   

2014-07-07 09:50 by 小豪
记得以前在http://www.lq580.com/有相关的介绍,不过现在怎么变成了一个叫绿求网的东东呢,不明白?

# re: Sqoop安装配置及数据导入导出  回复  更多评论   

2016-06-22 20:54 by Hadoop
不错 就是有点浅

只有注册用户登录后才能发表评论。


网站导航: