我正在设计一个应用程序,它需要非常快的响应,并且需要从hadoop文件系统中检索和处理大量数据(>40g),只要输入一个命令(command)。
我在想,是否有可能使用spark在分布式内存中捕获如此大量的数据,并让应用程序一直运行。如果我给应用程序一个命令,它就可以根据输入开始处理数据。
我认为捕捉如此大的数据不是问题。但是,如何让应用程序运行并获取输入?
据我所知,在“星火提交”命令后没有什么可以做的。。。
我正在设计一个应用程序,它需要非常快的响应,并且需要从hadoop文件系统中检索和处理大量数据(>40g),只要输入一个命令(command)。
我在想,是否有可能使用spark在分布式内存中捕获如此大量的数据,并让应用程序一直运行。如果我给应用程序一个命令,它就可以根据输入开始处理数据。
我认为捕捉如此大的数据不是问题。但是,如何让应用程序运行并获取输入?
据我所知,在“星火提交”命令后没有什么可以做的。。。
2条答案
按热度按时间irtuqstp1#
您可以尝试spark job server和命名对象在分布式内存中缓存数据集,并在各种输入命令中使用它。
kb5ga3dv2#
要求不明确!!!,但根据我的理解,
1) 在application.jar之后的spark submit中,可以提供特定于应用程序的命令行参数。但是,如果希望在作业启动后发送命令,则可以编写一个处理kafka消息的spark流式作业。
2) hdfs已经针对处理大量数据进行了优化。您可以缓存中间的可重用数据,这样它们就不会被重新计算。但是为了获得更好的性能,您可以考虑使用elasticsearch/cassandra之类的工具,以便更快地获取/存储它们。