Prepare ENV
download mongo-java-driver from http://central.maven.org/maven2/org/mongodb/mongo-java-driver
compile mongo-hadoop-connector for hadoop2.3.0
alter build.gradle to change hadoop-version to 2.3 and delete related download dependencies task
#./gradlew jar
distribute the aboves jars to hadoop clustert's nodes
#cp core/build/libs/mongo-hadoop-core-1.2.1-SNAPSHOT-hadoop_2.3.jar hadoop-2.3.0/share/hadoop/common/lib
#cp mongo-java-driver-2.12.2.jar hadoop-2.3.0/share/hadoop/common/lib
or add the above two jars into project lib dir and add them to build path
Note: the destination dir is not hadoop-2.3.0/lib
Run MongoDB Hadoop examples
#cd /path/to/mongodb-hadoop
#./gradlew historicalYield
The above command will download hadoop and install it. But,I want to run the example on my existed hadoop cluster.
To see what happens for this command, first find the files which execute this commands
#find . |xargs grep 'historicalYield' -sl
task historicalYield(dependsOn: 'configureCluster') << { exec() { commandLine "mongoimport", "-d", "mongo_hadoop", "-c", "yield_historical.in", "--drop", "examples/treasury_yield/src/main/resources/yield_historical_in.json" } hadoop("examples/treasury_yield/build/libs/treasury_yield-${project(':core').version}-hadoop_${hadoop_version}.jar", "com.mongodb.hadoop.examples.treasury.TreasuryYieldXMLConfig", [ "mongo.input.uri=mongodb://localhost:27017/mongo_hadoop.yield_historical.in", "mongo.output.uri=mongodb://localhost:27017/mongo_hadoop.yield_historical.out" ]) }
task configureCluster(dependsOn: ['copyFiles']) << { }
task copyFiles(dependsOn: ['installHadoop', 'installHive']) << { def hadoopEtc def hadoopLib if (hadoop_version.startsWith("1")) { hadoopLib = "${hadoopHome}/lib" hadoopEtc = "${hadoopHome}/conf" } else { hadoopLib = "${hadoopHome}/share/hadoop/common" hadoopEtc = "${hadoopHome}/etc/hadoop" } println "Updating mongo jars" copy { from "core/build/libs/mongo-hadoop-core-${project(':core').version}-hadoop_${hadoop_version}.jar" into hadoopLib rename { "mongo-hadoop-core.jar" } } copy { from "hive/build/libs/mongo-hadoop-hive-${project(':core').version}-hadoop_${hadoop_version}.jar" into hiveHome + '/lib' rename { "mongo-hadoop-hive.jar" } } download { src "http://central.maven.org/maven2/org/mongodb/mongo-java-driver/${javaDriverVersion}/mongo-java-driver-${javaDriverVersion}.jar" dest "${hadoopLib}/mongo-java-driver.jar" onlyIfNewer true } println "Updating cluster configuration" copy { from 'clusterConfigs' into hadoopEtc } }
def hadoop(jar, className, args) { def line = ["${hadoopHome}/bin/hadoop", "jar", jar, className, //Split settings "-Dmongo.input.split_size=8", "-Dmongo.job.verbose=true", ] args.each { line << "-D${it}" } println "Executing hadoop job:\n ${line.join(' \\\n\t')}" def hadoopEnv = [:] if (hadoop_version.startsWith("cdh")) { hadoopEnv.MAPRED_DIR = 'share/hadoop/mapreduce2' } exec() { environment << hadoopEnv commandLine line } }
----------------------------
so,understood the details behind the screen. We can run the example by hand
1. load sample data into mongoDB
#mongoimport -d mongo_hadoop -c yield_historical.in --drop <examples/treasury_yield/src/main/resources/yield_historical_in.json
2.run example
#cd mongo-hadoop/examples/treasury_yield/build/libs
#hadoop jar treasury_yield-1.2.1-SNAPSHOT-hadoop_2.3.jar com.mongodb.hadoop.examples.treasury.TreasuryYieldXMLConfigV2 -Dmongo.input.uri=mongodb://localhost:27017/mongo_hadoop.yield_historical.in -Dmongo.output.uri=mongodb://localhost:27017/mongo_hadoop.yield_historical.out -Dmongo.input.split_size=8 -Dmongo.job.verbose=true
References
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/
https://github.com/mongodb/mongo-hadoop/blob/master/CONFIG.md
https://github.com/mongodb/mongo-hadoop/blob/master/examples/README.md
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-hadoop/
http://mongodb-documentation.readthedocs.org/en/latest/ecosystem/tutorial/getting-started-with-hadoop.html
http://www.mongodb.com/press/integration-hadoop-and-mongodb-big-data%E2%80%99s-two-most-popular-technologies-gets-significant
http://blog.mortardata.com/post/43080668046/mongodb-hadoop-why-how
http://help.mortardata.com/data_apps/mongo_hadoop
http://www.severalnines.com/blog/big-data-integration-etl-clickstream-mongodb-hadoop-analytics
相关推荐
MongoDB: The Definitive Guide MongoDB is a powerful, flexible, and scalable generalpurpose database. It combines the ability to scale out with features such as secondary indexes, range queries, ...
2. **检查与确认** 首先,确认MongoDB是否已经安装。可以使用`mongod --version`命令来查看版本信息。如果没有输出,说明MongoDB可能没有安装或者安装不完整。 3. **修复启动脚本** - 如果MongoDB已安装,但启动...
- **客户行为分析**:Hadoop 处理大量历史数据,揭示客户的行为模式,支持精准营销策略的制定。 #### 四、MongoDB Connector概述及特点 MongoDB Connector 作为一个桥梁,连接了 MongoDB 和 Hadoop,使得两者之间...
【文件系统、MongoDB、Hadoop 存取方案分析】 在大数据时代,高效的数据存取方案至关重要。本文将深入探讨三种常见的数据存取方案:文件系统、MongoDB 和 Hadoop,以及它们各自的特点和适用场景。 一、文件系统 ...
深入学习MongoDB:Scaling MongoDB && 50 Tips and Tricks for MongoDB Developers深入学习MongoDB中文版Scaling MongoDB英文版50 Tips and Tricks for MongoDB Developers英文版高清完整目录3本打包合集
2. 启动MongoDB服务:打开命令行,输入`mongod.exe --dbpath=[安装目录]\data\db`命令,其中[安装目录]是你的MongoDB安装路径。 当MongoDB服务启动成功后,你可以通过命令行与MongoDB交互: 1. 连接MongoDB:输入`...
3. 生态系统:Hadoop有庞大的生态系统,包括HBase(分布式列式数据库)、YARN(资源管理系统)、Pig(数据流处理)、Spark(快速数据处理框架)等,这些工具进一步扩展了Hadoop的功能。 书中的《Hadoop权威指南》和...
MongoDB与Hadoop MapReduce的海量非结构化数据处理方案 本文旨在探索基于MongoDB与Hadoop MapReduce的海量非结构化数据处理方案,旨在解决大数据时代下的数据处理难题。该方案通过MongoDB Cluster、MongoDB-...
【MongoDB&Hadoop技术交流】 本篇技术交流主要探讨了MongoDB和Hadoop两种在大数据处理领域中广泛应用的技术。MongoDB是一种NoSQL数据库,而Hadoop是分布式计算框架,两者在处理大规模数据方面有着各自的优势。 **...
2. 互联网存储应用的特点: 互联网存储应用,如网盘和在线备份服务,通常具备以下特点:高可靠性(数据多份存储以防止丢失)、高可用性(7天24小时的服务保证)、高扩展性(可以透明地升级扩容)、高性能(支持高...
PM2模块可自动监视mongodb的生命体征: 查询,输入,更新,删除 连接数 已用存储空间 网络速度(输入和输出) 代表名称和状态 pm2-mongodb 安装 $ npm install pm2 -g $ pm2 install pm2-mongodb 组态 NODE :用户...
文档层使用MongoDB:registered:有线协议,允许通过现有的MongoDB:registered:客户端绑定使用MongoDB:registered:API。 所有持久数据都存储在FoundationDB键值存储中。 文档层实现了MongoDB:registered:API(v ...
什么是 MongoDB MongoDB 简介 MongoDB 特点 安装与配置 安装 MongoDB 启动与配置 MongoDB 基本操作 数据库和集合 文档操作 查询操作 基本查询 高级查询 索引与性能优化 创建索引 索引类型 索引优化 聚合操作 聚合...
MongoDB-Hadoop 研讨会练习 MongoDB 作为操作数据库为应用程序提供支持,而 Hadoop 与强大的分析基础设施一样提供智能。 在本次研讨会中,我们将首先了解这些技术如何与适用于 Hadoop 的 MongoDB 连接器配合使用。 ...
无论运行php composer.phar require --prefer-dist yiisoft/yii2-mongodb或添加"yiisoft/yii2-mongodb": "~2.1.0"到composer.json的require部分。组态要使用此扩展,只需在您的应用程序配置中添加以下代码: return...
一个盒子里的MongoDB (!!! mongodb @ testing over alpine:edge !!!)使用MongoDB的基于AlpineLinux的Docker映像 用法 作为服务器: docker run -d --name mongodb -p 27017:27017 -v /data/mongodb:/var/lib/...
mongodb人偶模块 目录 概述 从OS存储库或从MongoDB社区/企业存储库在RHEL / Ubuntu / Debian上安装MongoDB。 模块说明 MongoDB模块管理mongod守护程序的mongod服务器安装和配置。 目前,它仅支持一个MongoDB服务器...
Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar
羽毛mongodb 用于数据库适配器,使用用于。 $ npm install --save mongodb feathers-mongodb 重要提示: feathers-mongodb实现了和。 该适配器还需要一个数据库服务器。 原料药 service(options) 返回使用给定...