分享

请教个从ORACLE导数据到HDFS的问题

最近领导要求学习大数据,一周内让我用hive自定义函数实现一个功能。我在虚拟机搭的伪分布式的hadoop环境,hive和sqoop环境也都弄好了。从公司数据库上抽数据时,一般的表用sqoop导入没有问题,导入一个数据量在20多万的表时过程中就一直报错

先报这个

先报这个

然后这个错,错误循环出现了三次,整个应用就失败了

然后这个错,错误循环出现了三次,整个应用就失败了
,刚接触大数据才一周不到,领导催得急,很多东西没给我时间看。导致我现在出现问题都不知道怎么调试。我猜测这个是不是yarn分配的资源不够导致的,因为执行过程中我电脑很卡,ResourceManager上
Memory Total是8GB,
Memory Used是6GB-8GB。我应该如何修改呢

已有(5)人评论

跳转到指定楼层
beqiang 发表于 2017-9-10 15:29:10
又有一个新问题,我用hive查询时动不动就失败,报如下错误 1.png hive-env.sh文件的内存配置我也按照网上说的设置了,还是不行 2.png
回复

使用道具 举报

qcbb001 发表于 2017-9-10 19:19:21
beqiang 发表于 2017-9-10 15:29
又有一个新问题,我用hive查询时动不动就失败,报如下错误hive-env.sh文件的内存配置我也按照网上说的设置 ...

第一个问题,可能是datanode挂掉了。
第二个问题:
在yarn-site.xml里面,设置下内存和jvm。同时注意,jvm小于内存。最好为70%以下。下面参数仅供参考

参数默认值描述
yarn.scheduler.minimum-allocation-mb1024每个container请求的最低jvm配置,单位m。如果请求的内存小于该值,那么会重新设置为该值。
yarn.scheduler.maximum-allocation-mb8192每个container请求的最高jvm配置,单位m。如果大于该值,会被重新设置。
yarn.nodemanager.resource.memory-mb8192每个nodemanager节点准备最高内存配置,单位m
yarn.nodemanager.vmem-pmem-ratio2.1虚拟内存和物理内存之间的比率,如果提示virtual memory limits的时候,可以将该值调大。
yarn.nodemanager.pmem-check-enabledtrue是否进行物理内存限制比较,设置为false,不会进行大小的比较
yarn.nodemanager.vmem-check-enabledfalse是否进行虚拟内存限制比较。
mapreduce.map.memory.mb1024map内存申请大小,单位m
mapreduce.reduce.memory.mb1024reduce内存申请大小,单位m
mapred.child.java.opts-Xmx200map/reduce执行参数设置,可以参数Hadoop Mapreduce Error: GC overhead limit exceeded





回复

使用道具 举报

beqiang 发表于 2017-9-10 20:35:10
qcbb001 发表于 2017-9-10 19:19
第一个问题,可能是datanode挂掉了。
第二个问题:
在yarn-site.xml里面,设置下内存和jvm。同时注意, ...

我是虚拟机分配2G内存的,针对第二个问题,您贴出来的参数的默认值貌似都挺正常的呀,那我设置应该设置成多少呢  ,就把mapred.child.java.opts调大点吗
回复

使用道具 举报

beqiang 发表于 2017-9-10 20:42:54
qcbb001 发表于 2017-9-10 19:19
第一个问题,可能是datanode挂掉了。
第二个问题:
在yarn-site.xml里面,设置下内存和jvm。同时注意, ...

我把mapred.child.java.opts调到512m了,还是报错 1.png
回复

使用道具 举报

beqiang 发表于 2017-9-11 16:52:14
第二个问题貌似解决了,原因是:在$HIVE_HOME/conf/hive-env.sh中这个参数没有加。第二个问题解决了,新手旅程下独立解决的第一个坑 1.png 2.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条