hadoop—java运行时环境内存不足,无法继续运行hbase

xyhw6mcr  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(413)

我已经阅读了所有与类似问题相关的答案,但是对于我的java代码或hbase配置中的问题,我无法得出结论。所以我再次发布这个问题。我在hbase中遇到了以下错误。我有3个用于hadoop集群的vm。
主节点-3 gb ram
数据节点1-7 gb ram
数据节点2-7 gb ram
我的java程序在hbase主节点上运行,这个worker将数据插入hbase表,大约在插入100k条记录之后,我得到以下错误,java程序和hmaster都停止了工作。
java程序错误:-
openjdk 64位服务器vm警告:信息:os::commit\ u内存(0x00007fe05185c000,12288,0)失败;error='cannot allocate memory'(错误号=12)
内存不足,java运行时环境无法继续。本机内存分配(malloc)无法为提交保留内存分配12288字节。
包含详细信息的错误报告文件另存为:
/var/data/hadoopoperations/javaoperations/hs\u err\u pid41813.log
hs\u err\u pid41813.log的日志
处理器:1
供应商id:AuthenticateMD
cpu系列:16
型号:8
型号名称:amd opteron(tm)处理器4171 he
步进:1
微码:0xFFFFFF
cpu兆赫:2094.643
缓存大小:512 kb
物理id:0
兄弟姐妹:2
核心id:1
cpu核数:2
apicid:1
初始apicid:1
fpu:是的
fpu异常:是
C液位:5
wp:是的
标志:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr\u opt lm 3dnowext 3dnow rep\u good nopl extd\u apicid pni cx16 popcnt hypervisor lahf\u lm cmp\u legacy cr8\u legacy abm sse4a dislocesse 3dnowext osvw vmmcall
错误:tlb\u mmatch apic\u c1e fxsave\u leak
博戈米普斯:4205.20
tlb大小:1024 4k页
clflush大小:64
缓存对齐:64
地址大小:42位物理,48位虚拟电源管理:
内存:4k页,物理3523172k(135048k可用),交换0k(0k可用)
vm\u info:openjdk 64位服务器vm(24.79-b02),用于linux-amd64 jre(1.7.0\u 79-b14),于2015年7月24日08:15:54由“buildd”和gcc 4.8.2构建
时间:2015年9月4日星期五06:43:48
运行时间:63099秒
hbase-site.xml配置

<configuration>
    <property>
            <name>hbase.rootdir</name>
            <value>hdfs://master:9000/hbase</value>
    </property> 

    <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
    </property>

    <property>
            <name>hbase.zookeeper.property.clientPort</name>
            <value>2181</value> 
    </property>

    <property>
            <name>hbase.zookeeper.quorum</name><value>master,datanodeone,datanodetwo</value>
    </property>

    <property>
            <name>hbase.client.scanner.caching</name>
            <value>10000</value>
    </property>

    <property>
            <name>hfile.block.cache.size</name>
            <value>0.6</value> 
    </property> 

    <property>
            <name>hbase.regionserver.global.memstore.size</name>
            <value>0.2</value> 
    </property>         
 </configuration>
ryhaxcpt

ryhaxcpt1#

创建2g交换文件

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1MiB
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
``` `sudo nano /etc/fstab` 添加此行: `/swapfile swap swap sw 0 0` 跑 `swapon --show` 以及 `free -h` 验证
vptzau2j

vptzau2j2#

您几乎没有可用内存,也没有交换。

physical 3523172k(135048k free), swap 0k(0k free)

最简单的解决方案是添加一些交换空间,我建议最少4 gb,最多16 gb。

相关问题