hadoop 的bin文件夹以下一个rcc命令,网上介绍非常少。看了一下源代码。发现能够用来生成 java和c++的hadoop Record 类代码,比起自己直接实现writable 接口。简单非常多并且不easy出错,最好还是试一下。

详细方法例如以下:

>rcc
Usage: rcc --language [java|c++] ddl-files
 
1 新建 ddl文件
>vim stud.ddl
module com.xschao.bean {
class Stud{
ustring name;
long id;
int age;
ustring time;
}
}

其它的类型补充,详细是啥自行脑补:
"\"byte\"",
"\"boolean\"",
"\"int\"",
"\"long\"",
"\"float\"",
"\"double\"",
"\"ustring\"",
"\"buffer\"",
"\"vector\"",
"\"map\"",


2 运行编译命令
> rcc --language java stud.ddl
查看生成的文件:

>tree
.
|-- com
| `-- xschao
| `-- bean
| `-- Stud.java
|-- command_example.sh
`-- stud.ddl
3 directories, 3 files
Stud.java即为生成的java代码
// File generated by hadoop record compiler. Do not edit.
package com.xschao.bean;
public class Stud extends org.apache.hadoop.record.Record {
private static final org.apache.hadoop.record.meta.RecordTypeInfo _rio_recTypeInfo;
private static org.apache.hadoop.record.meta.RecordTypeInfo _rio_rtiFilter;
private static int[] _rio_rtiFilterFields;
static {
_rio_recTypeInfo = new org.apache.hadoop.record.meta.RecordTypeInfo("Stud");
_rio_recTypeInfo.addField("name", org.apache.hadoop.record.meta.TypeID.StringTypeID);
_rio_recTypeInfo.addField("id", org.apache.hadoop.record.meta.TypeID.LongTypeID);
_rio_recTypeInfo.addField("age", org.apache.hadoop.record.meta.TypeID.IntTypeID);
_rio_recTypeInfo.addField("time", org.apache.hadoop.record.meta.TypeID.StringTypeID);
}
private String name;
private long id;
private int age;
private String time;
public Stud() { }
public Stud(
final String name,
final long id,
final int age,
final String time) {
this.name = name;
this.id = id;
this.age = age;
this.time = time;
}
。 。。 。。。。 。。。。。。 。 。 。。 。 。。。


ok










格格巫婆--蓝精灵- 

版权声明:本文博客原创文章。博客,未经同意,不得转载。

使用hadoop命令rcc生成Record 一个简单的方法来实现自己的定义writable对象的更多相关文章

  1. 【一起学系列】之命令模式:封装一个简单Jedis

    意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作. 命令模式的诞生 [产品]:开发小哥,来活啦,咱们需要设计一款遥控器,核心功能就 ...

  2. XLSTransformer生成excel一个简单的演示示例文件

    项目结构图: 在这些项目中使用jar.可以http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...

  3. 一个简单的方法去掉angular application中URLs的hashtag

    本文转载自:Pretty URLs in AngularJS: Removing the # By default, AngularJS will route URLs with a hashtag. ...

  4. 一个简单的Java死锁示例(转)

    在实际编程中,要尽量避免出现死锁的情况,但是让你故意写一个死锁的程序时似乎也不太简单(有公司会出这样的面试题),以下是一个简单的死锁例子,程序说明都写着类的注释里了,有点罗嗦,但是应该也还是表述清楚了 ...

  5. Java实现一个简单的缓存方法

    缓存是在web开发中经常用到的,将程序经常使用到或调用到的对象存在内存中,或者是耗时较长但又不具有实时性的查询数据放入内存中,在一定程度上可以提高性能和效率.下面我实现了一个简单的缓存,步骤如下. 创 ...

  6. iPhone开发中从一个视图跳到另一个视图有三种方法:

    iPhone开发中从一个视图跳到另一个视图有三种方法:   1.self.view addSubView:view .self.window addSubView,需要注意的是,这个方法只是把页面加在 ...

  7. c#基础学习(0701)之一些简单的方法练习

    一个简单的求数组最大值的方法 //可变参数 int max=GetMaxNumbers(101,30) static int GetMaxNumbers(params int[] pms) { ]; ...

  8. 一个简单搜索引擎的搭建过程(Solr+Nutch+Hadoop)

    最近,因为未来工作的需要,我尝试安装部署了分布式爬虫系统Nutch,并配置了伪分布式的Hadoop来存储爬取的网页结果,用solr来对爬下来的网页进行搜索.我主要通过参考网上的相关资料进行安装部署的. ...

  9. 一个简单的NetCore项目:1 - 搭建框架,生成数据库

    1- 启动项目 安装.NETCORE SDK,教程在网上可以搜索的到,这里就不讲述了.简单粗暴的方式就是安装最新的VS2015. 2-搭建框架 2.1 打开VS新建一个项目,在弹出的新建项目对话框中, ...

随机推荐

  1. HDU 1226 超级密码 (搜素)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1226 题意简单,本来是一道很简单的搜素题目. 但是有两个bug: 1.M个整数可能有重复的. 2.N可 ...

  2. python手记(46)

    #!/usr/bin/env python   # -*- coding: utf-8 -*- #http://blog.csdn.net/myhaspl   #code:myhaspl@qq.com ...

  3. java -D參数简化增加多个jar【简化设置classpath】

    1.-D<name>=<value> set a system property  设置系统属性. java命令引入jar时能够-cp參数,但时-cp不能用通配符(多个jar时 ...

  4. 2-13. 平均两个有序序列(25)(ZJU_PAT 名单 | 排列 )

    主题链接:http://pat.zju.edu.cn/contests/ds/2-13 已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A0, A1-AN-1的中位 ...

  5. Windows 10Bash命令

    Windows 10预览版14316开启Bash命令支持 00x0 前言 4月7日凌晨,微软推送了最新的Windows 10一周年更新预览版14316,其中重要的是原生支持Linux Bash命令行支 ...

  6. hdu1520(树形dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意:举办一个party,候选人当中有很多人之间有上下级关系,求没有直接上下级的最多的人数. 分 ...

  7. bat文件无法双击运行

    问题: win7系统下新建txt文件,编辑脚本内容后,保存为test.bat.每次双击它,只会默认以txt格式打开它,而不是运行它. 解决: 1. 双击打开“我的电脑”,然后在“工具”下选择“文件夹选 ...

  8. Java&Android反编工具打包

    Java&Android反编工具: 1.Eclipse反编插件:安装到Eclipse后,可以简要的查看jar包中的*.class; 2.DoAPK:反编*.apk为smali和一些资源文件,可 ...

  9. Error: ORA-16501: the Data Guard broker operation failed ORA-16625: cannot reach database

    在备库上建配置文件 DGMGRL> create configuration 'sharkdbbork' as primary database is 'sharkdb' connect ide ...

  10. JSP与ASP.PHP的比較

    眼下,最经常使用的三种动态网页语言为:ASP(Active Server Pages).PHP(HyperText Preprocessor)及JSP(Java Server Pages). JSP与 ...