У меня есть экземпляр Apache Hadoop 1.1.1 с одним узлом со значениями параметров по умолчанию (см., например, [1] и [2] ) на машине с большим объемом оперативной памяти и очень ограниченным размером свободного места на диске. Затем я замечаю, что этот экземпляр Hadoop тратит много места на диске во время выполнения картографических задач. На какие параметры конфигурации следует обратить внимание, чтобы использовать преимущества большого объема оперативной памяти и уменьшить использование дискового пространства?
Конфигурация с одним узлом Hadoop на машине с большим объемом памяти
Ответы (2)
Вы можете использовать несколько параметров mapred.* для сжатия выходных данных карты, что значительно уменьшит объем дискового пространства, необходимого для хранения выходных данных картографа. См. этот вопрос. указатели.
Обратите внимание, что разные кодеки сжатия будут иметь разные проблемы (например, GZip требует больше процессора, чем LZO, но вы должны установить LZO самостоятельно). Эта страница есть хорошее обсуждение проблем сжатия в Hadoop, хотя оно немного устарело.
Объем оперативной памяти, который вам нужен, зависит от того, что вы делаете в своих заданиях по уменьшению карты, хотя вы можете увеличить размер кучи в:
conf/mapred-site.xml mapred.map.child.java.opts
Дополнительные сведения об этом см. в разделе настройка кластера.
Вы можете использовать dfs.datanode.du.reserved
в файле hdfs-site.xml, чтобы указать объем дискового пространства, которое вы не будете использовать. Я не знаю, может ли Hadoop компенсировать более высокое использование памяти.
Однако у вас возникнут проблемы, если вы запустите задание mapreduce, интенсивно использующее дисковый ввод-вывод. Я не думаю, что какое-либо количество настроек поможет вам тогда.