thrift在hive中的应用

摘要:
节俭在shift中的应用ORATEA节俭应用在shift hadoop评论627 2011节俭是一个可扩展的跨语言服务开发软件框架。Thrift是由Facebook开发的,我们现在将其用作开源软件。Thrift允许您在一个简单的定义文件中定义数据类型和服务接口。有关节俭的详细信息,请参阅:http://thrift.apache.org/thrifthive中有几个应用程序,所有这些应用程序都旨在实现跨语言服务。hive-0.6.0中使用的Thrift版本是r790732。如果使用相同版本的Thright,将生成与官方Shift版本相同的文件。如果使用不同版本的Thrfit,则生成的文件之间会有一些差异。

thrift在hive中的应用 » ORATEA

thrift是一种可伸缩的跨语言服务的发展软件框架。
它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,工作效率和无缝地与C + +,C#,Java,Python和PHP和Ruby结合。
thrift是facebook开发的,我们现在把它作为开源软件使用。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。
以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。

对于thrift的详细介绍见:http://thrift.apache.org/

thrift在hive中有好几处应用,目的都是为了实现跨语言的服务。
最近详细的看了在metadata模块中的thrift应用。
metadata中thrift定义文件为\hive-0.6.0\src\metastore\if\hive_metastore.thrift,
该文件详细定义了hive元数据的各个结构,以及相应的方法。
还是拿database来举例,对于database的结构定义如:

struct Database {
1: string name,
2: string description,
3: string locationUri,
}

对database的方法定义在service ThriftHiveMetastore extends fb303.FacebookService中,主要有以下几个:

void create_database(1:Database database) throws(1:AlreadyExistsException o1, 2:InvalidObjectException o2, 3:MetaException o3)
Database get_database(1:string name) throws(1:NoSuchObjectException o1, 2:MetaException o2)
void drop_database(1:string name, 2:bool deleteData) throws(1:NoSuchObjectException o1, 2:InvalidOperationException o2, 3:MetaException o3)
list<string> get_databases(1:string pattern) throws(1:MetaException o1)
list<string> get_all_databases() throws(1:MetaException o1)
定义好了metadata的thrift文件后,就可以通过thrift产生相应的脚本文件,
在build.xml中对于该编译命令为:
<target name=”thriftif”>
<echo>Executing thrift (which needs to be in your path) to build java metastore APIs…. </echo>
<exec executable=”thrift” failonerror=”true” dir=”.”>
<arg line=”–gen java:beans –gen cpp –gen php –gen py -I ${basedir}/../service/include/ -o ${src.dir} if/hive_metastore.thrift ” />
</exec>
</target>
当然我们也可以手工进行:

thrift –gen java:beans –gen cpp –gen php –gen py -I ${basedir}/../service/include/ -o ${src.dir} if/hive_metastore.thrift

执行后就会产生
drwxr-xr-x 2 hjl hjl 4096 May 27 08:25 gen-cpp
drwxrwxr-x 3 hjl hjl 4096 May 27 08:27 gen-javabean
drwxr-xr-x 3 hjl hjl 4096 May 27 08:25 gen-php
drwxr-xr-x 3 hjl hjl 4096 May 27 08:25 gen-py
下面几个脚本,对应着c++,java,php和python。

hive-0.6.0中使用的thrift版本为r790732,如果使用相同的thrift版本会产生和官方hive版本相同的文件,
而采用不同版本的thrfit的话,那么产生的各种文件会有些差距。

免责声明:文章转载自《thrift在hive中的应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OA之手机短信模块(一)E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Flink--将表转换为DataStream或DataSet

A Table可以转换成a DataStream或DataSet。通过这种方式,可以在Table API或SQL查询的结果上运行自定义的DataStream或DataSet程序 将表转换为DataStream 有两种模式可以将 Table转换为DataStream: 1:Append Mode 将一个表附加到流上 2:Retract Mode 将表转换为流...

springboot&amp;amp;layedit 上传文件,配置静态资源文件,存放磁盘其他目录

配置文件配置存放路径 upload-path=D:/upimages/ 表单页面 layedit.set({ uploadImage: { url: '/manage/upload' //接口url ,type: 'post' //默认post...

delphi 文件的操作

转载至:http://hi.baidu.com/endlesslove137/blog/item/86f1669990a7ed046f068ced.html //判断文件是否存在 FileExists//判断文件夹是否存在 DirectoryExists//删除文件 DeleteFile; Windows.DeleteFile//删除文件夹 Remove...

Hive扩展功能(六)--HPL/SQL(可使用存储过程)

软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 ##主机配置: ######一共m1, m2, m3这五部机, 每部主机的用户名都为centos ``` 192.168.179.201: m1 192.168.179.202: m2 192.168.179.203: m3 m1:...

设计模式--观察者模式初探和java Observable模式

初步认识观察者模式  观察者模式又称为发布/订阅(Publish/Subscribe)模式,因此我们可以用报纸期刊的订阅来形象的说明:     报社方负责出版报纸.     你订阅了该报社的报纸,那么只要报社发布了新报纸,就会通知你,或发到你手上.     如果你不想再读报纸,可以取消订阅,这样,报社发布了新报纸就不会再通知你.   理解其实以上的概念,就...

C#中将字符串转成 Base64 编码(小技巧)

/// <summary>/// /// </summary>/// <param name="Str"></param>/// <returns></returns>public string ToBase64Str(string Str){byte[] b = System.Te...