hive thriftserver,
节约在储备中的应用ORATEA
节约在储备中的应用大数据
添加评论
六272011
节约是一种可伸缩的跨语言服务的发展软件框架。
它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,工作效率和无缝地与C,C#,Java,Python和服务器端编程语言(专业超文本预处理器的缩写)和红宝石结合。
节约是脸谱网开发的,我们现在把它作为开源软件使用节俭。允许你定义一个简单的定义文件中的数据类型和服务接口。
以作为输入文件,编译器生成代码用来方便地生成位置遥控(远程位置控制)客户端和服务器通信的无缝跨编程语言。
对于节约的详细介绍见:http://thrift.apache.org/
节约在储备中有好几处应用,目的都是为了实现跨语言的服务。
最近详细的看了在元数据模块中的节约应用。
元数据中节约定义文件为\配置单元-0。6 .0 \ src \ metastore \ if \ hive _ metastore。节俭,
该文件详细定义了储备元数据的各个结构,以及相应的方法。
还是拿资料库来举例,对于资料库的结构定义如:
结构数据库{
1:字符串名称,
2:字符串描述,
3:字符串locationUri,
}
对资料库的方法定义在服务ThriftHiveMetastore扩展fb303 .FacebookService服务服务中,主要有以下几个:
void create _ Database(1:Database数据库)抛出(1:AlreadyExistsException o1,2:InvalidObjectException o2,3:MetaException o3)
数据库get_database(1:字符串名称)抛出(1:NoSuchObjectException o1,2:MetaException o2)
void drop_database(1:字符串名称,2:bool deleteData)抛出(1:NoSuchObjectException o1,2:InvalidOperationException o2,3:MetaException o3)
列表字符串获取_数据库(1:字符串模式)抛出(1:元异常o1)
列表字符串获取所有数据库()抛出(1:元异常o1)
定义好了元数据的节约文件后,就可以通过节约产生相应的脚本文件,
在build.xml中对于该编译命令为:
target name="thriftif "
echo执行节约(需要在您的路径中)来构建java metastore APIs回声
exec executable=" thrift " failonerror=" true " dir=","
arg line="gen Java:beansgen CPPgen PHPgen py-I $ { basedir }/./service/include/-o $ { src。dir } if/hive _ metastore。节俭"/
/exec
/目标
当然我们也可以手工进行:
thriftgen Java:beansgen CPPgen PHPgen py-I $ { basedir }/./service/include/-o $ { src。dir } if/hive _ metastore。节约
执行后就会产生
5月27日08:25 gen-cpp
drwxrwxr-x 3 hjl hjl 4096年5月27日08:27 gen-javabean
5月27日08:25 gen-php
5月27日08:25第一代
下面几个脚本,对应着c,java,php和python。
hive-0.6.0中使用的节约版本为r790732,如果使用相同的节约版本会产生和官方储备版本相同的文件,
而采用不同版本的thrfit的话,那么产生的各种文件会有些差距。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。