簡體   English   中英

Java Runtime Environment 內存不足,無法繼續hbase

[英]There is insufficient memory for the Java Runtime Environment to continue hbase

我已經瀏覽了與類似問題相關的所有答案,但我無法得出關於我的 Java 代碼或 Hbase 配置中的問題的結論。 所以我再次發布這個問題。 我在 Hbase 中遇到以下錯誤。 我有 3 個用於 Hadoop 集群的虛擬機。

主節點 - 3 GB RAM

數據節點 1 - 7 GB 內存

數據節點 2 - 7 GB 內存

我的 Java 程序在 Hbase 主節點上運行,該工作人員將數據插入到 Hbase 表中,大約在插入 10 萬條記錄后,我得到以下錯誤,Java 程序和 HMaster 都停止工作。

Java程序錯誤:-

OpenJDK 64 位服務器 VM 警告:信息:os::commit_memory(0x00007fe05185c000, 12288, 0) 失敗; 錯誤='無法分配內存' (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

微碼:0xffffffff

CPU 兆赫:2094.643

緩存大小:512 KB

物理 ID:0

兄弟姐妹:2

核心編號:1

CPU核心:2

酸:1

初始酸:1

fpu:是的

fpu_exception : 是

cpuid 級別:5

wp:是的

國旗:FPU VME德PSE TSC MSR,PAE MCE CX8 APIC月MTRR PGE MCA CMOV拍拍PSE36 CLFLUSH MMX SSE FXSR SSE2 HT系統調用NX mmxext fxsr_opt流明3dnowext 3DNOW rep_good nopl extd_apicid PNI CX16 POPCNT管理程序lahf_lm cmp_legacy cr8_legacy反導SSE4A misalignsse 3dnowprefetch osvw vmmcall

錯誤:tlb_mmatch apic_c1e fxsave_leak

博戈米普斯:4205.20

TLB 大小:1024 個 4K 頁

clflush 大小:64

緩存對齊:64

地址大小:42 位物理,48 位虛擬電源管理:

內存:4k頁,物理3523172k(135048k free),swap 0k(0k free)

vm_info:用於 linux-amd64 JRE (1.7.0_79-b14) 的 OpenJDK 64 位服務器 VM (24.79-b02),構建於 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>

你幾乎沒有空閑內存,也沒有交換區。

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

最簡單的解決方案是添加一些交換空間,我建議最少 4 GB,最多 16 GB。

創建一個 2G 的 Swap 文件

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來驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM