3pp*_*pps 3 java hadoop jvm hbase
我已经完成了与类似问题相关的所有答案,但我无法得出关于我的Java代码或Hbase配置中的问题的结论.所以我再次发布这个问题.我在Hbase中遇到了轰鸣声错误.我有3个用于Hadoop集群的VM.
主节点 - 3 GB RAM
Datanode 1 - 7 GB RAM
Datanode 2 - 7 GB RAM
我的Java程序在Hbase主节点上运行,这个工作人员将数据插入到Hbase表中,大约在插入100k记录之后我得到了以下错误,Java程序和HMaster都停止了工作.
Java程序错误: -
OpenJDK 64位服务器VM警告:INFO:os :: commit_memory(0x00007fe05185c000,12288,0)失败; error ='无法分配内存'(错误= 12)
Java Runtime Environment没有足够的内存来继续.本机内存分配(malloc)无法为提交保留内存分配12288字节.
包含更多信息的错误报告文件保存为:
/var/data/HadoopOperations/javaOperations/hs_err_pid41813.log
登录hs_err_pid41813.log
处理器:1
vendor_id:AuthenticAMD
cpu家庭:16
型号:8
型号名称:AMD Opteron(tm)处理器4171 HE
踩:1
微码:0xffffffff
cpu MHz:2094.643
缓存大小:512 KB
物理id:0
兄弟姐妹:2
核心ID:1
cpu核心:2
apicid:1
最初的apicid:1
fpu:是的
fpu_exception:是的
cpuid等级:5
wp:是的
flags: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_opt lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 popcnt hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw vmmcall
错误:tlb_mmatch apic_c1e fxsave_leak
bogomips:4205.20
TLB大小:1024页4K
clflush尺寸:64
cache_alignment:64
地址大小:42位物理,48位虚拟电源管理:
内存:4k页,物理3523172k(135048k免费),交换0k(0k免费)
vm_info:OpenJDK 64位服务器虚拟机(24.79-b02)for linux-amd64 JRE(1.7.0_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>
Run Code Online (Sandbox Code Playgroud)
你几乎没有空闲内存,没有交换.
physical 3523172k(135048k free), swap 0k(0k free)
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是添加一些交换空间,我建议最小4 GB,最多16 GB.