2016-05-09 13 views
5

Sto cercando di utilizzare Presto su Amazon S3 bucket, ma non ho trovato molte informazioni correlate su Internet.Presto su Amazon S3

Ho installato Presto su una micro istanza, ma non sono in grado di capire come connettermi a S3. C'è un secchio e ci sono dei file. Ho un server metastore hive in esecuzione e l'ho configurato in presto hive.properties. Ma quando provo a eseguire il comando LOCATION in hive, non funziona.

IT genera un errore dicendo che non è possibile trovare lo schema di file tipo s3.

E anche io non so perché abbiamo bisogno di eseguire hadoop ma senza hadoop l'alveare non esegue. C'è qualche spiegazione a questo.

This e this sono le documentazioni che ho seguito durante l'installazione.

risposta

2

Presto utilizza il metastore Hive per mappare le tabelle del database ai file sottostanti. Questi file possono esistere su S3 e possono essere archiviati in numerosi formati: CSV, ORC, Parquet, Seq ecc.

Il metastore Hive viene solitamente popolato tramite HQL (Hive Query Language) emettendo istruzioni DDL come CREATE EXTERNAL TABLE ... con una clausola LOCATION ... che fa riferimento ai file sottostanti che contengono i dati.

Al fine di ottenere Presto per la connessione a un alveare metastore è necessario modificare il file hive.properties (EMR mette questo in /etc/presto/conf.dist/catalog/) e impostare il parametro hive.metastore.uri al servizio parsimonia di un adeguato servizio di metastore Hive.

Le istanze del cluster Amazon EMR lo configureranno automaticamente per te se selezioni Hive e Presto, quindi è un buon punto di partenza.

Se si desidera testare questo su un'istanza di ec2 standalone, suggerirei di concentrarsi inizialmente sull'ottenere un servizio di hive funzionale che funzioni con l'infrastruttura Hadoop. Dovresti essere in grado di definire tabelle che risiedono localmente sul file system hdfs. Presto integra l'hive, ma richiede un setup hive funzionante, le dichiarazioni native di ddl di soon non sono così complete come hive, quindi farai la maggior parte della creazione di tabelle direttamente da hive.

In alternativa, è possibile definire i connettori Presto per un database mysql o postgresql, ma è solo un passaggio jdbc non credo che otterrai molto.

+0

Grazie per la risposta. Voglio provare presto senza nessun costo associato. Per favore controlla le modifiche, ho avuto più dubbi dopo aver esaminato il materiale pertinente che hai appena menzionato. – Codex

+0

Con Amazon EMR incorrerei in costi, quindi sto cercando di evitarlo. C'è un modo per aggirare questo. – Codex

+1

Ho scritto il seguente [post] (http://blog.danielcorin.com/code/2016/04/11/querying-s3-with-presto.html) l'anno scorso sull'argomento. Non ho provato la configurazione da allora ma c'è una possibilità che potrebbe aiutare. L'idea generale è di utilizzare un contenitore Docker come metastore Hive in modo che non sia necessario un servizio gestito come EMR solo per il routing delle query Presto. –