加载数据以通过火花点燃

时间:2019-06-18 13:35:54

标签: apache-spark ignite

我正在从hdfs加载数据以通过Spark点燃。实木复合地板格式的原始数据约为5GB(约5亿行)。

我正在使用spark-ignite api加载数据(https://apacheignite-fs.readme.io/docs/ignite-data-frame)。

ignite群集是3个节点,全部在服务器模式下运行,具有8GB持久内存,启用了持久性和禁用了WAL。

在加载数据时,只要持久存储中有空间,它就会快速运行。一旦无法容纳在内存中,加载就会非常缓慢并逐渐减少。

我尝试了一些建议的配置(GC调整,堆上存储),但是都没有明显提高加载速度。

由于ignite内存存储区不压缩数据,因此需要更多的存储空间(我已加载了2亿行,占用了近45 GB的空间)。我认为增加持久性内存大小不是唯一的解决方案。

有关从何处着手调整点火群集以获取更好性能的任何建议或资源。感谢您的时间和帮助。谢谢。

2 个答案:

答案 0 :(得分:1)

如果RAM是一种稀缺资源,则可以进行本机持久性优化。这应该是您的瓶颈。针对您的特定用例进行微调。请参阅以下页面:

答案 1 :(得分:0)

GC调优将无济于事,因为持久存储已无法使用。同样,堆上是堆上的添加,因此,如果有的话,这会使情况变得更糟。

相反,您需要配置eviction policy。除了为数据区域指定最大内存大小之外,您还需要说:

<property name="pageEvictionMode" value="RANDOM_2_LRU"/>

话虽如此,您正在将数据复制到磁盘上,因此速度会慢很多。