文档章节

hadoop读写mongodemo

caolinsheng
 caolinsheng
发布于 2014/06/18 17:08
字数 230
阅读 40
收藏 0
点赞 0
评论 0

MongoMapper.java

public class MongoMapper extends Mapper<Object,BSONObject, IntWritable, Text> {

 @Override
 protected void map(Object key, BSONObject value,
   org.apache.hadoop.mapreduce.Mapper.Context context)
   throws IOException, InterruptedException {
  
  double id=(Double)value.get("myid");
  String name=(String)value.get("name");
  
  context.write(new IntWritable((int)id),new Text(name));
 }
}

 

MongoReducer.java

public class MongoReducer extends Reducer<IntWritable,DoubleWritable, IntWritable, BSONWritable> {
 protected void reduce(IntWritable key, Iterable<DoubleWritable> values,
   org.apache.hadoop.mapreduce.Reducer.Context context)
   throws IOException, InterruptedException {

  BasicBSONObject output = new BasicBSONObject();
  int count=0;
        for (Iterator iterator = values.iterator(); iterator.hasNext();) {
   count++;
   
  }
        output.put("count", count);
        context.write( key, new BSONWritable( output ) );

 }
}

 

RunTool.java

class RunTool extends PluginUtil{
  
 public static void main(String[] args) throws Throwable{
     System.setProperty("HADOOP_USER_NAME","hadoop");
        
   final JobConf conf = new JobConf(); 
      // 定义MongoDB数据库的输入与输出表名,这里是调用本地的MongoDB,默认端口号为27017 
         MongoConfigUtil.setInputURI( conf, "mongodb://192.168.4.73/foo.person" ); 
         MongoConfigUtil.setOutputURI( conf, "mongodb://192.168.4.73/foo.out" ); 
         MongoConfigUtil.setAuthURI(conf, "mongodb://mongo:mongo@192.168.4.73/admin");
         System.out.println( "Conf: " + conf ); 
   
         conf.set("fs.default.name", "hdfs://hadoop1:9000");
     //  conf.set("hadoop.job.user", "hadoop");
       conf.set("mapred.job.tracker", "hadoop1:9001");
       conf.set("dfs.permissions","false");
       String jarName = runonhadoop().toString();
         conf.setJar(jarName);
 
         final Job job = new Job( conf , "mongohadoop" );   
         job.setMapperClass( MongoMapper.class );  
         job.setReducerClass( MongoReducer.class );  
    
      // 定义Mapper与Reduce的输出key/value的类型 
         job.setOutputKeyClass( IntWritable.class ); 
         job.setOutputValueClass( BSONWritable.class ); 
   
         job.setMapOutputKeyClass(IntWritable.class);
         job.setMapOutputValueClass(DoubleWritable.class);
   
      // 定义InputFormat与OutputFormat的类型 
         job.setInputFormatClass( MongoInputFormat.class ); 
         job.setOutputFormatClass( MongoOutputFormat.class );  
         System.exit( job.waitForCompletion( true ) ? 0 : 1 ); 
 }

}

© 著作权归作者所有

共有 人打赏支持
caolinsheng
粉丝 3
博文 9
码字总数 2532
作品 0
东城
express4.x Request对象获得参数方法

最近看完慕课网 “node.js 建站攻略”后, 对mongodb 操作有了进一步认识, 为了进一步巩固该数据库知识, 于是使用学到的知识搭建一个最简单的mongoDemo. 搭建完成后已放到Github分享, 详情...

90后爱国 ⋅ 2015/07/22 ⋅ 0

Hadoop默认支持集成OSS,作为Hadoop兼容的文件系统

背景 2017.12.13日Apache Hadoop3.0.0正式版本发布,默认支持阿里云OSS对象存储系统,作为Hadoop兼容的文件系统。 OSS是中国云计算厂商第一个也是目前唯一一个被Hadoop官方版本支持的云存储系...

阿里云云栖社区 ⋅ 2017/12/19 ⋅ 0

/tmp/hadoop-hadoop-namenode.pid: Permission denied

starting namenode, logging to /home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-namenode-ubuntu118.out /home/hadoop/hadoop-1.0.2/bin/hadoop-daemon.sh: line 136: /tmp/hadoo......

闵开慧 ⋅ 2012/09/05 ⋅ 0

HBase集群出现NotServingRegionException问题的排查及解决方法

HBase集群出现NotServingRegionException问题的排查及解决方法 Posted by 原 攀峰 on 2012 年 11 月 25 日 Leave a commentGo to comments HBase集群在读写过程中,可能由于Region Split或R...

vieky ⋅ 2013/01/04 ⋅ 0

Difeye 1.1.5 版本发布 增加gearman读写分离调度作业

Difeye 1.1.5 版本---更新日期:2013-05-28 Difeye是一款超轻量级PHP框架,主要特点有: ◆数据库连接做自动主从读写分离配置,适合单机和分布式站点部署; ◆支持Smarty模板机制,可灵活配置...

mathcn123456 ⋅ 2013/05/28 ⋅ 0

hbase初识-01.docx

定义 Hbase是一个在hdfs上开发的面向列的分布式数据库。 HBase 是一个开源的非关系(NoSQL)的可伸缩性分布式数据库。它是面向列的,并适合于存储超大型松散数据。HBase适合于实时,随机对Big...

hiqj ⋅ 2015/09/09 ⋅ 0

Python 的 Hadoop 扩展--Hadoopy

Hadoopy 是一个用 Cython 编写的 Hadoop 扩展。它简单,快速,并且易于被修改。它已经在超过700个节点的集群中测试过了。 提供简单的 Hadoop API 接口 一般兼容性让用户可以来回切换 可用于无...

匿名 ⋅ 2013/01/11 ⋅ 0

一个 Hadoop 老兵的自白

Apache Hadoop 是一个免费软件,但实际上,除非是拥有庞大工程师团队的大公司,否则最好不要去创建仅供内部使用的Hadoop版本,因为如果要购买技术支持,那 Hadoop 就不是免费的了。Jim Scott...

oschina ⋅ 2015/11/28 ⋅ 28

轻量级PHP框架--Difeye

Difeye 1.1.4 版本---更新日期:2013-03-1 Difeye是一款超轻量级PHP框架,主要特点有: ◆数据库连接做自动主从读写分离配置,适合单机和分布式站点部署; ◆支持Smarty模板机制,可灵活配置...

匿名 ⋅ 2011/03/17 ⋅ 0

Difeye 1.1.4 版本发布

Difeye 1.1.4 版本---更新日期:2013-03-1 Difeye是一款超轻量级PHP框架,主要特点有: ◆数据库连接做自动主从读写分离配置,适合单机和分布式站点部署; ◆支持Smarty模板机制,可灵活配置...

mathcn123456 ⋅ 2013/03/04 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vbs 取文件大小 字节

dim namedim fs, s'name = Inputbox("姓名")'msgbox(name)set fs = wscript.createobject("scripting.filesystemobject") 'fs为FSO实例if (fs.folderexists("c:\temp"))......

vga ⋅ 5分钟前 ⋅ 0

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部