黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

thrift在hive中的應(yīng)用

系統(tǒng) 4749 0

thrift在hive中的應(yīng)用 ? ORATEA

thrift是一種可伸縮的跨語言服務(wù)的發(fā)展軟件框架。

它結(jié)合了功能強(qiáng)大的軟件堆棧的代碼生成引擎,以建設(shè)服務(wù),工作效率和無縫地與C + +,C#,Java,Python和PHP和Ruby結(jié)合。

thrift是facebook開發(fā)的,我們現(xiàn)在把它作為開源軟件使用。thrift允許你定義一個(gè)簡單的定義文件中的數(shù)據(jù)類型和服務(wù)接口。

以作為輸入文件,編譯器生成代碼用來方便地生成RPC客戶端和服務(wù)器通信的無縫跨編程語言。

對(duì)于thrift的詳細(xì)介紹見: http://thrift.apache.org/

thrift在hive中有好幾處應(yīng)用,目的都是為了實(shí)現(xiàn)跨語言的服務(wù)。

最近詳細(xì)的看了在metadata模塊中的thrift應(yīng)用。

metadata中thrift定義文件為\hive-0.6.0\src\metastore\if\hive_metastore.thrift,

該文件詳細(xì)定義了hive元數(shù)據(jù)的各個(gè)結(jié)構(gòu),以及相應(yīng)的方法。

還是拿database來舉例,對(duì)于database的結(jié)構(gòu)定義如:

struct Database {

? 1: string name,

? 2: string description,

? 3: string locationUri,

}

對(duì)database的方法定義在service ThriftHiveMetastore extends fb303.FacebookService中,主要有以下幾個(gè):

? 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產(chǎn)生相應(yīng)的腳本文件,

在build.xml中對(duì)于該編譯命令為:

? <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>

?

當(dāng)然我們也可以手工進(jìn)行:

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

執(zhí)行后就會(huì)產(chǎn)生

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

下面幾個(gè)腳本,對(duì)應(yīng)著c++,java,php和python。

hive-0.6.0中使用的thrift版本為r790732,如果使用相同的thrift版本會(huì)產(chǎn)生和官方hive版本相同的文件,

而采用不同版本的thrfit的話,那么產(chǎn)生的各種文件會(huì)有些差距。

thrift在hive中的應(yīng)用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論