我正在从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的空间)。我认为增加持久性内存大小不是唯一的解决方案。
有关从何处着手调整点火群集以获取更好性能的任何建议或资源。感谢您的时间和帮助。谢谢。
答案 0 :(得分:1)
如果RAM是一种稀缺资源,则可以进行本机持久性优化。这应该是您的瓶颈。针对您的特定用例进行微调。请参阅以下页面:
答案 1 :(得分:0)
GC调优将无济于事,因为持久存储已无法使用。同样,堆上是堆上的添加,因此,如果有的话,这会使情况变得更糟。
相反,您需要配置eviction policy。除了为数据区域指定最大内存大小之外,您还需要说:
<property name="pageEvictionMode" value="RANDOM_2_LRU"/>
话虽如此,您正在将数据复制到磁盘上,因此速度会慢很多。