我正在使用Docker容器在一台机器上运行具有3个数据节点的Hadoop。我已经在具有200个数据点的小型模拟数据集上运行了KMeans算法。
由于Hadoop的开销,该过程需要很长时间,大约需要2到3分钟,而在R中本地运行kmeans则需要几秒钟。
我想知道我的数据集对Hadoop的性能要比非分布式方法好多少,并且是否有可能,因为我是在一台机器上运行所有节点。
答案 0 :(得分:1)
可处理数据的核心和RAM数量比数据本身更重要,因此限制容器内的Hadoop作业实际上是在那些容器内运行很少的JVM容器。因此,可以预期的是,赋予一台完整的计算机访问权限以处理相同数量的数据将更有可能更快地处理数据,而且我敢肯定,有一种方法可以在没有Hadoop的情况下编写相同的分布式算法
此外,如果数据本身不可拆分或小于hdfs块大小,则无论如何它只能由单个mapreduce任务处理。您没有提到大小,但我怀疑200个数据点最多仅为几MB