文档章节

sqoop eval删除数据报错

JPblog
 JPblog
发布于 2016/09/18 17:10
字数 350
阅读 52
收藏 0

1. 执行

sudo -u hdfs /usr/bin/sqoop eval --connect ${jdbc_basicstat} --username ${username_basicstat} --password ${password_basicstat} -e "DELETE FROM pos_dayeffect WHERE date<20150818"

2. 报错

        Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED

3. 原因

        mysql默认的binlog_format是STATEMENT,而在READ COMMITTED或READ UNCOMMITTED隔离级别下,innodb只能使用的binlog_format是ROW。

Mysql>show variables like 'binlog_format';

        

4. 解决办法有两个

1、在mysql里在线设置binlog_format为ROW,此时binlog会增大,但是一般来说对数据复制支持的更好,建议单机高性能环境下使用。

mysql> SET SESSION binlog_format=ROW;
或者
mysql> SET GLOBAL binlog_format=ROW; (也可设置为MIXED模式)

2、在activemq.xml的jdbcPersistenceAdapter里配置transactionIsolation=“4”,即TRANSACTION_REPEATABLE_READ,此时事务更严格,会影响性能,建议在集群、强实时一致、不强调单机性能的情况下使用。

 

5. 最终方案

由于sqoop eval的---query中只能写一个sql语句,因此

    1.设置全局binlog_format为ROW

    2.执行删除语句

    3.把全局binlog改回STATEMENT

--设置binlog_format为ROW
sudo -u hdfs /usr/bin/sqoop eval --connect ${jdbc_basicstat} --username ${username_basicstat} --password ${password_basicstat} --query "set global binlog_format=ROW"

--执行删除数据的操作
sudo -u hdfs /usr/bin/sqoop eval --connect ${jdbc_basicstat} --username ${username_basicstat} --password ${password_basicstat} -e "DELETE FROM pos_dayeffect WHERE date<20150818"

--设置binlog_format为STATEMENT
sudo -u hdfs /usr/bin/sqoop eval --connect ${jdbc_basicstat} --username ${username_basicstat} --password ${password_basicstat} --query "set global binlog_format=STATEMENT"

 

© 著作权归作者所有

JPblog
粉丝 14
博文 65
码字总数 42633
作品 0
朝阳
程序员
私信 提问
HDFS Everywhere——RDBMS on HDFS

关系型数据库和HDFS的结合 ** 目录 ** 简介: – 题目: – 摘要: – 背景: 思路和计划: – 目标: 分工: 已有解决方案: – Sqoop: Solution: sqoop与loading对比: 项目简介: – 题目...

dukeke
2015/06/25
0
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE 执行报错 再次执行,报错之...

em_aaron
03/18
0
0
2、sqoop的命令使用

Sqoop中文手册 1.概述 本文档主要对SQOOP的使用进行了说明,参考内容主要来自于Cloudera SQOOP的官方文档。 2.codegen --> 将关系数据库表映射为一个Java文件、Java class类、以及相关的jar...

刘付kin
2016/12/04
29
0
Sqoop数据分析引擎安装与使用

Sqoop数据分析引擎安装与使用 ==>什么是Sqoop ? Sqoop 是一个开源的数据处理引擎,主要是通过 JDBC 为媒介, 在Hadoop(Hive)与 传统的关系型数据库(Oracle, MySQL,Postgres等)间进行数据的...

菜鸟的征程
2018/01/12
0
0
Sqoop2 vs Sqoop

以下文字内容部分译自Sqoop2 vs Sqoop: Sqoop1是一个客户端程序,用户只需在客户端添加驱动或者连接器到Sqoop中即可使用, Sqoop2是一个基于服务的模型,新一代Sqoop,所有配置以及驱动都必...

cwalet
2015/11/23
912
0

没有更多内容

加载失败,请刷新页面

加载更多

Java agentlib参数分析

Java agentlib参数分析 再用intellij idea进行远程调试的时候,具体的配置选项如下: 标红的一行显示了远程调试需要添加的虚拟机参数。这个参数到底有什么意义? 我在命令行输入java命令,输...

Mr_Tea伯奕
21分钟前
0
0
四种软件架构演进史,程序员会一种就很牛了!

如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。 ...

我最喜欢三大框架
25分钟前
3
0
如何做高可用的架构设计?

定义目标 既然我们的目标是做到高可用,那么我们就有必要先明确清楚高可用的含义,并通过拆解目标,让目标可以被量化。按照我的理解,可以将目标按照以下三条进行拆解: 1. 保持业务高稳定性...

别打我会飞
25分钟前
0
0
《错误的行为》的读后感优秀范文4000字

《错误的行为》的读后感优秀范文4000字: 第一章经济人和非理性人。本书中的经纪人是指经济学家经济模式中虚拟的理想人物,非理性人是指现实生活中实实在在存在的人,与经济人相对应的人。 ...

原创小博客
37分钟前
2
0
将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向

作者图解释很好 https://blog.csdn.net/yanxiaolx/article/details/52073221

南桥北木
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部