分享

hbase插入数据,出现java.lang.OutOfMemoryError

w123aw 发表于 2014-5-28 22:23:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 28923
往hbase循环插入数据时,出现:java.lang.OutOfMemoryError: unable to create new native thread


已有(6)人评论

跳转到指定楼层
hyj 发表于 2014-5-28 22:24:09
内存溢出,加大JVM、及时清空缓存、使用线程池等等
回复

使用道具 举报

hadoop小象 发表于 2014-5-29 10:24:36
hyj 发表于 2014-5-28 22:24
内存溢出,加大JVM、及时清空缓存、使用线程池等等

具体怎么做呀
回复

使用道具 举报

w123aw 发表于 2014-5-29 12:49:50

JAVA虚拟机内存容量要根据你机器的实际内存容量来分配的,如果你用Eclipse来处理的话,可以尝试修改Eclipse配置设置,即eclipse.ini配置文件:Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx256m,将Xmx改为512或者更大,如果改了过后,打不开Eclipse的话,则说明系统内存不够
hbase好像也有这方面的参数,正在查找中,如果你找到了,也告诉我一下啊

回复

使用道具 举报

hadoop小象 发表于 2014-5-29 13:26:28
w123aw 发表于 2014-5-29 12:49
JAVA虚拟机内存容量要根据你机器的实际内存容量来分配的,如果你用Eclipse来处理的话,可以尝试修改Eclip ...

及时清空缓存,线程池如何做
回复

使用道具 举报

fanbells 发表于 2014-5-29 19:07:10
本帖最后由 fanbells 于 2014-5-29 19:08 编辑

1、编辑 /etc/security/limits.conf,添加
  1. hadoop hard 32000
  2. hadoop soft 32000
复制代码
2、编辑/etc/pam.d/login,添加
  1. session    required    pam_limits.so
复制代码
3、重新登录后,使用ulimit -u命令进行查看
4、重新启动hdfs和hbase
回复

使用道具 举报

howtodown 发表于 2014-5-29 21:02:55
hadoop小象 发表于 2014-5-29 13:26
及时清空缓存,线程池如何做
对于线程池,你可以看看这个:
JAVA线程池管理及分布式HADOOP调度框架搭建


临时目录:是你配置的,比如hbase的临时目录如下:如同我们的浏览器也有缓存目录一样。hbase的临时目录如下:
hbase.tmp.dir
本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清楚)     
默认: /tmp/hbase-${user.name}
更多配置项说明可以参考
HBase 默认配置说明(收藏版)


回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条