把数据从关系型数据库导入到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导入数据相关推荐

  1. sqoop动态分区导入mysql,sqoop 导入数据到hive分区表(外表,内表) 指定分区 指定数据库 指定表...

    sqoop 导入数据到hive 1.1.导入数据到hive分区表(内表),指定分区 创建hive分区表 –hive-database 指定数据库 –table 指定表 –hive-overwrite ...

  2. sqoop导入数据常见问题解决方法

    sqoop导入数据常见问题解决方法 参考文章: (1)sqoop导入数据常见问题解决方法 (2)https://www.cnblogs.com/chaojibaidu/p/11071132.html ...

  3. sqoop导入数据(保持一致性)--staging-table

    sqoop导入数据(保持一致性)–staging-table sqoop import参数 –query "select XXXXX and $CONDITIONS " 按条件导入 ...

  4. Sqoop导入数据--split by 和 --m(大于1)配合使用

    Sqoop导入数据–split by 和 --m(大于1)配合使用 split-by 根据不同的参数类型有不同的切分方法: 如int型,Sqoop会取最大和最小split-by字段值,然后根据传入的n ...

  5. Sqoop导入数据发生数据倾斜问题 及更好解决

    Sqoop导入数据发生数据倾斜问题 及更好解决 一:问题 在生产环境中,由于数据是庞大的,且是复杂的 Sqoop抽数使用单实例报内存溢出以及抽数时间过长,决定采用sqoop的多实例并行抽数 官网:ht ...

  6. Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据

    Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据 一.需求描述 在使用postman调试接口时,若遇到内网的环境,无法通过账户同步数据: ...

  7. oracle11g 使用数据泵导出导入数据

    oracle11g 使用数据泵导出导入数据 终于搞定了 快写个笔记 记录下. 删除用户的时候提示已经登录了不能删除,这个需要把登录的session结束掉. select username,sid,se ...

  8. oracle impdp导入full,使用数据泵impdp导入数据

    前一些测试里面,通过expdp导出了各种数据库表.模式.表空间以及全库. 在这里,我们就通过之前导出来的逻辑备份文件,使用impdp工具把导出的文件 逆向导入数据库里面. ----使用数据泵impdp ...

  9. Sqoop 导入数据到hdfs和hive总结

    使用帮助 Sqoop help 查看所有的sqoop的帮助 Sqoop help import 查看import命令的帮助 Eg: sqoop导入到HDFS的一个简单示例: sqoop import ...

最新文章

  1. 中setting怎么配置_maven的安装与配置(保姆级教学)
  2. numpy 数组 填充 0、1和各种值
  3. [mysql] MySQL Order By Rand()效率【转载】
  4. datetime 索引_date类型和varchar类型在查询索引效率上比较
  5. 异常检测——无监督、高斯分布模型,需要带标记的样本数据,基本假设:特征符合高斯分布...
  6. 在Global Object Services (GOS) 中加入自定义项目
  7. ITK:添加点和边到网格
  8. java将xml中的标签名称转为小写_深入学习Java Web(七): JSTL标签库
  9. linux下A免密码登录B
  10. SAS在金融中的应用六
  11. 全新OpenMMLab邀你入伙 共创AI开源世界
  12. if条件的默认转换规则:
  13. 主题:jsoup使用
  14. 学土木结构考计算机等级考试,请教各位,我是学土木的,考计算机二级的哪个比较好?...
  15. 计算机科学与技术实训内容,计算机科学与技术专业实训大纲.doc
  16. 高音质无线蓝牙耳机推荐,2020游戏低延迟蓝牙耳机分享
  17. Aspose for Maven 使用
  18. soap报文解析 php,soap 返回报文解析
  19. sheng的学习笔记-mysql框架原理
  20. 智能窗帘系统c语言程序,基于51单片机的智能窗帘控制系统设计与实现毕业论文.doc...

热门文章

  1. linux release 版本的区别,Linux 查看版本信息
  2. matlab中通过mltbx文件安装工具箱流程
  3. 中小企业有必要使用财务管理软件吗
  4. Android-Kotlin-印章类,AnyChat音视频互动开发平台
  5. 上学吧视频超市是什么?主要是干什么的?
  6. 同花顺去年实现净利润6.3亿元 同比减少12.64%
  7. UE4 预算上的纹理流送池(texture streaming poor over)报警解决方法
  8. carplay逆向第四步操作:上层APP,通过NCM,实现相关网络协议
  9. go猫粮代理公司百加世:每个生命 都值得被尊重
  10. IEDA使用之debug技巧(附高级玩法)