hive执行HQL提示出错Error: Java heap space
来源:互联网 发布:js 下载图片到本地 编辑:程序博客网 时间:2024/05/20 23:34
默认io.sort.mb为100.但是在hql执行的时候hive log提示Java heap space.
找了很久的原因,尝试如下:
1.在mapred-site.xml中增加mapreduce.task.io.sort.mb参数
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>10</value>
</property>
结果:无效
2.在core-site.xml中增加io.sort.mb参数,并设置为1
<property>
<name>io.sort.mb</name> #指定了排序使用的内存,大的内存可以加快 job 的处理速度。
<value>1</value>
</property>
结果:无效
3.在hive 命令行中手动设置io.sort.mb参数
hive> set io.sort.mb=10;
结果:成功(后来尝试发现<=80均不会报错,即使设置为100看虚拟内存也应该够用,很奇怪)
后来尝试在系统参数设置中直接把 io.sort.mb改掉,发现不管是该core-site.xml还是mapred-site.xml都没用,应该是在某一个默认参数设置中修改,但是还么有找到。
补充一点:我的hadoop是2.0.0-cdh4.2.1,mapreduce是hadoop2.0.0-mr1-cdh4.2.1(MRv1)
---------------------
追加一下调查结果:
HADOOP_HOME=/home/hadoop/hadoop-2.0.0-cdh4.2.1
HADOOP_MR1_HOME=/home/hadoop/hadoop-2.0.0-mr1-cdh4.2.1
在hadoop dfs配置(HADOOP_HOME/etc/hadoop)中修改io.sort.mb参数无效,但是在同一个目录的mapred-site.xml修改后,hive查看io.sort.mb生效了。也就是说,即使hadoop2.0采用MR1的时候,虽然mapreduce在启动的时候不是在这个目录,但在start-dfs.sh执行的时候也会从这个目录去读取mapreduce的参数。
解决方法:把HADOOP_HOME/etc/hadoop/mapred-site.xml mv成其他名称如 mapred-site.xml.bak。然后在HIVE_CONF_DIR中修改mapred-site.xml中对应的io.sort.mb参数即可。
相应的,在hadoop-env.sh中,把HADOOP_HEAP增大。
- hive执行HQL提示出错Error: Java heap space
- hadoop hive执行count(*)提示OutOfMemoryError: Java heap space
- HIVE 语句执行 中报错:Java heap space
- HIVE 语句执行 中报错:Java heap space
- Java heap space出错原因
- Eclipse: java heap space Error
- Flex Compile Error: Error: Java heap space
- Java heap space出错原因[转]
- eclipse编译提示“java heap space”解决方法
- Unable to execute dex: Java heap space Java heap space(导入itextpdf-5.2.1.jar出错)
- hive dynamic partitions insert java.lang.OutOfMemoryError: Java heap space
- TOMCAT出错:java.lang.OutOfMemoryError: Java heap space
- Eclipse 3.6 :java heap space编译时出错
- 编译Android出错:Unable to execute dex: Java heap space
- 编译Android出错:Unable to execute dex: Java heap space .
- 编译Android出错:Unable to execute dex: Java heap space
- 编译Android出错:Unable to execute dex: Java heap space
- 编译Android出错:Unable to execute dex: Java heap space
- sql server新建有并授权, sp_configure命令
- C和C++中的字符串操作(比较详细)
- HtmlEmail发送邮件
- android tabhost
- mysql主从设置
- hive执行HQL提示出错Error: Java heap space
- Solaris 11的自动化安装(AI server)的搭建
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
- 动态库的使用问题
- 使用u盘安装centos6.3
- ftp 自动上传脚本
- 学习笔记:C#执行字符串表达式
- XMPP服务器性能比较
- 卸载Oracle