我们正在开发一个项目,我们需要处理一些非常小的数据集,事实上,csv格式的数据量不到100行。大约有20-30个这样的工作可以处理这些类型的数据集。但是负载可以在未来增长,并且可以达到大数据类别。从这些超小负载的火花开始是否可以,这样系统明天仍可扩展?或者我们现在应该按计划运行java / c#中的正常程序吗?并且将来如果其中一些任务的负载变得非常高,请切换到spark?
提前致谢。
答案 0 :(得分:0)
绝对没问题,在运行Job之前要记住的一件事是检查内存并根据数据大小分配内存。 假设您有10个内核,50GB内存,最初您有3kb或1MB的csv文件。为1Mb文件提供50Gb内存和10个内核是一种错误的方法, 在你开始工作之前,你应该小心分配内存和执行者的数量。 对于3Mb数据的上述csv文件,您可以提供最多2个内核和5Gb RAM来完成工作。随着数据大小的增加,您可以增加内核和内存的使用。
在打开sparkshell之前(这里我使用Pyspark和yarn作为资源管理器)。这可以通过示例来完成:
pyspark --master yarn --num-executors-memory <512M ,2G>
谢谢。