2016-05-09 316 views
5

我試圖在Amazon S3存儲桶上使用Presto,但在Internet上還沒有找到太多相關信息。亞馬遜S3上的Presto

我已經在微型實例上安裝了Presto,但我無法弄清楚如何連接到S3。有一個桶,裏面有文件。我有一個正在運行的配置單元Metastore服務器,並且我已經配置它在presto hive.properties中。但是當我嘗試在配置單元中運行LOCATION命令時,它不起作用。

它引發錯誤,說找不到文件格式類型s3。

而且我也不知道爲什麼我們需要運行hadoop,但沒有hadoop配置單元不運行。有沒有任何解釋。

Thisthis是我在設置時遵循的文檔。

回答

2

Presto使用Hive Metastore將數據庫表映射到其基礎文件。這些文件可以存在於S3,並且可以被存儲在一個數的格式 - CSV,ORC,鑲木,SEQ等

蜂房metastore通常通過發出DDL語句等CREATE EXTERNAL TABLE ...通過HQL(蜂房查詢語言)填充引用保存數據的底層文件的LOCATION ...子句。

爲了獲得普雷斯托連接到蜂巢metastore你將需要編輯hive.properties文件(EMR使這/etc/presto/conf.dist/catalog/)和hive.metastore.uri參數設定爲合適的蜂巢metastore服務的節儉服務。

如果您選擇Hive和Presto,Amazon EMR羣集實例將自動爲您配置,因此這是一個很好的開始。

如果你想在一個獨立的ec2實例上測試這個,那麼我建議你首先關注獲得一個Hadoop基礎架構的功能性的hive服務。您應該能夠定義本地駐留在hdfs文件系統上的表。 Presto補充了配置單元,但確實需要一個正常工作的配置單元,而presto的native ddl語句不像配置單元那樣功能完整,所以您將直接從配置單元創建大多數表格。

或者,你可以爲一個mysql或postgresql數據庫定義Presto連接器,但它只是一個jdbc傳遞,我認爲你不會獲得太多收益。

+0

感謝您的回覆。我想嘗試與絕對沒有相關的成本。請檢查編輯內容,在閱讀剛剛提到的相關材料後,我有更多疑問。 – Codex

+0

與亞馬遜EMR我會產生成本,所以我試圖避免這一點。有沒有辦法解決這個問題。 – Codex

+1

去年,我寫了下列[post](http://blog.danielcorin.com/code/2016/04/11/querying-s3-with-presto.html)。我還沒有嘗試安裝,但有一個機會可以幫助。總的想法是使用Docker容器作爲Hive Metastore,因此您不需要像EMR那樣的託管服務,僅用於路由Presto查詢。 –