R Память Hadoop
Я пытаюсь запустить распределенную реализацию кластеризации kmeans на hadoop с rmr2 (на кластере с одной машиной с Hadoop 2.6.0-cdh5.4.2 в псевдо-распределенном режиме). Пока размер файла данных (в HDFS) невелик (около 1000 точек данных), он работает нормально.
Но по мере того, как я увеличиваю количество точек до 5000, что все еще довольно мало (размер файла данных составляет всего ~1 МБ), он начинает выдавать следующие ошибки:
container_1473314686409_0005_01_000006 работает за пределами физической памяти. Текущее использование: 1,5 ГБ из 1 ГБ физической памяти; Используется 3,2 ГБ из 2,1 ГБ виртуальной памяти. Убить контейнер.
Я уже пробовал следующее из какого-то другого поста, но это не имеет никакого влияния:
rmr.options(backend.parameters =
list(
hadoop =
list(
D = "mapred.map.memory.mb=2048",
D = "mapred.reduce.memory.mb=2048",
D = "mapred.map.java.opts=-Xmx400M",
D = "mapred.reduce.java.opts=-Xmx400M"
)
)
Моя версия ОС: Linux quickstart.cloudera 2.6.32-358.el6.x86_64 #1 SMP пт 22 февраля 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Прежде всего, я не понимаю, почему для обработки небольшого файла требуется> 1G памяти.
Во-вторых, я хочу масштабировать реализацию до огромных наборов данных (по крайней мере, для нескольких ГБ). Как я могу это сделать?
Наконец, я обнаружил, что большинство, если не все посты R-hadoop довольно старые, люди перестали работать над R-hadoop после 2014 года? Spark-R - лучший вариант?
Любая помощь в этом направлении будет оценена.