Я использую версию Hadoop 2.6.0 и пытаюсь выполнить вставку Hive в таблицу, где я получил ошибку JAVA Heap.
Можно ли как-нибудь увеличить размер кучи в Hadoop через кластер?
заранее спасибо
Я использую версию Hadoop 2.6.0 и пытаюсь выполнить вставку Hive в таблицу, где я получил ошибку JAVA Heap.
Можно ли как-нибудь увеличить размер кучи в Hadoop через кластер?
заранее спасибо
Для этого вы можете выполнить следующее перед выполнением команды hadoop:
export HADOOP_HEAPSIZE=4096
В качестве альтернативы вы можете добиться того же, добавив следующую постоянную настройку в свой файл mapred-site.xml, этот файл находится в HADOOP_HOME/conf/ :
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx4096m</value>
</property>
Смотрите также здесь: https://www.mapr.com/blog/how-to-avoid-java-heap-space-errors-understanding-and-managing-task-attempt-memory
Будут случаи, когда любые такие операторы export
будут перезаписаны.
Какое бы значение я ни назначал любой такой переменной из командной строки, она использовала одно и то же старое свойство, определенное в файле среды.
Чтобы заставить его работать, мне пришлось отредактировать оператор: export HADOOP_HEAPSIZE="[size in MB]"
в файле hadoop-env.sh
Однако помните, что это похоже на жесткое кодирование, и его эффект будет отражаться глобально, если только он не будет переопределен.