小编Dav*_*man的帖子

使用MongoDB的MapReduce确实非常慢(对于等效的数据库,在MySQL中30小时vs 20分钟)

我现在正在做一些数据分析测试,在第一个,非常简单,我有非常奇怪的结果.

这个想法如下:从互联网访问日志(每个访问的文档集合,测试90万个文档).我希望获得域的访问次数(MySQL中的GROUP BY),并获得10个访问最多的域

我在JavaScript中创建的脚本非常简单:

/* Counts each domain url */
m = function () {
    emit(this.domain, 1 );
}

r = function (key, values)    {
    total = 0;
    for (var i in values)    {
        total += Number(i);
    }

    return total;
}

/* Store of visits per domain statistics on NonFTP_Access_log_domain_visits collection */
res = db.NonFTP_Access_log.mapReduce(m, r, { out: { replace : "NonFTP_Access_log_domain_visits" } } );
db.NonFTP_Access_log_domain_visits.ensureIndex({ "value": 1});
db.NonFTP_Access_log_domain_visits.find({}).sort({ "value":-1 }).limit(10).forEach(printjson);
Run Code Online (Sandbox Code Playgroud)

MySQL中的等价物是:

drop table if exists NonFTP_Access_log_domain_visits;
create table NonFTP_Access_log_domain_visits …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce mongodb

8
推荐指数
2
解决办法
4659
查看次数

标签 统计

hadoop ×1

mapreduce ×1

mongodb ×1