Javaヒープの調整
HDInsight 上のHiveで処理をしていると、以下のエラーが継続して出てしまし、処理ができない状況に陥っちゃいました。
java.lang.OutOfMemoryError: Java heap space (google検索)
そこでで、JVMのヒープ割り当てを変更して、問題回避。
(ちょっと解決方法として正解なのか、詳しく調べきれていませんが・・・)
Hiveへの問合せ文の前に、以下を付け加えることで、YARN自体やMap Reduce(もしくはtez)に割り当てされるメモリー割り当て増加でき、Java heap不足の解消がされるようです。
SET yarn.nodemanager.resource.memory-mb = 12288; SET yarn.scheduler.minimum-allocation-mb = 1024; SET yarn.scheduler.maximum-allocation-mb = 12288; SET mapreduce.map.memory.mb = 9216; SET mapreduce.map.java.opts = "-Xmx8192m"; SET mapreduce.reduce.memory.mb = 8192; SET mapreduce.reduce.java.opts = "-Xmx6144m"; SET yarn.app.mapreduce.am.resource.mb = 6144; SET yarn.app.mapreduce.am.command-opts = "-Xmx4096m";
※この例では、データノードが、Standard A4 (CPU8コア、メモリ14GB)の場合に合わせて、サイズなどのパラメーターを決めています。
↓のリンク (Hortonworks)に、標準的なサイズの説明があり参考にして決めています。
参考情報
入門記事
ja-jp/documentation/articles/ machine-learning-data-science- hive-queries
本家Hortonworksのチューニング推奨値
HDPDocuments/HDP2/HDP-2.0.9.1/ bk_installing_manually_book/ content/rpm-chap1-11.html