一、sqoop

1、列出数据库

sqoop list-databases \
--connect jdbc:mysql://hadoop01:3306 \
--username root --password 123456;

2、列出表

sqoop list-tables \
--connect jdbc:mysql://hadoop01:3306/test \
--username root --password 123456;

3、本地密码

本地文件: file:///home/user/password
hdfs文件: /user/user/password
注意: 密码文件直接vim编辑会报错, 应采用重定向追加或覆盖写入操作
echo -n "password" >> /home/taojiamin/data/passwd.pwd
&& chmod 400 /home/taojiamin/data/passwd.pwdecho -n 不换行输出;bin/sqoop import \
--connect jdbc:mysql://com.hadoop05:3306/testdb \
--username root \
--password-file file:///home/hadoop/mypasswd \
--table user \
--target-dir /sqoop/input \
-m 1 \
--fields-terminated-by '\t' \
--delete-target-dir

4、mysql导入数据到hdfs

1)全量导入

sqoop import --connect jdbc:mysql://hadoop01:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password 123456 \
##--table user \
--query “select * from user where \$CONDITIONS” \
-m 1 \
--split-by user_id\
--fields-terminated-by '\t' \
--compress \
--compression-codec com.hadoop.compression.lzo.LzoCodec \
--hive-drop-import-delims \ --null-string “\\N” \ --null-non-string “\\N” \
--columns 'user_id,user_name,trade_time' \
--delete-target-dir \
--target-dir hdfs://hadoop01:9000/sqooptest/mysql2hdfs
参数 说明
--connect 指定连接jdbc端口和数据库名称
--driver mysql驱动
--table mysql表名
--query 查询语句后面必须有where条件\$CONDITIONS相当于1=0
-m 指定mapper数量,默认为4
--split-by 数据切分字段,默认主键 ,无主键必须指定
--fields-terminated-by 指定数据分隔符,默认逗号
--compress 开启压缩,默认gz,不写compress则不启
--compression-codec 指定压缩格式
--hive-drop-import-delims 删除数据中包含的Hive默认分隔符(^A, ^B, \n)
--null-string 指定string类型空值的替换符
--null-non-string 指定非string类型空值的替换符
--columns 数据库字段,可不写
--delete-target-dir 如果目标目录已存在,则先删除
--target-dir 导入目标目录

2)增量导入

①Append方式

sqoop import \--connect jdbc:mysql://hadoop01:3306/test \--username root \--password 123456 \--query “select order_id, name from user where \$CONDITIONS” \--target-dir hdfs://hadoop01:9000/sqooptest/mysql2hdfs \ --split-by user_id\-m 1\--incremental append \--check-column user_id \--last-value 0
参数 说明
--incremental append 基于递增列的增量导入(将递增列值大于阈值的所有数据增量导入Hadoop
--check-column 递增列(int)
--last-value 阈值(int)

②lastModify方式

sqoop import \--connect jdbc:mysql://192.168.xxx.xxx:3316/testdb \--username root \--password transwarp \--query “select order_id, name from order_table where \$CONDITIONS” \--target-dir /user/root/order_all \ --split-by id \-m 4  \--incremental lastmodified \--merge-key order_id \--check-column time \# remember this date !!!--last-value “2014-11-09 21:00:00”
参数 说明
--incremental lastmodified 基于时间列的增量导入(将时间列大于等于阈值的所有数据增量导入Hadoop)
--check-column 时间列
--last-value 阈值
–merge-key 合并列(主键,合并键值相同的记录)

5、hdfs普通文件(无压缩)导入数据到mysql

sqoop export \
--connect jdbc:mysql://hadoop01:3306/test \
--username root \
--password 123456 \
--table u2 \
--input-fields-terminated-by ','
--export-dir hdfs://hadoop01:9000/sqooptest/mysql2hdfs2/*\

6、mysql导入数据到hive(无压缩)

sqoop import --connect jdbc:mysql://hadoop01:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password 123456 \
--table user \
--columns 'user_id,user_name,trade_time' \
--null-string '\\N' \
--null-non-string 0 \
--delete-target-dir \
--fields-terminated-by '\t' \
--hive-import \
--hive-overwrite \
--hive-table qf24.sq1

7、增量导入

append:

sqoop import --connect jdbc:mysql://hadoop01:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password 123456 \
--table user \
-m 1 \
--incremental append \
--check-column id \
--last-value 0 \
--target-dir hdfs://hadoop01:9000/sqooptest/mysql2hdfs

lastmodified(使用时间戳):

在这里插入代码片

8、添加到sqoop job

sqoop job:

   --create <job-id>            Create a new saved job--delete <job-id>            Delete a saved job--exec <job-id>              Run a saved job--help                       Print usage instructions--list                       List saved jobs--meta-connect <jdbc-uri>    Specify JDBC connect string for themetastore--show <job-id>              Show the parameters for a saved job--verbose                    Print more information while workingsqoop job --list  查看sqoop job列表

添加job:

sqoop job --create myjob --  import --connect jdbc:mysql://hadoop01:3306/test \
--driver com.mysql.jdbc.Driver \
--username root --password 123456 \
--table user \
-m 1 \
--incremental append \
--check-column id \
--last-value 0 \
--target-dir hdfs://hadoop01:9000/sqooptest/mysql2hdfs

执行job

sqoop job --exec myjob

如下两个使用于有主键的表的数据更新:

--update-key
--update-mode allowinsert

二、datax

注:需要提前建好目录和表
运行:python /home/hadoop/app/datax/datax/bin/datax.py mysql2hive.json

1、mysql导入hdfs

vi mysql2hdfs.json

{"job": {"content": [{"reader": {"name": "mysqlreader", "parameter": {"column": ["user_id","user_name","trade_time"], "connection": [{"jdbcUrl": ["jdbc:mysql://hadoop02:3306/test"], "table": ["user"]}], "username": "root", "password": "123456"}}, "writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://hadoop02:9000","fileType": "orc","path": "/datax/mysql2hdfs/userorc","fileName": "m2huser","column": [{"name": "col1","type": "BIGINT"},{"name": "col2","type": "STRING"},{"name": "col3","type": "STRING"}],"writeMode": "append","fieldDelimiter": "\t","compress":"NONE"}}}], "setting": {"speed": {"channel": "1"}}}
}

2、hdfs导入mysql

mysql的数值型(int,bigint、long等),在hdfs导入mysql是type为LONG
vi hdfs2mysql.json:

{"job": {"content": [{"reader": {"name": "hdfsreader","parameter": {"path": "/datax/mysql2hdfs/userorc/*","defaultFS": "hdfs://hadoop02:9000","column": [ {"index": "0","type": "LONG"},{"index": "1","type": "STRING"},{"index": "2","type": "STRING"}],"fileType": "orc","encoding": "UTF-8","fieldDelimiter": "\t"}},"writer": {"name": "mysqlwriter", "parameter": {"column": ["user_id","user_name","trade_time"], "connection": [{"jdbcUrl": "jdbc:mysql://hadoop01:3306/test", "table": ["u2"]}], "password": "123456", "username": "root"}}}], "setting": {"speed": {"channel": "1"}}}
}

3、mysql导入hive

vi hdfs2hive.json:

{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"column": ["user_id","user_name","trade_time"], "connection": [{"jdbcUrl": ["jdbc:mysql://hadoop01:3306/test"],"table": ["u2"]}], "username": "root","password": "123456"}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://hadoop02:9000","fileType": "text","path": "/user/hive/warehouse/qf24.db/dataxhive1","fileName": "user","column": [{"name": "col1","type": "BIGINT"},{"name": "col2","type": "STRING"},{"name": "col3","type": "STRING"}],"writeMode": "append","fieldDelimiter": "\t"}}}], "setting": {"speed": {"channel": "1"}}}
}

4、hive导入mysql

sqoop、datax几种导入导出相关推荐

  1. 利用sqoop将hive数据导入导出数据到mysql

    http://niuzhenxin.iteye.com/blog/1726414 运行环境  centos 5.6   hadoop  hive sqoop是让hadoop技术支持的clouder公司 ...

  2. 几种导入导出mysql数据库的方法(建议收藏)

    目录: 通过命令导出.导入mysql数据库 通过管理软件navicat 通过phpmyadmin (一)通过命令导出.导入mysql数据库 1.导出命令 (1)导出数据库 mysqldump -uro ...

  3. Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)(十八)...

    把MySQL里的数据导入到HDFS 1.使用MySQL工具手工导入 把MySQL的导出数据导入到HDFS的最简单方法就是,使用命令行工具和MySQL语句. 为了导出整个数据表或整个数据库的内容,MyS ...

  4. Sqoop MySQL hive 数据库导入导出数据

    1.导入(从mysql导入hive) 场景:从一个mysql数据库的表中导入数据到hive表中 sqoop import \ --connect "jdbc:mysql://ip:3306/ ...

  5. DB2数据导入导出的小结

    Db2的数据迁移,最常用的就是导入导出功能,而导入导出的命令貌似简单,实则内含玄机千变万化,这儿就工作中常用到的命令,小结了一下. 一.数据导入导出基础的格式知识 DEL:界定的ASCII文件,行分隔 ...

  6. DB2 导入导出总结

    2011-4-25 来源:华军资讯整理 Db2 的数据迁移,最常用的就是导入导出功能,而导入导出的命令貌似简单,实则内含玄机,千变万化,稍不留神,则错误百出,这儿就工作中常用到的命令,总结了一下,分享 ...

  7. mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路劲的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...

  8. MySql数据导入导出及解决ERROR2006(MySQL server has gone away)错误

    mysql数据导入导出方法总结 MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路劲的书写方式不同而已) 1.创建 ...

  9. ES6 导入导出总结

    1.nodejs - 采用CommonJs规范 规范要求导出和导入使用关键字: 导出:   module.exports  或 exports   (导出的就是对象以及里面的key和value值) m ...

最新文章

  1. 解析json获取天气信息(中央气象台)
  2. 1.2 线性回归与梯度下降-机器学习笔记-斯坦福吴恩达教授
  3. 喜报丨神策数据荣获“2021 年度金屏奖大屏应用创新奖”
  4. internship weekly task update
  5. 存储过程——创建通用存储过程(七)
  6. android显示圆圈动画,Android实现3个圆圈的动画
  7. 天津科技大学计算机基础,天津科技大学大学计算机基础样卷
  8. C语言之利用,函数的命名及变量的作用域实现两个数之间的交换。
  9. vue避免重新渲染_详解强制Vue组件重新渲染的方法
  10. 会说话的狗狗本电脑版_一看就会用!Fotor 电脑版 图片后期处理详解系列教程 第一节...
  11. Module build failed (from ./node_modules/postcss-loader/src/index.js):
  12. 2021年广东开放大学期末考试方法,怎么查题,找答案
  13. redis分布式锁的复杂实现
  14. 提升办公效率——工具篇
  15. VoLTE SIP代码意义及流程图解
  16. 《操作系统教程》(第五版)费翔林等著 课后习题参考答案
  17. Unity 混音器AudioMixer使用注意
  18. 优盘在计算机上无法显示,u盘在电脑上识别不出来怎么办_u盘在电脑不显示如何修复-win7之家...
  19. C语言程序结构的特点
  20. spark-streaming从入门到精通

热门文章

  1. Angular 原理图 Schematics 学习 - 动手开发一个实际的例子
  2. SAP CRM Fiori Simulation Pipeline 设计介绍
  3. SAP Spartacus pageSlot一览
  4. C4C微信集成 - agent在C4C系统回复,微信用户在微信端直接收到
  5. create CRM task via code
  6. 基于WebSocket的手机应用和浏览器应用的数据传递
  7. Cloud for Customer workCenterLoader
  8. SAP Marketing Cloud的动态dynamic customer profile
  9. F4 value help and HANA native SQL
  10. SAPSQL_IN_ITAB_ILLEGAL_OPTION dump