首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Elephantbird引见

2013-02-02 
Elephantbird介绍? ? ? ? ?本篇博客为原创文章,转载请注明出处:http://guoyunsky.iteye.com/blog/1780150?

Elephantbird介绍

? ? ? ? ?本篇博客为原创文章,转载请注明出处:http://guoyunsky.iteye.com/blog/1780150

?

? ? ? ? ?国内基于elephant-bird的资料还太少,除了淘宝搜索技术博客上的一篇,网址:http://www.searchtb.com/2010/09/pb-lzo-used-in-hadoop.html,基本就没有了。但这篇也只是介绍如何使用.
? ? ? ? 其实对于elephant-bird的说明在其Readme.md已经很详细了.网址:https://github.com/kevinweil/elephant-bird.我这里就不充当翻译工作.从我自身的理解来大概介绍下.
? ? ? ? 相信玩Hadoop的不少同学,肯定少不了要接触hadoop?lzo,protocol?buffer,thrift这三个东西.比如你使用protocol?buffer的code?gen生成一个Java对象,如其官网的AddressBook.如果你也想在hadoop中也使用这个类,那该怎么办?
? ? ? ? 没有elephant-bird的话,你可能需要针对AddressBook这种结构,自己手动实现Hadoop的org.apache.hadoop.io.WritableComparable,以及InputFormat和OutputFormat.这其中工作量很大.可能还需要lzo压缩.那工作量又大了点.但elephant-bird很好的替代了这方面的工作.它能基于protocol?buffer的protoc文件,以及thrift的thrift文件,如刚才的AddressBook.生成对应的Writable,InputFormat以及OutputFormat.需要lzo压缩以及64位编码也没关系,照样都支持.如此省去了你自己去写这些代码的麻烦,而且写这些代码都是机械性的,模板的.所以也就有elephant-bird的存在性.
? ? ? ?但elephant-bird远不只是这些功能,它还支持以下,前提是基于protoc和thrift:??????

? ? ? ?1)自动生成Pig的LoadFunc?

? ? ? ?2)自动生成Hive的SerDe?

? ? ? ?3)自动生成HBase的miscellanea?????

? ?

? ? ? ? 以上举个例子来说,还是以AddressBook为例,elephant-bird能自动帮你生成Pig中需要读取AddressBook的LoadFunc,Hive中的SerDe等.
? ? ? ? 以上是大概介绍.希望能让你明白elephant-bird是干什么的,为什么需要它?最后说下elephant-bird的版本兼容性.

? ? ? ?1)Protocol?Buffer?2.3

? ? ? ?2)Pig?0.8/0.9?(不支持0.7及更低版本)

? ? ? ?3)Hive?0.7

? ? ? ?4)thrift?0.5

? ? ? ?5)Mahout?0.6

? ? ? ?6)Cascading2

?

? ? ? ?注:本篇博客基于elephant-bird2.1.8

?

? ? ? ?在github上建了一个开源工程,可以运行ant命令基于elephantbird直接生成代码.地址:

? ? ? ?https://github.com/guoyunsky/elephant-bird-simple

热点排行