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à.
Implementazione di riferimento
L'implementazione di riferimento è un progetto Apache Maven
-
hms-service-api
– Contiene le operazioni API tra la funzione Lambda e i client del servizio Athena. Queste operazioni API sono definite nell'interfacciaHiveMetaStoreService
. Poiché si tratta di un contratto di servizio, non è necessario modificare nulla in questo modulo. -
hms-lambda-handler
– Un insieme di gestori Lambda predefiniti che elaborano tutte le chiamate API al metastore Hive. La classeMetadataHandler
è il dispatcher per tutte le 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
: l’URI del metastore Hive nel formatothrift://
.<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
La maggior parte dei casi d'uso non richiede la modifica dell'implementazione di riferimento. Tuttavia, se necessario, è possibile modificare il codice sorgente, creare manualmente gli artefatti e caricarli in 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
.