我的公司有两份工作,我们将从spark开始选择一份。这些任务是:第一项工作是分析大量文本以查找错误消息(grep)。第二项工作是机器学习&用迭代的方法对一些数据进行模型预测。我的问题是:两份工作中哪一份最能从spark中获益?spark依赖于记忆,所以我认为它更适合机器学习。与日志作业相比,数据量并没有那么大。但我不确定。如果我忽略了一些信息,这里有人能帮我吗?
khbbv19g1#
spark部署策略取决于数据量和接收方式。它可以同时适用于场景和应用程序。场景1-如果接收到流数据,也可以为第一个作业部署spark。spark streaming支持实时数据流的可伸缩、高吞吐量、容错流处理。数据可以从许多源(如kafka、flume、kinesis或tcp套接字)摄取,并且可以使用spark的不同功能进行处理。最后,可以将处理过的数据推送到hadoop hdfs文件系统。如果您的数据已经在hdfs上,您仍然可以使用spark来处理它。它将使您的处理速度更快。但是,如果是批处理,并且hadoop集群中没有足够的资源,那么mapreduce是这种场景的首选。场景2-您的第一个应用程序将处理数据并存储在hdfs上,您可以在此处使用spark mllib操作进行进一步操作。请验证您将使用此操作执行的预测类型。最后,在这里我可以说spark适合您的两个场景,您可以将它用于这两个操作。
vnzz0bqm2#
以下是我在数据科学中找到的一个很好的答案:我认为第二份工作比第一份工作更能从spark中获益。原因是机器学习和预测模型经常对数据进行多次迭代。正如您所提到的,spark能够在两次迭代之间将数据保存在内存中,而hadoopmapreduce必须将数据写入和读取到文件系统。下面是两个框架的比较:https://www.edureka.co/blog/apache-spark-vs-hadoop-mapreduce尽管我同意你的观点@sandeep singh,但我必须说hadoop并不适合大量的迭代操作。
2条答案
按热度按时间khbbv19g1#
spark部署策略取决于数据量和接收方式。它可以同时适用于场景和应用程序。
场景1-如果接收到流数据,也可以为第一个作业部署spark。spark streaming支持实时数据流的可伸缩、高吞吐量、容错流处理。数据可以从许多源(如kafka、flume、kinesis或tcp套接字)摄取,并且可以使用spark的不同功能进行处理。最后,可以将处理过的数据推送到hadoop hdfs文件系统。
如果您的数据已经在hdfs上,您仍然可以使用spark来处理它。它将使您的处理速度更快。但是,如果是批处理,并且hadoop集群中没有足够的资源,那么mapreduce是这种场景的首选。
场景2-您的第一个应用程序将处理数据并存储在hdfs上,您可以在此处使用spark mllib操作进行进一步操作。请验证您将使用此操作执行的预测类型。
最后,在这里我可以说spark适合您的两个场景,您可以将它用于这两个操作。
vnzz0bqm2#
以下是我在数据科学中找到的一个很好的答案:

我认为第二份工作比第一份工作更能从spark中获益。原因是机器学习和预测模型经常对数据进行多次迭代。
正如您所提到的,spark能够在两次迭代之间将数据保存在内存中,而hadoopmapreduce必须将数据写入和读取到文件系统。
下面是两个框架的比较:
https://www.edureka.co/blog/apache-spark-vs-hadoop-mapreduce
尽管我同意你的观点@sandeep singh,但我必须说hadoop并不适合大量的迭代操作。