Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Spécificités de l'application Hive pour les AMI versions antérieures d'Amazon EMR
Les fichiers journaux
Avec EMR AMI les versions 2.x et 3.x d'Amazon, les journaux Hive sont enregistrés dans. /mnt/var/log/apps/
La version de Hive que vous exécutez détermine le nom du fichier journal, comme illustré dans le tableau suivant. Cela permet de prendre en charge les versions simultanées de Hive.
Version de Hive | Nom du fichier journal |
---|---|
0.13.1 | hive.log
NoteÀ partir de cette version, Amazon EMR utilise un nom de fichier non versionné,. |
0.11.0 | hive_0110.log
NoteLes versions mineures de Hive 0.11.0, par exemple 0.11.0.1, partagent le même emplacement du fichier journal que Hive 0.11.0. |
0.8.1 | hive_081.log
NoteLes versions mineures de Hive 0.8.1, par exemple Hive 0.8.1.1, partagent le même emplacement du fichier journal que Hive 0.8.1. |
0.7.1 | hive_07_1.log
NoteLes versions mineures de Hive 0.7.1, par exemple Hive 0.7.1.3 et Hive 0.7.1.4, partagent le même emplacement du fichier journal que Hive 0.7.1. |
0.7 | hive_07.log |
0.5 | hive_05.log |
0.4 | hive.log |
Fonctionnalité de format d'entrée avec fractionnement
Pour implémenter la fonctionnalité de saisie partagée à l'aide des versions de Hive antérieures à 0.13.1 (EMRAMIversions Amazon antérieures à 3.11.0), utilisez ce qui suit :
hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveCombineSplitsInputFormat; hive> set mapred.min.split.size=
100000000
;
Cette fonctionnalité est devenue obsolète avec Hive 0.13.1. Pour bénéficier de la même fonctionnalité de format d'entrée fractionné dans Amazon EMR AMI version 3.11.0, utilisez ce qui suit :
set hive.hadoop.supports.splittable.combineinputformat=true;
Ports de service Thrift
Thrift est un RPC framework qui définit un format de sérialisation binaire compact utilisé pour conserver les structures de données en vue d'une analyse ultérieure. Généralement, Hive configure le serveur pour qu'il fonctionne sur les ports suivants.
Version de Hive | Numéro de port |
---|---|
Hive 0.13.1 | 10 000 |
Hive 0.11.0 | 10004 |
Hive 0.8.1 | 10003 |
Hive 0.7.1 | 10002 |
Hive 0.7 | 10001 |
Hive 0.5 | 10 000 |
Pour plus d'informations sur les services thrift, consultez http://wiki.apache.org/thrift/
Utilisation de Hive pour récupérer des partitions
Amazon EMR inclut une instruction dans le langage de requête Hive qui permet de récupérer les partitions d'une table à partir des données d'une table situées dans Amazon S3. L'exemple suivant en est une illustration.
CREATE EXTERNAL TABLE (json string) raw_impression PARTITIONED BY (dt string) LOCATION 's3://elastic-mapreduce/samples/hive-ads/tables/impressions'; ALTER TABLE logs RECOVER PARTITIONS;
Les données et les répertoires de la partition doit être à l'emplacement spécifié dans la définition de table et doivent être nommées selon la convention Hive : par exemple, dt=2009-01-01
.
Note
Après Hive 0.13.1, cette fonctionnalité est prise en charge en mode natif à l'aide de msck
repair
et par conséquent la prise en charge de table
recover
partitions
n'est plus assurée. Pour plus d'informations, consultez https://cwiki.apache. org/confluence/display/Hive/LanguageManual
Transmission d'une variable Hive à un script
Pour passer une variable dans une étape Hive à l'aide de AWS CLI, tapez la commande suivante, remplacez myKey
avec le nom de votre paire de EC2 clés, et remplacez amzn-s3-demo-bucket
avec le nom de votre compartiment. Dans cet exemple, SAMPLE
est une valeur de variable précédée par le commutateur -d
. Cette variable est définie dans le script Hive comme suit : ${SAMPLE}
.
Note
Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.9
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-typem3.xlarge
--instance-count3
\ --steps Type=Hive
,Name="Hive Program
",ActionOnFailure=CONTINUE
,\ Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q
,-d,\ INPUT=s3://elasticmapreduce/samples/hive-ads/tables
,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/
,\ -d,SAMPLE
=s3://elasticmapreduce/samples/hive-ads/
]
Spécification d'un emplacement de metastore externe
La procédure suivante vous montre comment remplacer les valeurs de configuration par défaut pour l'emplacement du metastore Hive et démarrer un cluster en utilisant l'emplacement du metastore reconfiguré.
Pour créer un métastore situé en dehors du cluster EMR
-
Créez une base de données My SQL ou Aurora à l'aide d'AmazonRDS.
Pour plus d'informations sur la création d'une RDS base de données Amazon, consultez Getting started with Amazon RDS.
-
Modifiez vos groupes de sécurité pour autoriser JDBC les connexions entre votre base de données et le groupe de sécurité ElasticMapReduce-Master.
Pour plus d'informations sur la façon de modifier vos groupes de sécurité pour l'accès, consultez la section Groupes RDS de sécurité Amazon dans le guide de RDS l'utilisateur Amazon.
-
Définissez les valeurs JDBC de configuration dans
hive-site.xml
:-
Créez un fichier de configuration
hive-site.xml
contenant les éléments suivants :<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mariadb://
hostname
:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password
</value> <description>Password to use against metastore database</description> </property> </configuration>hostname
est l'DNSadresse de l'RDSinstance Amazon qui exécute la base de données.username
andpassword
sont les informations d'identification de votre base de données. Pour plus d'informations sur la connexion aux instances de base de données My SQL et Aurora, consultez les sections Connexion à une instance de base de données exécutant le moteur de SQL base de données My et Connexion à un cluster de base de données Aurora dans le guide de RDS l'utilisateur Amazon.Les JDBC pilotes sont installés par AmazonEMR.
Note
La propriété value ne doit pas contenir d'espaces ni de retours chariot. Elle doit figurer entièrement sur une seule ligne.
-
Enregistrez votre fichier
hive-site.xml
dans un emplacement sur Amazon S3, tel ques3://
.amzn-s3-demo-bucket/
hive-site.xml
-
-
Créez un cluster, en spécifiant l'emplacement Amazon S3 du fichier
hive-site.xml
personnalisé.L'exemple de commande suivant illustre une AWS CLI commande qui effectue cette opération.
Note
Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.10
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-typem3.xlarge
--instance-count3
\ --bootstrap-actions Name="Install Hive Site Configuration
",\ Path="s3://region
.elasticmapreduce/libs/hive/hive-script",\ Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site",\ "--hive-site=s3://amzn-s3-demo-bucket
/hive-site.xml","--hive-versions","latest"]
Connect to Hive en utilisant JDBC
Pour vous connecter à Hive viaJDBC, vous devez télécharger le JDBC pilote et installer un SQL client. L'exemple suivant montre comment utiliser SQL Workbench/J pour se connecter à Hive en utilisant. JDBC
Pour télécharger des JDBC pilotes
-
Téléchargez et extrayez les pilotes correspondant aux versions de Hive auxquelles vous souhaitez accéder. La version Hive varie en fonction de celle AMI que vous choisissez lorsque vous créez un EMR cluster Amazon.
-
Pilotes Hive 0.11.0 JDBC : https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0
-
Pilotes Hive 0.8.1 JDBC : https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1
-
Installez SQL Workbench/J. Pour plus d'informations, voir Installation et démarrage de SQL Workbench/J dans le manuel d'utilisation du SQL manuel Workbench/J
. -
Créez un SSH tunnel vers le nœud principal du cluster. Le port de connexion diffère en fonction de la version de Hive. Des exemples de commandes sont fournis dans les tableaux ci-dessous pour les
ssh
utilisateurs de Linux et des TTY commandes Pu pour les utilisateurs de Windows.SSHCommandes Linux Version de Hive Command 0.13.1 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10000:localhost:10000 hadoop@master-public-dns-name
0.11.0 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10004:localhost:10004 hadoop@master-public-dns-name
0.8.1 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10003:localhost:10003 hadoop@master-public-dns-name
0.7.1 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10002:localhost:10002 hadoop@master-public-dns-name
0.7 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10001:localhost:10001 hadoop@master-public-dns-name
0.5 ssh -o ServerAliveInterval=10 -i
path-to-key-file
-N -L 10000:localhost:10000 hadoop@master-public-dns-name
Paramètres du TTY tunnel Windows Pu Version de Hive Paramètres de tunnel 0.13.1 Port source : 10000 Destination : master-public-dns-name
:100000.11.0 Port source : 10004 Destination : master-public-dns-name
:100040.8.1 Port source : 10003 Destination : master-public-dns-name
:10003 -
Ajoutez le JDBC pilote à SQL Workbench.
-
Dans la boîte de dialogue Select Connection Profile (Sélectionner le profil de connexion), sélectionnez Manage Drivers (Gérer les pilotes).
-
Sélectionnez l'icône Create a new entry (Créer une nouvelle saisie) (page blanche).
-
Dans le champ Name (Nom), saisissez
Hive JDBC
. -
Pour Bibliothèque, cliquez sur l'icône Sélectionner le ou les JAR fichiers.
-
Sélectionnez JAR les fichiers comme indiqué dans le tableau suivant.
Version du pilote Hive JARfichiers à ajouter 0.13.1 hive_metastore.jar hive_service.jar HiveJDBC3.jar libfb303-0.9.0.jar libthrift-0.9.0.jar log4j-1.2.14.jar ql.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar TCLIServiceClient.jar
0.11.0 hadoop-core-1.0.3.jar hive-exec-0.11.0.jar hive-jdbc-0.11.0.jar hive-metastore-0.11.0.jar hive-service-0.11.0.jar libfb303-0.9.0.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar
0.8.1 hadoop-core-0.20.205.jar hive-exec-0.8.1.jar hive-jdbc-0.8.1.jar hive-metastore-0.8.1.jar hive-service-0.8.1.jar libfb303-0.7.0.jar libthrift-0.7.0.jar log4j-1.2.15.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
0.7.1 hadoop-0.20-core.jar hive-exec-0.7.1.jar hive-jdbc-0.7.1.jar hive-metastore-0.7.1.jar hive-service-0.7.1.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar
0.7 hadoop-0.20-core.jar hive-exec-0.7.0.jar hive-jdbc-0.7.0.jar hive-metastore-0.7.0.jar hive-service-0.7.0.jar libfb303.jar commons-logging-1.0.4.jar slf4j-api-1.5.6.jar slf4j-log4j12-1.5.6.jar
0.5 hadoop-0.20-core.jar hive-exec-0.5.0.jar hive-jdbc-0.5.0.jar hive-metastore-0.5.0.jar hive-service-0.5.0.jar libfb303.jar log4j-1.2.15.jar commons-logging-1.0.4.jar
-
Dans la boîte de dialogue Please select one driver (Veuillez sélectionner un pilote), sélectionnez un pilote en vous conformant au tableau suivant, puis cliquez sur OK.
Version de Hive Nom de classe du pilote 0.13.1 com.amazon.hive.jdbc3.HS2Driver
0.11.0 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.8.1 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.7.1 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.7 org.apache.hadoop.hive.jdbc.HiveDriver.jar
0.5 org.apache.hadoop.hive.jdbc.HiveDriver.jar
-
-
Lorsque vous revenez à la boîte de dialogue Sélectionner le profil de connexion, vérifiez que le champ Driver est défini sur Hive JDBC et saisissez la chaîne de JDBC connexion dans le URLchamp conformément au tableau suivant.
Version de Hive JDBCchaîne de connexion 0.13.1 jdbc:hive2://localhost:10000/default
0.11.0 jdbc:hive://localhost:10004/default
0.8.1 jdbc:hive://localhost:10003/default
Si votre cluster utilise AMI la version 3.3.1 ou ultérieure, dans la boîte de dialogue Sélectionner le profil de connexion, saisissez
hadoop
le champ Nom d'utilisateur.