mysql数据与Hadoop之间导入导出之Sqoop实例

  前面介绍了sqoop1.4.6的 如何将mysql数据导入Hadoop之Sqoop安装,下面就介绍两者间的数据互通的简单使用命令。

显示mysql数据库的信息,一般sqoop安装测试用

sqoop list-databases --connect jdbc:mysql://192.168.2.101:3306/ --username root --password root

显示数据库里所有表:

sqoop list-tables --connectjdbc:mysql://192.168.2.101:3306/FlowDB --username root -password root

mysql导入到hdfs中

sqoop import --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --table WorkTable --fields-terminated-by ‘\t‘ -m 1

sqoop ##sqoop命令
import ##表示导入
--connect jdbc:mysql://ip:3306/sqoop ##告诉jdbc,连接mysql的url
--username root ##连接mysql的用户名
--password admin ##连接mysql的密码
--table aa ##从mysql导出的表名称
--fields-terminated-by ‘\t‘ ##指定输出文件中的行的字段分隔符
--target-dir/user/hadoop/databases/ssa/fin_cashier_order
-m 1 ##复制过程使用1个map作业
若是不写--target-dir 则默认是hdfs上的user/username/tablename 路径
如果重复执行,会提示目录已经存在,可以手动删除
该命令执行结束后,观察hdfs的目录/user/{USER_NAME},下面会有一个文件夹是aa,里面有个文件是part-m-00000。该文件的内容就是数据表aa的内容,字段之间是使用制表符分割的。

查看HDFS上的文件
  hadoop fs -cat /user/jzyc/WorkTable/part-m-00000

hdfs导出到mysql中

  把上一步导入到hdfs的数据导出到mysql中。我们已知使用制表符分隔的。那么,我们现在数据库FlowDB中创建一个数据表叫做WorkTable_hdfs,里面有两个字段。然后执行下面的命令

sqoop export --connect jdbc:mysql://192.168.2.101:3306/FlowDB --table WorkTable_hdfs --username root --password root --export-dir /user/jzyc/WorkTable/ --input-fields-terminated-by ‘\t‘

sqoop导入视图到hdfs

sqoop import --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root
--query ‘SELECT * FROM view_WorkTable WHERE \$CONDITIONS‘ -m 1 target-dir /user/jzyc/WorkTable --delete-target-dir --fields-terminated-by ","

将数据从关系数据库导入文件到hive表中,--query 语句使用

sqoop import --append --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --query "SELECT ID,Classify,Name,ModelType,CreateDate,CreateUserID,DesignJSON,Status from WorkTable where \$CONDITIONS" -m 1 --target-dir /hive/warehouse/WorkTable --fields-terminated-by ","

将数据从关系数据库导入文件到hive表中,--columns --where 语句使用

sqoop import --append --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --table WorkTable --columns "ID,Classify,Name,ModelType,CreateDate,CreateUserID" --where "Classify = 1" -m 1 --target-dir /hive/warehouse/WorkTable2 --fields-terminated-by ","

  注意:--target-dir/hive/warehouse/WorkTable2 可以用 --hive-import --hive-table WorkTable2 进行替换

  从上面的信息可以看到sqoop还是走的hadoop的M/R引擎。

  以上只是一些经过验证通过的简单的示例,更复杂的有待后续补充。

时间: 2024-10-26 07:25:59

mysql数据与Hadoop之间导入导出之Sqoop实例的相关文章

[PHP、MySQL] 数据进入数据库后要导出

摘要:[PHP.MySQL] 数据进入数据库后要导出 前几天,在做数据库导出(MySQL to xls)的设计时,遇到一个很严重的问题. 就是数据导出到Excel档的时候,如果数据库内的字段内容有text的型态并且存入的数据有断行的话,在Excel导出时也会出现断行. 也就是会断到下一列,为了解决这个问题,仔细的研究了一下我做文件输入时干了些什么东西... $chapterRange= addslashes($_POST['chapterRange']); $testRange = addsla

mysql数据向Redis快速导入

mysql数据向Redis快速导入 Redis协议 *<args><cr><lf> 参数个数 $<len><cr><lf> 第一个参数长度 <arg0><cr><lf> 第一个参数 $<len><cr><lf> 第一个参数长度 <arg1><cr><lf> 第二个参数 ... ... 编写SQL语句,把mysql数据组合成Red

批处理sqlldr数据迁移--oracle txt导入导出(转)

sqlldr数据迁移--oracle txt导入导出 http://coupling001.blog.163.com/blog/static/174925389201262093959635/ 一.sqlldr导入txt 1.预备 a).txt文件 这里要保存成无签名的UTF-8 b).oracle建表 2.编写控制文件input_test.ctl LOAD  DATA CHARACTERSET 'UTF8'    --字符集设定 INFILE 'd:\input_test.txt'     

mysql 千万级数据的导入导出

最近应公司要求,在做数据库的导入导出.经查询每天的数据量在350W条左右.经过大量测试,感觉以下方法比较好 数据导出:SELECT INTO-OUTFILE 基本语法: SELECT [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] 该语句分为两个部分.前半部分是一个普通的SELECT语句,通

Exchange 用户归档邮件导入导出PST操作实例

分享一个之前做过的Exchange邮箱数据文件的导入导出操作示例.目录内容如下: 目录 第一步 新建一个Exchange角色组并将其添加到Mailbox Import Export 管理角色中... 4 第二步 创建共享文件夹... 4 第三步 创建单个用户邮件导出请求... 5 第四步 将导出的PST文件导入到用户主邮箱... 6 删除已完成的邮件导入请求... 6 删除已完成的邮件导出请求... 6 批量导出归档邮箱至PST文件... 7 基于数据库批量导出PST. 7 使用CSV文件批量导

sql server 数据库之间导入导出数据表

1.点击源数据库右键->任务->导出数据 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

mysql中csv文件的导入导出

导出例子: select *from testinto outfile 'D:test.csv'fields terminated by ',' optionally enclosed by '"' escaped by '"'lines terminated by '\r\n'; 导入例子:load data infile 'D:test.csv' into table `test` fields terminated by ',' optionally enclosed by '&

数据规则列表加导入导出

1.进入bos,打开数据规则,进入列表菜单 2.点击事件-新增操作 3.点击新增 4.点击操作类型,输入%引入 5.点击确定,保存后生效,导出 .引入模板设置同理 原文地址:https://www.cnblogs.com/RogerLu/p/10643521.html

mysql表的导入导出

⒈select ... into outfile导出数据/load data infile导入数据⑴创建新表,定义表结构  ⅰ方法一:在同一数据库中      ①复制表结构及数据到新表      CREATE TABLE newtable  SELECT * FROM oldtable      ② 只复制表结构到新表       CREATE TABLE newtable  SELECT * FROM oldtable WHERE 1=2  ⅱ方法二:适应库与库之间,或者单库      ①只复