大数据学习——sqoop导入数据
把数据从关系型数据库导入到hadoop
启动sqoop
导入表表数据到HDFS
下面的命令用于从MySQL数据库服务器中的emp表导入HDFS。
sqoop import \ --connect jdbc:mysql://mini1:3306/userdb \ --username root \ --password 123456 \ --table emp --m 1
在/root/sqoop下执行命令,导入emp表到hdfs
./sqoop import \ --connect jdbc:mysql://mini1:3306/userdb \ --username root \ --password 123456 \ --table emp --m 1
注意执行上边的命令可能会遇到这个问题 https://www.cnblogs.com/feifeicui/p/10311076.html
查看执行结果hdfs dfs -ls /user/root
在/root/sqoop下执行命令,导入emp_add表到hdfs
./sqoop import \ --connect jdbc:mysql://mini1:3306/userdb \ --username root \ --password 123456 \ --table emp_add --m 1
执行完命令会生成 emp_add.java emp.java
把数据库的emp_conn这个表先导入到hdfs上 /user/root/emp_con这个目录下,然后将这个目录下的数据通过load形式导入到hive表中,这里还没有指明对应的hive上的表名,它会用mysql数据库的表名。
./sqoop import \ --connect jdbc:mysql://mini1:3306/userdb \ --username root \ --password 123456 \ --table emp_conn --hive-import --m 1
导入到HDFS指定目录
在导入表数据到HDFS使用Sqoop导入工具,我们可以指定目标目录。
以下是指定目标目录选项的Sqoop导入命令的语法。
--target-dir <new or exist directory in HDFS> |
下面的命令是用来导入emp_add表数据到'/queryresult'目录。
bin/sqoop import \ --connect jdbc:mysql://hdp-node-01:3306/test \ --username root \ --password root \ --target-dir /queryresult \ --table emp --m 1 |
下面的命令是用来验证 /queryresult 目录中 emp_add表导入的数据形式。
$HADOOP_HOME/bin/hadoop fs -cat /queryresult/part-m-* |
它会用逗号(,)分隔emp_add表的数据和字段。
1201, 288A, vgiri, jublee 1202, 108I, aoc, sec-bad 1203, 144Z, pgutta, hyd 1204, 78B, oldcity, sec-bad 1205, 720C, hitech, sec-bad |
导入表数据子集
我们可以导入表的使用Sqoop导入工具,"where"子句的一个子集。它执行在各自的数据库服务器相应的SQL查询,并将结果存储在HDFS的目标目录。
where子句的语法如下。
--where <condition> |
下面的命令用来导入emp_add表数据的子集。子集查询检索员工ID和地址,居住城市为:Secunderabad
bin/sqoop import \ --connect jdbc:mysql://hdp-node-01:3306/test \ --username root \ --password root \ --where "city ='sec-bad'" \ --target-dir /wherequery \ --table emp_add --m 1 |
按需导入
bin/sqoop import \ --connect jdbc:mysql://hdp-node-01:3306/test \ --username root \ --password root \ --target-dir /wherequery2 \ --query 'select id,name,deg from emp WHERE id>1207 and $CONDITIONS' \ --split-by id \ --fields-terminated-by '\t' \ --m 1 |
下面的命令用来验证数据从emp_add表导入/wherequery目录
$HADOOP_HOME/bin/hadoop fs -cat /wherequery/part-m-* |
它用逗号(,)分隔 emp_add表数据和字段。
1202, 108I, aoc, sec-bad 1204, 78B, oldcity, sec-bad 1205, 720C, hitech, sec-bad |
增量导入
增量导入是仅导入新添加的表中的行的技术。
它需要添加‘incremental’, ‘check-column’, 和 ‘last-value’选项来执行增量导入。
下面的语法用于Sqoop导入命令增量选项。
--incremental <mode> --check-column <column name> --last value <last check column value> |
假设新添加的数据转换成emp表如下:
1206, satish p, grp des, 20000, GR
下面的命令用于在EMP表执行增量导入。
bin/sqoop import \ --connect jdbc:mysql://hdp-node-01:3306/test \ --username root \ --password root \ --table emp --m 1 \ --incremental append \ --check-column id \ --last-value 1205 |
以下命令用于从emp表导入HDFS emp/ 目录的数据验证。
$ $HADOOP_HOME/bin/hadoop fs -cat /user/hadoop/emp/part-m-* 它用逗号(,)分隔 emp_add表数据和字段。 1201, gopal, manager, 50000, TP 1202, manisha, preader, 50000, TP 1203, kalil, php dev, 30000, AC 1204, prasanth, php dev, 30000, AC 1205, kranthi, admin, 20000, TP 1206, satish p, grp des, 20000, GR |
下面的命令是从表emp 用来查看修改或新添加的行
$ $HADOOP_HOME/bin/hadoop fs -cat /emp/part-m-*1 这表示新添加的行用逗号(,)分隔emp表的字段。 1206, satish p, grp des, 20000, GR |
转载于:https://www.cnblogs.com/feifeicui/p/10309017.html
大数据学习——sqoop导入数据相关推荐
- sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...
sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...
- sqoop导入数据常见问题解决方法
sqoop导入数据常见问题解决方法 参考文章: (1)sqoop导入数据常见问题解决方法 (2)https://www.cnblogs.com/chaojibaidu/p/11071132.html ...
- sqoop导入数据(保持一致性)--staging-table
sqoop导入数据(保持一致性)–staging-table sqoop import参数 –query "select XXXXX and $CONDITIONS " 按条件导入 ...
- Sqoop导入数据--split by 和 --m(大于1)配合使用
Sqoop导入数据–split by 和 --m(大于1)配合使用 split-by 根据不同的参数类型有不同的切分方法: 如int型,Sqoop会取最大和最小split-by字段值,然后根据传入的n ...
- Sqoop导入数据发生数据倾斜问题 及更好解决
Sqoop导入数据发生数据倾斜问题 及更好解决 一:问题 在生产环境中,由于数据是庞大的,且是复杂的 Sqoop抽数使用单实例报内存溢出以及抽数时间过长,决定采用sqoop的多实例并行抽数 官网:ht ...
- Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据
Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据 一.需求描述 在使用postman调试接口时,若遇到内网的环境,无法通过账户同步数据: ...
- oracle11g 使用数据泵导出导入数据
oracle11g 使用数据泵导出导入数据 终于搞定了 快写个笔记 记录下. 删除用户的时候提示已经登录了不能删除,这个需要把登录的session结束掉. select username,sid,se ...
- oracle impdp导入full,使用数据泵impdp导入数据
前一些测试里面,通过expdp导出了各种数据库表.模式.表空间以及全库. 在这里,我们就通过之前导出来的逻辑备份文件,使用impdp工具把导出的文件 逆向导入数据库里面. ----使用数据泵impdp ...
- Sqoop 导入数据到hdfs和hive总结
使用帮助 Sqoop help 查看所有的sqoop的帮助 Sqoop help import 查看import命令的帮助 Eg: sqoop导入到HDFS的一个简单示例: sqoop import ...
最新文章
- java 时间戳 与时间的转换
- Vue Router webpack
- 泛型委托Funcstring,string()
- 不停刷朋友圈的人_除夕夜!钦州人朋友圈刷爆了年夜饭,简直太丰盛了…
- Http中Get/Post请求区别
- javascript复制到黏贴板之完美兼容
- easyui的下拉框combobox在包含的iframe页面里点击不能收回解决办法
- 一条龙教程:Matlab下使用yalmip(工具箱)+cplex(求解器)
- 计算机excel表格教程高级筛选6,Excel高级筛选
- 深入了解Excel工作表中的控件
- cad安装日志文件发生错误_CAD安装问题,CAD安装时为什么显示内部发生错误急?...
- 记录一下Base64 在线编码解码
- 客户细分_客户细分初学者指南
- 我精心整理的 136 页 Excel 数据透视表 PDF 文件!【附获取方式】
- 网易云音乐登录报错 status: 400, body: { code: -460, message: ‘网络太拥挤,请稍候再试!‘ } 解决
- 【商业画布】魏朱画布
- 【面试】面试反问环节
- MacBook Pro 16寸 i9-9880H对比 桌面级CPU i7-8700
- 操作系统饥饿现象_操作系统中的饿死现象怎样理解?
- Thinkphp 5.0 购物网站
热门文章
- 右下角托盘广告消息弹窗?如邮件图标广告等通用解决方法
- 2022 年 1-6 月墨天轮最受欢迎的 25 篇原创技术文章
- 〖产品思维训练白宝书 - 产品思维认知篇④〗- 产品思维的核心要素
- java中if结构用图表示_Java语法 | if选择结构 | 创作者训练营
- html js 动画效果,原生js html5 canvas 3D云动画效果
- 记录一个在Unity中实现生成无限向上旋转楼梯效果
- python操作word题注样式_题注在论文图表编号中的使用
- [Golang数据库专题3]Golang语言操作SQLite3进行增删改查
- 爬虫批量下小姐姐壁纸
- (11)照虎画猫深入理解响应式流规范——响应式Spring的道法术器