文档章节

CDH的坑之Sqoop导出数据到MySQL

星汉
 星汉
发布于 07/23 16:03
字数 1475
阅读 352
收藏 8

CDH的坑之Sqoop导出数据到MySQL

最近使用Sqoop从Hive导出数据到MySQL中,出现了一系列的问题,下面将这个问题记录一下,避免再度踩坑!

导出语句

sqoop export --connect jdbc:mysql://192.168.1.78:3306/data \
--username root \
-P \
--export-dir '/user/hive/warehouse/personas.db/user_attribute/000000_0' \
--table dm_user_attribute \
--input-fields-terminated-by '|' \
--input-null-non-string '\\N' \
--input-null-string '\\N' \
--lines-terminated-by '\n' \
-m 1

运行环境

centOS7+CDH5.7.2+其中集成的Sqoop

错误信息

以下是我输入命令到服务器中,控制台打印的信息。

Warning: /opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.2.p0.18/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
18/07/23 11:54:45 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.7.2
18/07/23 11:54:45 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
18/07/23 11:54:45 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
18/07/23 11:54:45 INFO tool.CodeGenTool: Beginning code generation
18/07/23 11:54:45 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `dm_user_attribute` AS t LIMIT 1
18/07/23 11:54:45 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `dm_user_attribute` AS t LIMIT 1
18/07/23 11:54:45 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce
Note: /tmp/sqoop-root/compile/2322b82e8ef7190a66357528d5fbddae/dm_user_attribute.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
18/07/23 11:54:47 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-root/compile/2322b82e8ef7190a66357528d5fbddae/dm_user_attribute.jar
18/07/23 11:54:47 INFO mapreduce.ExportJobBase: Beginning export of dm_user_attribute
18/07/23 11:54:47 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar
18/07/23 11:54:47 INFO Configuration.deprecation: mapred.map.max.attempts is deprecated. Instead, use mapreduce.map.maxattempts
18/07/23 11:54:48 INFO Configuration.deprecation: mapred.reduce.tasks.speculative.execution is deprecated. Instead, use mapreduce.reduce.speculative
18/07/23 11:54:48 INFO Configuration.deprecation: mapred.map.tasks.speculative.execution is deprecated. Instead, use mapreduce.map.speculative
18/07/23 11:54:48 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
18/07/23 11:54:48 INFO client.RMProxy: Connecting to ResourceManager at 192.168.1.152:8032
18/07/23 11:54:49 INFO input.FileInputFormat: Total input paths to process : 1
18/07/23 11:54:49 INFO input.FileInputFormat: Total input paths to process : 1
18/07/23 11:54:49 INFO mapreduce.JobSubmitter: number of splits:1
18/07/23 11:54:49 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1528444677205_1338
18/07/23 11:54:50 INFO impl.YarnClientImpl: Submitted application application_1528444677205_1338
18/07/23 11:54:50 INFO mapreduce.Job: The url to track the job: http://daojia02:8088/proxy/application_1528444677205_1338/
18/07/23 11:54:50 INFO mapreduce.Job: Running job: job_1528444677205_1338
18/07/23 11:54:55 INFO mapreduce.Job: Job job_1528444677205_1338 running in uber mode : false
18/07/23 11:54:55 INFO mapreduce.Job:  map 0% reduce 0%
18/07/23 11:55:00 INFO mapreduce.Job:  map 100% reduce 0%
18/07/23 11:55:01 INFO mapreduce.Job: Job job_1528444677205_1338 failed with state FAILED due to: Task failed task_1528444677205_1338_m_000000
Job failed as tasks failed. failedMaps:1 failedReduces:0

18/07/23 11:55:01 INFO mapreduce.Job: Counters: 8
	Job Counters 
		Failed map tasks=1
		Launched map tasks=1
		Data-local map tasks=1
		Total time spent by all maps in occupied slots (ms)=2855
		Total time spent by all reduces in occupied slots (ms)=0
		Total time spent by all map tasks (ms)=2855
		Total vcore-seconds taken by all map tasks=2855
		Total megabyte-seconds taken by all map tasks=2923520
18/07/23 11:55:01 WARN mapreduce.Counters: Group FileSystemCounters is deprecated. Use org.apache.hadoop.mapreduce.FileSystemCounter instead
18/07/23 11:55:01 INFO mapreduce.ExportJobBase: Transferred 0 bytes in 13.576 seconds (0 bytes/sec)
18/07/23 11:55:01 WARN mapreduce.Counters: Group org.apache.hadoop.mapred.Task$Counter is deprecated. Use org.apache.hadoop.mapreduce.TaskCounter instead
18/07/23 11:55:01 INFO mapreduce.ExportJobBase: Exported 0 records.
18/07/23 11:55:01 ERROR tool.ExportTool: Error during export: Export job failed!

当我看到这个控制台打印的信息时,犹如一万只草泥马狂奔而过,这是什么鬼?只告诉你导出失败,任务中断了,错误信息呢?你看到是不是也是一样的感觉呢?这该如何解决?从何入手呢?

Sqoop的错误日志

经过两天的各种搞头,最后终于知道了如何解决这个问题,这个问题不是具体的问题,但是想要知道具体的错误信息,在控制台是看不到的,只能到CDH的web管理界面去看,如下就告诉大家CDH的管理界面怎么找到Sqoop的这个任务日志。

第一步

如下图:点击YAEN进入YARN的详情界面。有人会问,为什么不是Sqoop的界面,Sqoop最终会转化为MR进行任务的执行,所以这里要看Sqoop的任务执行情况,还是要到YARN的详情界面去看。

第二步

如下图为YARN的详情界面,需要点击应用程序目录,进入任务的执行结果列表中,可以看到各个执行的任务,以及执行的结果,下图明显看到有一个错误。根据如下的操作进入下一个页面。

第三步

这个界面展示了单个任务的还算详细的任务信息,不过这不是我们最终要找的界面,看到如下图框起来的logs超链接字段,点击进入下一个页面。

第四步

看到这个界面,好像是找到了日志的界面,对不起,还没有,向下拉,你会看到如图的字样,这个页面只是展示了任务执行的流程,具体的错误信息还在另外一个页面。点击如图here超链接的字样,进入下一个页面。

第五步

经过前面的几个页面,我们终于进入了我们想要看到的页面,我们亲爱的错误页面,在这里,就可以看到这个任务的错误原因,这样就可以根据错误信息解决问题了。这个页面展示的错误信息的解决方法,网上基本都有,可以根据错误信息自行查找了。

本人这里展现的问题,是因为Hive和MySQL的时间字段不匹配导致的,这里更改MySQL或者Hive的时间字段类型,让两边的类型保持一致,即可解决问题。

真的没想到,CDH会这么坑,这个问题,整整折磨了我两天,不过还好,最终还是解决了,以后再遇到之后,就会可以立即解决了。

 

 

© 著作权归作者所有

共有 人打赏支持
星汉

星汉

粉丝 31
博文 89
码字总数 271872
作品 0
朝阳
程序员
sqoop的安装与使用,sqoop安装使用

sqoop的安装与使用,sqoop安装使用 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传...

Zero零_度
2016/06/06
426
0
hue oozie再踩坑,workflow,coordinator终于都可以跑了

前边总结 了些hue下sqoop1,oozie,hbase的一些坑,今日项目到期,一定要搞定oozie工作流和定时调度执行,以是skr skr skr .... 1.前边 的sqoop mysql 导入出的坑已都踩过了,后来发现除了cdh...

hblt-j
09/27
0
0
[Hadoop] Sqoop安装过程详解

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系...

长平狐
2013/06/03
94
0
[Hadoop] Sqoop安装过程详解

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系...

长平狐
2013/06/03
2.9K
0
oozie使用中的一些小结(持续完善)

0 关于oozie 寻找包寻找位置原则: oozie在运行的时候 只会去两个地方寻找自己需要的lib eg: /user/root/examples/apps/fork-merge的workflow下有 job.properties lib workflow.xml三个目录 ...

Zero零_度
2016/09/23
12
0

没有更多内容

加载失败,请刷新页面

加载更多

sed命令扩展使用操作

打印某行到某行之间的内容 假若文件test.txt的内容是: ertfff**[abcfd]123324444[rty]**fgfgf 怎么能截取 [abcfd]123324444[rty] 这一部分出来呢? 操作命令: 知道开始行和结...

野雪球
12分钟前
0
0
JVM内存笔记

Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系。当线程本地存储、缓 冲区分配、同步对象、栈、程序计数器等准备好以后,就会创建一个操作系统原生线程。 Java 线程结束,原...

凌渡
18分钟前
0
0
284. Peeking Iterator

Description Tag: Design Difficulties: Medium Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the pee......

52iSilence7
21分钟前
0
0
防止快速重复点击的两种思维

防止重复执行的两种思维 场景 下单时,提交按钮,因为网络卡顿或者手快重复点击,导致重复提交订单; 微博,更新个人状态或发表评论时,快速多次点击[发送]按钮,导致相同的信息发送多次. 解决思路 ...

黄威
46分钟前
0
0
在windows环境下使用Virtualbox虚拟Debian系统来运行Docker

标题绕口。 我之前一直使用 Virtualbox 和 homestead 来运行我的 PHP 开发环境。最近决心开始尝试 DevOps,使得开发、部署容器化,来化解人为操作失误和环境不兼容等问题造成的各种损失。就打...

zgldh
48分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部