Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Modificare il connettore metastore Hive esterno Athena
Se hai esigenze particolari, puoi modificare il connettore Athena per il metastore Hive esterno per uso personale. Athena fornisce un'implementazione di riferimento del connettore su GitHub .com all'indirizzo. https://github.com/awslabs/aws-athena-hive-metastore
L'implementazione di riferimento è un progetto Apache Maven
-
hms-service-api
— Contiene le API operazioni tra la funzione Lambda e i client del servizio Athena. Queste API operazioni sono definite nell'interfaccia.HiveMetaStoreService
Poiché si tratta di un contratto di servizio, non è necessario modificare nulla in questo modulo. -
hms-lambda-handler
— Un set di gestori Lambda predefiniti che elaborano tutte le chiamate al metastore Hive. API La classe è il dispatcher per tutte leMetadataHandler
chiamate. API Non è necessario modificare questo pacchetto. -
hms-lambda-func
– Una funzione Lambda di esempio con i seguenti componenti.-
HiveMetaStoreLambdaFunc
Una funzione Lambda di esempio che estendeMetadataHandler
. -
ThriftHiveMetaStoreClient
: Un client Thrift che comunica con il metastore Hive. Questo client è stato predisposto per Hive 2.3.0. Se si utilizza una versione di Hive diversa, potrebbe essere necessario aggiornare questa classe per assicurarsi che gli oggetti di risposta siano compatibili. -
ThriftHiveMetaStoreClientFactory
– Controlla il comportamento della funzione Lambda. Ad esempio, è possibile fornire il proprio set di provider di gestori sovrascrivendo il metodogetHandlerProvider()
. -
hms.properties
– Configura funzione Lambda La maggior parte dei casi d’uso richiede solo l'aggiornamento delle due proprietà seguenti.-
hive.metastore.uris
— il metastore URI di Hive nel formato.thrift://
<host_name>
:9083 -
hive.metastore.response.spill.location
: la posizione Amazon S3 in cui archiviare gli oggetti di risposta quando le loro dimensioni superano una determinata soglia (ad esempio, 4 MB). La soglia viene definita nella proprietàhive.metastore.response.spill.threshold
. La modifica del valore predefinito non è consigliata.
-
Nota
Queste due proprietà possono essere sovrascritte dalle variabili di ambiente Lambda
HMS_URIS
eSPILL_LOCATION
. Utilizzare queste variabili invece di ricompilare il codice sorgente per la funzione Lambda quando si desidera utilizzare la funzione con una diversa posizione del metastore Hive o con una diversa posizione di spill. -
-
hms-lambda-layer
: un progetto assembly di Maven che inseriscehms-service-api
,hms-lambda-handler
e le loro dipendenze in un file.zip
. Il file.zip
viene registrato come layer Lambda per l'utilizzo da parte di più funzioni Lambda. -
hms-lambda-rnp
: registra le risposte di una funzione Lambda e le utilizza per riprodurre la risposta. Puoi utilizzare questo modello per simulare le risposte Lambda per i test.
Costruire gli artefatti in modo autonomo
Dopo aver modificato il codice sorgente, puoi creare tu stesso gli artefatti e caricarli su una posizione Amazon S3.
Prima di creare gli artefatti, aggiornare le proprietà hive.metastore.uris
e hive.metastore.response.spill.location
nel file hms.properties
nel modulo hms-lambda-func
.
Per costruire gli artefatti, è necessario avere installato Apache Maven ed eseguire il comando mvn install
. Questo genera il layer del file .zip
nella cartella di output chiamata target
nel modulo hms-lambda-layer
e il file .jar
della funzione Lambda nel modulo hms-lambd-func
.