Presto學(xué)譯 | 3. 配置Hive連接器以查詢Hive數(shù)據(jù)

本文為官方文檔譯文片择。僅限交流使用嚎卫。

系列目錄

概述

使用 Presto 查詢Hive中的數(shù)據(jù)恐怕是最常用的了勃救。Hive 連接器就允許查詢在 Hive 數(shù)據(jù)倉庫中的數(shù)據(jù)新锈。Hive 由下面三個(gè)組件組成:

  • 存儲在 HDFS 或者 Amazon S3 中的各種各樣格式的數(shù)據(jù)文件甲脏。
  • 用于映射模式與表的元數(shù)據(jù)。這些元數(shù)據(jù)被存儲在一個(gè)數(shù)據(jù)庫中妹笆,比如 MySQL块请, 并且可以用過 Hive 的元數(shù)據(jù)服務(wù)盡情存取。
  • 叫做 HiveQL 的查詢語言拳缠。

Presto 僅僅使用前兩個(gè)組件:數(shù)據(jù)與元數(shù)據(jù)墩新。而不使用 HiveSQL 或者 Hive 的任何執(zhí)行環(huán)境。

支持的文件格式

現(xiàn)在(0.183)的 Hive 連接器支持的文件格式如下:

  • ORC
  • Parquet
  • Avro
  • RCFile
  • SequenceFile
  • JSON
  • Text

配置

Hive 連接器支持 Apache Hadoop 2.x 與從其衍生出來的平臺窟坐,比如 CDH 5 與 Hortonworks海渊。

etc/catalog/hive.properties 中配置如下內(nèi)容來掛載 hive-hadoop2 連接器作為 hive catalog绵疲。其中的 hive.metastore.uri 就是指定 Hive 元數(shù)據(jù)的地址,請很據(jù)實(shí)際情況修改臣疑。

connector.name=hive-hadoop2
hive.metastore.uri=thrift://example.net:9083

多個(gè) Hive 集群

如果你需要更多的 catalogs盔憨,你可以再次在 etc/catalog 添加另一個(gè) Hive 連接器的相關(guān)配置文件,且配置文件的的名字要與其他不同讯沈。

HDFS 配置

在最基礎(chǔ)的設(shè)置中郁岩,Presto 會自動(dòng)配置 HDFS 的客戶端,不需要任何的配置文件缺狠。但是在一些情況下问慎,比如使用同盟 HDFS 或者 NameNode 高可用,為了能夠正常存取 HDFS 集群儒老,就需要另外配置 HDFS 客戶端選項(xiàng)蝴乔。為了達(dá)到目的,就需要設(shè)置 hive.config.resources 屬性來引用你的 HDFS 配置文件:

hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml

最好只在需要配置文件的時(shí)候才進(jìn)行配置驮樊,并且盡量精簡配置文件中中的屬性,額外的屬性可能會造成問題片酝。

而且在所有的 Presto 節(jié)點(diǎn)中都要存在該配置文件囚衔。如果你直接引用的 hadoop 的配置文件,別忘了將配置文件拷貝到?jīng)]有 Hadoop 存在的節(jié)點(diǎn)上雕沿。

HDFS 用戶名

如果 HDFS 沒有使用 Kerberos练湿, Presto進(jìn)程將會使用系統(tǒng)用戶來存取 HDFS。你可以通過配置 JVM 系統(tǒng)屬性 HADOOP_USER_NAME 來指定用戶名审轮。比如當(dāng)前使用 hdfs_user 作為存取 HDFS 的用戶名:

-DHADOOP_USER_NAME=hdfs_user

Presto 中的數(shù)據(jù)類型轉(zhuǎn)換

  • varchar 可以和 tinyint, smallint, integer, bigint 互相轉(zhuǎn)換肥哎。
  • real 可以轉(zhuǎn)成 double。(real 是什么)
  • 整型的可以擴(kuò)大范圍轉(zhuǎn)換疾渣,比如 tinyint 轉(zhuǎn) smallint篡诽。

如果類型轉(zhuǎn)換失敗,就會返回 null榴捡。

一些例子

一般的查詢語法與 HiveQL 都是相同的杈女,下面介紹些操作模式(數(shù)據(jù)庫)與表的例子。

創(chuàng)建一個(gè)名叫 web 的模式(數(shù)據(jù)庫)吊圾,并存儲在 S3 中:

CREATE SCHEMA hive.web
WITH (location = 's3://my-bucket/')

在 web 中創(chuàng)建一個(gè)名叫page_views 的表达椰,使用 ORC 的格式進(jìn)行存儲;添加分區(qū) ds项乒, country啰劲;使用 user_id 進(jìn)行分桶,且數(shù)目為 50 個(gè)檀何。

CREATE TABLE hive.web.page_views (
  view_time timestamp,
  user_id bigint,
  page_url varchar,
  ds date,
  country varchar
)
WITH (
  format = 'ORC',
  partitioned_by = ARRAY['ds', 'country'],
  bucketed_by = ARRAY['user_id'],
  bucket_count = 50
)

刪除一個(gè)分區(qū)中的數(shù)據(jù):

DELETE FROM hive.web.page_views
WHERE ds = DATE '2016-08-09'
  AND country = 'US'

創(chuàng)建一個(gè)外部表蝇裤,名叫 request_logs:

CREATE TABLE hive.web.request_logs (
  request_time timestamp,
  url varchar,
  ip varchar,
  user_agent varchar
)
WITH (
  format = 'TEXTFILE',
  external_location = 's3://my-bucket/data/logs/'
)

刪除這個(gè)外部表廷支,且只會刪除元數(shù)據(jù),不會刪除表的數(shù)據(jù)猖辫。

DROP TABLE hive.web.request_logs

刪除一整個(gè)模式:

DROP SCHEMA hive.web

Hive 連接器的限制

Delete 僅僅在 where 語句中指定的是分區(qū)字段的時(shí)候才可用酥泞。

End!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市啃憎,隨后出現(xiàn)的幾起案子芝囤,更是在濱河造成了極大的恐慌,老刑警劉巖辛萍,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悯姊,死亡現(xiàn)場離奇詭異,居然都是意外死亡贩毕,警方通過查閱死者的電腦和手機(jī)悯许,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辉阶,“玉大人先壕,你說我怎么就攤上這事∽惶穑” “怎么了垃僚?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長规辱。 經(jīng)常有香客問我谆棺,道長,這世上最難降的妖魔是什么罕袋? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任改淑,我火速辦了婚禮,結(jié)果婚禮上浴讯,老公的妹妹穿的比我還像新娘朵夏。我一直安慰自己,他們只是感情好兰珍,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布侍郭。 她就那樣靜靜地躺著,像睡著了一般掠河。 火紅的嫁衣襯著肌膚如雪亮元。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天唠摹,我揣著相機(jī)與錄音爆捞,去河邊找鬼。 笑死勾拉,一個(gè)胖子當(dāng)著我的面吹牛煮甥,可吹牛的內(nèi)容都是我干的盗温。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼成肘,長吁一口氣:“原來是場噩夢啊……” “哼卖局!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起双霍,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砚偶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后洒闸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體染坯,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年丘逸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了单鹿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡深纲,死狀恐怖仲锄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情湃鹊,我是刑警寧澤昼窗,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站涛舍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唆途。R本人自食惡果不足惜富雅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肛搬。 院中可真熱鬧没佑,春花似錦、人聲如沸温赔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陶贼。三九已至啤贩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拜秧,已是汗流浹背痹屹。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枉氮,地道東北人志衍。 一個(gè)月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓暖庄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親楼肪。 傳聞我的和親對象是個(gè)殘疾皇子培廓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容