MongoDB集成Hadoop进行统计计算
2012-07-30 18:06
429 查看
MongoDB 本身可以做一些简单的统计工作,包括其内置的基于 Javascript 的 MapReduce 框架,也包括在MongoDB 2.2版本中引入的新的统计框架。除此之外,MongoDB 还提供了对外部统计工具的接口,这就是本文要说的MongoDB-Hadoop的数据中间件。文章内容来源于MongoDB官方博客。
这一套处理流程,允许我们通过 Python, Ruby 与 JavaScript 来写MapReduce函数进行数据统计,而不是使用Java。
原理图解
MongoDB与Hadoop相结合的方式如下图所未,MongoDB作为数据源存储以及数据结果存储。而具体的计算过程在Hadoop中进行。这一套处理流程,允许我们通过 Python, Ruby 与 JavaScript 来写MapReduce函数进行数据统计,而不是使用Java。
例子
首先准备好Hadoop环境,并安装好Hadoop,MongoDB中间件。然后通过下面的方式进行数据处理。1.数据准备
从Twitter API导入原始数据到MongoDB中curl https://stream.twitter.com/1/statuses/sample.json -u<login>:<password> | mongoimport -d twitter -c in
2.Map函数
写一个map函数,保存在文件mapper.rb 中#!/usr/bin/env ruby require 'mongo-hadoop' MongoHadoop.map do |document| { :_id => document['user']['time_zone'], :count => 1 } end
3.Reduce函数
然后是reduce函数,保存在文件reducer.rb中#!/usr/bin/env ruby require 'mongo-hadoop' MongoHadoop.reduce do |key, values| count = sum = 0 values.each do |value| count += 1 sum += value['num'] end { :_id => key, :average => sum / count } end
4.运行脚本
创建一个运行脚本,写入下面内容,就可以利用上面的MapReduce方法处理第一步中获取的数据。hadoop jar mongo-hadoop-streaming-assembly*.jar -mapper mapper.rb -reducer reducer.rb -inputURI mongodb://127.0.0.1/twitter.in -outputURI mongodb://127.0.0.1/twitter.out翻译自:blog.mongodb.org
相关文章推荐
- 使用Linux 和Hadoop 进行分布式计算
- 用 Linux 和 Apache Hadoop 进行云计算
- 使用 Linux 和 Hadoop 进行分布式计算
- 使用 Linux 和 Hadoop 进行分布式计算
- 6.对学生成绩进行统计计算,参加考试的有6名学生,考试成绩分别为94.5,89.0,79.5,64.5,81.5,73.5,显示考试的总分和平均分,之后显示大于考试平均分的成绩信息。请写出实现上述功能
- Python使用Hadoop进行词频统计
- 云计算实践:基于Ubuntu的Spark、Hadoop、MongoDB的单机环境配置和开关方法
- Hadoop学习笔记—4.初识MapReduce 一、神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算。对于大数据
- 如何在Java中对MongoDB按日期进行查询统计
- mongodb比较复杂的综合统计计算,性能还不差
- python实现用hadoop的map/reduce对web日志进行统计
- mongodb 分页查询并 根据传入的经纬度计算计算两点距离进行排序
- 在没Hadoop 、GP 前提下怎么进行实时数据统计。
- 实验二-2 Eclipse&Hadoop 做英文词频统计进行集群测试
- ECharts 统计扩展 ecStat.js, 可以进行回归分析和均值方差计算
- 使用 Linux 和 Hadoop 进行分布式计算
- 使用 Linux 和 Hadoop 进行分布式计算
- 大数据之mongodb --> (2)java集成 MongoDB 3.2,使用Spring-data-mongodb进行集成
- 云计算学习笔记004---hadoop的简介,以及安装,用命令实现对hdfs系统进行文件的上传下载
- 7、 数据仓库Hive(使用sql进行计算的hadoop框架)