2015-09-04 2 views
2

Я просмотрел все ответы, связанные с подобными вопросами, но мне не удалось прийти к выводу о проблеме, связанной с моей конфигурацией Java или Hbase. Поэтому я снова отправляю этот вопрос. Я получаю ошибку в Hbase. У меня есть 3 виртуальных машины для кластера Hadoop.Недостаточно памяти для Java Runtime Environment для продолжения hbase

Мастер узел - 3 GB RAM

DataNode 1 - 7 GB RAM

DataNode 2 - 7 GB RAM

программа My Java работает на Hbase Master Node, этот рабочий вставляет данные в таблицу Hbase и примерно после вставки 100 тыс. записей я получил ошибку ниже, и как Java-программа, так и HMaster перестали работать.

Программа Java Ошибка: -

OpenJDK 64-разрядного сервера VM предупреждение: INFO: ОС :: commit_memory (0x00007fe05185c000, 12288, 0) не; error = 'Не удается выделить память' (errno = 12)

Недостаточно памяти для среды выполнения Java для . При создании зарезервированной памяти не удалось выделить 12288 байтов памяти (malloc).

Файл отчета об ошибке с дополнительной информацией сохраняется как:

/var/data/HadoopOperations/javaOperations/hs_err_pid41813.log

Вход для hs_err_pid41813.log

процессор: 1

vendor_id: AuthenticAMD

процессор семейства: 16

модель: 8

название модели: AMD Opteron (TM) Процессор 4171 ОН

шаговый: 1

микрокода: 0xffffffff

процессор МГц : 2094.643

размер

кэша: 512 КБ

физический идентификатор: 0

братья: 2

ядра ID: 1

Процессорные ядра: 2

apicid: 1

начальный апицид: 1

FPU: да

fpu_exception: да

уровень CPUID: 5

сор: да

флаги: FPU VME-де-псевдоэфедрин TSC MSR пае 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 гипервизор lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetc ч osvw vmmcall

ошибки: tlb_mmatch apic_c1e fxsave_leak

BogoMips: 4205,20

TLB размер: 1024 4К страницы

Размер clflush: 64

cache_alignment: 64

адрес размеры: 42 бит физического, 48 бит виртуального управления питанием:

Память: 4k страница, физическая 3523172k (135048k бесплатно), поменять местами 0k (0k бесплатно)

vm_info: OpenJDK 64-разрядного сервера ВМ (24,79-B02) для Linux-amd64 JRE (1.7.0_79- b14), построенный на 24 июля 2015 08:15:54 от "buildd" с GCC 4.8.2

время: Сб Май 4 06:43:48 2015

истекшее время: 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> 
+0

Что такое размер кучи, выделенный для Hbase Master – Wazzzy

+0

Размер кучи по умолчанию для hbase. – 3ppps

ответ

4

Вы почти не свободной памяти и не подкачки.

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

Самое простое решение - добавить некоторое пространство подкачки, я предлагаю минимум 4 ГБ, до 16 ГБ.

+0

Я не закрыл объект htable в моей программе java, это причина для проблемы с памятью? – 3ppps

+0

Это может иметь значение, но ключевая проблема заключается в том, что у вас закончилась виртуальная память (и даже физическая память). Это может быть решение на данный момент, но если вы достигнете этого предела, я бы серьезно подумал о добавлении некоторого пространства подкачки , –

Смежные вопросы