1.   想用 sqoop 增量的方式导入到 hive。运行下面的命令:

sqoop import --connect jdbc:mysql://192.168.7.159:3306/test 
--username root --password 123456
--query "select name, age, dept, update_dt from emp WHERE \$CONDITIONS"
--hive-import --hive-database default --hive-table emp_tmp
--target-dir /warehouse/tablespace/managed/hive/emp_tmp
--fields-terminated-by '\001' --incremental lastmodified
--check-column update_dt --last-value '2018-03-21' --append -m 1

错误提示: --incremental lastmodified option for hive imports is not supported

我晕, --incremental lastmodified 和 --hive-import 竟然不能同时使用。把 lastmodified 改成 append 后就可以运行了。看了 sqoop 的官方文档,append 通常用于自增的 id 列,lastmodified 用于更新的日期列,日期同样也可以比较大小啊,有点不明白为什么 lastmodified 不可以。

2. 上面命令中,如果去掉 “--hive-import --hive-database default --hive-table emp_tmp” 后,同样可以导入数据,在 hive 中运行 select * from emp_tmp 可以看到有数据,但是运行 select count(1) from emp_tmp  出来的结果是 0

3. 上面命令中 “-m” 指定有多少个 map 任务,如果任务数大于 1,则需要额外指定  --split-by <分割列>

4. 用下面的命令可以创建一个 job。

sqoop job --create emp_job --  import 
--connect jdbc:mysql://192.168.7.159:3306/test
--username root --password 123456
--query "select name, id, age, dept, update_tm from emp where \$CONDITIONS"
--target-dir /warehouse/tablespace/managed/hive/emp
--fields-terminated-by '\001' --hive-delims-replacement ' '
--null-string "" --null-non-string ""
--hive-import --hive-database default --hive-table emp
--incremental lastmodified --check-column update_tm --last-value '1980-01-01 00:00:00' --append -m 1

使用  sqoop job --exec emp_job 就可以进行一次导入了,sqoop 会自动记录上一次的更新时间,用于替换以后跑这个 job 时 last-value 的值

5. 怎么查询 sqoop 的 job 每次用到的 last-value 的值?

找到 metastore.db.script 这个文件所在的位置,打开它,搜索 incremental.last.value ,每个 job 都会对应一个。

find / -name metastore.db.script

2. 查询表中的记录时,出现 ORC split generation failed with exception: org.apache.orc.FileFormatException: Malformed ORC file 的异常

原因:HDP 的 hive 中设置了默认存储格式为 ORC, 用 sqoop 增量方式导入 emp 表时,使用的是 textfile 的格式。所以查询时就出现这个问题。很奇怪,sqoop 可以指定 avro,parquet 等格式,唯独没有 ORC 格式。

Sqoop 遇到的问题的更多相关文章

  1. sqoop:Failed to download file from http://hdp01:8080/resources//oracle-jdbc-driver.jar due to HTTP error: HTTP Error 404: Not Found

    环境:ambari2.3,centos7,sqoop1.4.6 问题描述:通过ambari安装了sqoop,又添加了oracle驱动配置,如下: 保存配置后,重启sqoop报错:http://hdp0 ...

  2. 安装sqoop

    安装sqoop 1.默认已经安装好java+hadoop 2.下载对应hadoop版本的sqoop版本 3.解压安装包 tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-a ...

  3. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  4. Oozie分布式任务的工作流——Sqoop篇

    Sqoop的使用应该是Oozie里面最常用的了,因为很多BI数据分析都是基于业务数据库来做的,因此需要把mysql或者oracle的数据导入到hdfs中再利用mapreduce或者spark进行ETL ...

  5. [大数据之Sqoop] —— Sqoop初探

    Sqoop是一款用于把关系型数据库中的数据导入到hdfs中或者hive中的工具,当然也支持把数据从hdfs或者hive导入到关系型数据库中. Sqoop也是基于Mapreduce来做的数据导入. 关于 ...

  6. [大数据之Sqoop] —— 什么是Sqoop?

    介绍 sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具.你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中:也可以把数据从hdfs中导出到关系型数据 ...

  7. Sqoop切分数据的思想概况

    Sqoop通过--split-by指定切分的字段,--m设置mapper的数量.通过这两个参数分解生成m个where子句,进行分段查询.因此sqoop的split可以理解为where子句的切分. 第一 ...

  8. sqoop数据导出导入命令

    1. 将mysql中的数据导入到hive中 sqoop import --connect jdbc:mysql://localhost:3306/sqoop --direct --username r ...

  9. Apache Sqoop - Overview——Sqoop 概述

    Apache Sqoop - Overview Apache Sqoop 概述 使用Hadoop来分析和处理数据需要将数据加载到集群中并且将它和企业生产数据库中的其他数据进行结合处理.从生产系统加载大 ...

  10. sqoop使用中的小问题

    1.数据库连接异常 执行数据导出 sqoop export --connect jdbc:mysql://192.168.208.129:3306/test --username hive --P - ...

随机推荐

  1. jQueryUI Sortable 应用Demo

    最近工作用需要设计一个自由布局的页面设计.我选了jQuery UI 的 sortable ,可以拖拽,自由排序 使用很方便,写一个demo,做个记录. 第一.单项目自由排序 下图效果 代码段: < ...

  2. ceph 创建和删除osd

    ceph 创建和删除osd 1.概述         本次主要是使用ceph-deploy工具和使用ceph的相关命令实现在主机上指定磁盘创建和删除osd,本次以主机172.16.1.96(主机名ha ...

  3. 查询cad库中,所有程序leg引用的点的id,需要预先处理点表和程序表

    select f1.pro_id,f1.pro_type, f1.code_fix_point, f1.code_type_fix_point, f1.code_fir,f2.code_icao,nv ...

  4. elastic(10) 基本查询

    # 指定index名以及type名的搜索 GET /library/books/_search?q=title:elasticsearch # 指定index名没有type名的搜索 GET /libr ...

  5. winform 如何正确的获取窗体的标题栏高度

    最近我需要知道鼠标在一个控件里的相对位置,鼠标相对于屏幕的位置我是可以知道的,所以只要得到控件相对于屏幕的位置,就可以算出鼠标相对于控件的位置了 但是发现有误差 后来经过测试是由于窗体的标题栏高度导致 ...

  6. 各大IT/IC公司offer比较&nbsp;

    1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...

  7. 【原】Coursera—Andrew Ng机器学习—编程作业 Programming Exercise 1 线性回归

    作业说明 Exercise 1,Week 2,使用Octave实现线性回归模型.数据集  ex1data1.txt ,ex1data2.txt 单变量线性回归必须实现,实现代价函数计算Computin ...

  8. codeforce452DIV2——F. Letters Removing

    题意:给一个字符串和m个操作,每次给出l,r,c,把字符串中l-r这段区间的字符为c的字符删掉,求最后的字符串.(n,m<=2e5)线段树.注意这个区间修改和普通区间修改的区别. 他们都是用树状 ...

  9. 介绍个好点的,JAVA技术群

    java技术交流,意义是以QQ群为媒介,添加一些有多年工作经验和技术的人群,为有问题的人群解答在工作中遇到的各种问题为思想,java技术交流群号161571685,创建时间为2010年,走过将近5年的 ...

  10. mybatis 框架 的简单使用

    # Global logging configuration #在开发环境下日志级别要设置成DEBUG,生产环境设置成info或error log4j.rootLogger=DEBUG, stdout ...