首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java运行时环境没有足够的内存继续hbase

Java运行时环境没有足够的内存继续hbase
EN

Stack Overflow用户
提问于 2015-09-04 08:54:52
回答 2查看 8.8K关注 0票数 3

我已经看过了与类似问题相关的所有答案,但我无法得出结论,这个问题在我的Java代码或Hbase配置中。所以我再发一次这个问题。我在Hbase中得到了低音误差。我有3个用于Hadoop集群的VM。

主节点-3GB内存

数据节点1-7 GB内存

数据节点2-7 GB内存

我的Java程序运行在Hbase主节点上,这个工作人员将数据插入到Hbase表中,大约在插入100 k记录之后,我得到了以下错误,Java程序和HMaster都停止了工作。

Java程序错误:-

OpenJDK 64位服务器VM警告: INFO: os::commit_memory(0x00007fe05185c000,12288,0)失败;os::commit_memory=‘无法分配内存’(errno=12) Java运行时环境没有足够的内存继续运行。本机内存分配(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 微码:0 0xffffffff cpu MHz : 2094.643 缓存大小: 512 KB 物理id :0 兄弟姐妹:2 核心编号:1 cpu核心:2 顶:1 初始顶点:1 fpu :是的 fpu_exception :是的 cpuid级别:5 wp :是的 标志: fpu vme de pse tsc mce mce cx8 apic pge mca cmov pat pse36 cl刷新mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3 3dnowext 3 3dnow rep_good nopl extd_apicid pni cx16 popcnt管理程序lahf_lm cmp_legacy cr8_legacy abm sse4a失调 臭虫: tlb_mmatch apic_c1e fxsave_leak 博戈米斯: 4205.20 TLB大小:10244K页 克拉平号: 64 cache_alignment : 64 地址大小: 42位物理,48位虚拟电源管理: 内存: 4k页,物理3523172k(135048k免费),交换0k(免费) vm_info: OpenJDK 64位服务器VM (24.79-b02),用于LinuxAMD64JRE (1.7.0_79-b14),建于2015年7月24日08:15:54,由gcc 4.8.2与"buildd“一起构建 时间:星期五9月4日06:43:48 2015 运行时间: 63099秒

hbase-site.xml配置

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-04 09:13:00

你几乎没有空闲内存,也没有交换。

代码语言:javascript
复制
physical 3523172k(135048k free), swap 0k(0k free)

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

票数 5
EN

Stack Overflow用户

发布于 2020-04-03 01:14:08

创建2G的交换文件

代码语言:javascript
复制
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 --showfree -h来验证

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32393981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档