【问题标题】:Using Map-Reduce directly in python language?在 python 语言中直接使用 Map-Reduce?
【发布时间】:2013-05-27 18:50:30
【问题描述】:

我们可以在 Map-Reduce 中使用 Python 代码而不是使用 Javascript 吗?

在 MongoDB 中,他们将 Jaavascript 引擎更改为 V8,这将使操作并行化,但因为有 javascript,所以担心 NoSql 注入?

【问题讨论】:

    标签: mongodb mapreduce pymongo


    【解决方案1】:

    在 MongoDB 中,map 和 reduce 函数必须用 JavaScript 编写。

    除非您使用来自最终用户的输入,否则我不确定您如何担心 NoSQL 代码被注入到您的 mapReduce 函数中。

    【讨论】:

    • "他们"只有在你的 map-reduce 代码生成中使用用户输入数据(未验证)时才能做到这一点。 “注入”不能“仅仅”发生,因为您使用了 mapreduce - 必须以某种方式允许恶意 JS 进入您的进程!
    • 你真的读了吗?唯一可以进行注入的情况是,如果您在 javascript 代码中包含 ENDUSER INPUT。
    • 当您运行 mapreduce 时,您必须为其提供 map 和 reduce 函数的源代码。如果您提供此代码,则无法将恶意代码注入其中(只有在您的应用程序中获得一些最终用户输入并将其放入 mapreduce 源而不对其进行清理时,才可能进行注入)。
    • 不,聚合框架仍然会更快,因为它在服务器上运行,mapreduce 必须生成一个单独的 javascript 线程。 V8 比 Spidermonkey 快,但聚合框架比它们中的任何一个都快(并且在 2.4 中比在 2.2 中更快)。
    • 取决于数据量和计算类型。 MongoDB mapreduce(一次)仅适用于一个 MongoDB 集合 - Hadoop 可以分析来自多个不同来源的数据。
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2020-09-17
    相关资源
    最近更新 更多