记一次Sqoop抽数据异常
1. 环境
| Hadoop | Sqoop | awsEMR |
| 2.8.5 | 1.4.7 | 5.26.0 |
2.错误描述
在使用Sqoop抽取MySQL数据时,使用hdfs作为缓存,s3作为hive的存储地址,命令如下。
sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" -Dmapreduce.job.queuename=default \
--connect jdbc:mysql://${host}:${port}/${db}?tinyInt1isBit=false\&zeroDateTimeBehavior=convertToNull \
--username ${user} \
--password ${password} \
--hive-import \
--hive-overwrite \
--hive-database ${hiveDb} \
--hive-table ${hiveTable} \
--fields-terminated-by '\0x01' \
--lines-terminated-by '\n' \
--null-string '\\N' \
--null-non-string '\\N' \
--hive-partition-key pt \
--hive-partition-value ${pt} \
--hive-delims-replacement ' ' \
--target-dir hdfs:///vova-bd-prod/sqoop-tmp/${db}/${table} \
--query "select ${hive_columns} from ${table} where \$CONDITIONS" \
--split-by ${split_id} -m ${mapers}
抽取到hdfs之后,需要distcp到s3,这时发生错误如下:
FAILED Container [pid=3951,containerID=container_1567749318934_0017_01_000010] is running beyond physical memory limits. Current usage: 1.1 GB of 1 GB physical memory used; 8.1 GB of 5 GB virtual memory used. Killing container.
3.原因以及解决方法
使用sqoop导入数据,distcp使用hadoop-discp-*.jar的jar包,因为这个jar包内置"distcp-default.xml"配置文件,jar包路径:/usr/lib/hadoop/hadoop-distcp-2.8.5-amzn-4.jar。
里面的配置代码如下,它会覆盖'mapred-site.xml' and 'yarn-site.xml'的map、reduce内存配置。
################
<property>
<name>mapred.job.map.memory.mb</name>
<value>1024</value>
</property> <property>
<name>mapred.job.reduce.memory.mb</name>
<value>1024</value>
</property>
################
所以我们在Sqoop后边加上这个参数就可以了,
sqoop import "-Dorg.apache.sqoop.splitter.allow_text_splitter=true" -Dmapred.job.map.memory.mb=4096 -Dmapred.job.reduce.memory.mb=4096
记一次Sqoop抽数据异常的更多相关文章
- Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist
Sqoop 抽数报错: java.io.FileNotFoundException: File does not exist 一.错误详情 2019-10-17 20:04:49,080 INFO [ ...
- 解决sqoop抽数报错:IO Error: Connection reset
遇到的问题:进行sqoop抽数时,虽然能成功执行,但是过程中有很多这样的信息 19/11/20 15:17:11 INFO mapreduce.Job: Task Id : attempt_15737 ...
- 记一次tomcat线程创建异常调优:unable to create new native thread
测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...
- 记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject
原因:Jetty会导致这个问题,Tomcat可以正常启动 一.异常产生现象 使用json-lib转换实体类/字符串,跑单元测试没问题,但是启动jetty后调用JSONArray.fromObjec ...
- 记一次sqoop同步到mysql
工作中需要用到将hive的数据导一份到mysql中,需求是这样的:hive每天会产生一份用户标签(tag)发生变化的结果表user_tag,这份结果同步到mysql中,并且保持一份全量表,存储当前用户 ...
- 记一次Dubbo服务注册异常
公司项目重构,把dubbo版本从2.5.8升级为2.6.2.升级后在本地运行一点问题都没有:可是通过公司自研的发布系统将项目发布到测试环境的linux服务器下面后,出现了dubbo服务 ...
- 记一次kubernetes集群异常: kubelet连接apiserver超时
Background kubernetes是master-slave结构,master node是集群的大脑, 当master node发生故障时整个集群都"out of control&q ...
- 记一次java.lang.NoClassDefFoundError异常
前阵子做了个评论过滤敏感词的功能,本地测试没有任何问题,然后就部署到线上服务器,通知相关人员线上测试.大约过了十来天,那货和我说接口出问题了,当时一脸懵逼,用了十来天突然出问题了???好吧,出问题了咱 ...
- 记一次SpringContextHolder.getBean出现异常NoClassDefFoundError: Could not initialize class
代码如下: public class TestUtils { private static UserDao logDao = SpringContextHolder.getBean(UserDao.c ...
随机推荐
- learning armbian steps(6) ----- armbian 源码分析(一)
为了深入学习armbian,前面已经学习了如何手动构建arm ubuntu rootfs. 由于armbian官方的文档比较的匮乏,所以最终还是决定通过其编译的过程来深入地学习. 为了快速度深入地学习 ...
- IntelliJ IDEA 创建 Git 分支并且 Push 到远程
在 IntelliJ 的右下角,你可以看到当前的 Git 分支,然后你可以单击这个分支后,在弹出的界面的最上方有一个新建分支的选项. 然后再弹出的界面中,输入你要创建的分支名称后回车输入. 然后从项目 ...
- Poj 2887 Big String(块状数组)
Big String Time Limit: 1000MS Memory Limit: 131072K Description You are given a string and supposed ...
- SQLAlchemy框架
Python 的 ORM 框架 SQLAlchemy 有些同学已经听说过这个框架的大名了,也听说了 SQLAlchemy 没有 Django 的 Models 好用 我在这里官宣辟谣一下啊, Mode ...
- Java中二维数组
二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组), 可以看做是一张表格. 初始化: 动态初始化 int[ ][ ] arr = new int[3][2]; 定义了一个二维数组,其中 ...
- centos 安装mariadb 替代mysql
yum install mariadb-server mariadb systemctl start mariadbmysql -uroot -p默认密码mysql -uroot -pmysql_se ...
- Mac下mysql服务端密码重置及环境配置
一 停止mysql服务 关闭MySQL服务的操作: 苹果->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop mysql server) 二 进入终端,命 ...
- 微信小程序入门---记事本增---删
第一.如何获取input框的值(form表单提交除外) bindinput事件 <input type='text' placeholder="请输入内容" placehol ...
- Django运行项目时候出现DisallowedHost at / Invalid HTTP_HOST header:
web端错误现象: DisallowedHost at / Invalid HTTP_HOST header: 'ip:8000'. You may need to add u'ip' to ALLO ...
- java代码实现简体繁体转换
汉字分为简体和繁体字,这是众所周知的,虽然繁体字中国大陆这边用的并不会太多,但时不时的还是会使用到.那么,如何做到简体字和繁体字的转换呢?其实很简单,这里附上一个java版本的简繁体转换,用网上找的接 ...