

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.

# Caractéristiques de l'application Hive pour les versions AMI antérieures d'Amazon EMR
<a name="emr-3x-hive"></a>

## Les fichiers journaux
<a name="emr-3x-hive-log-files"></a>

Lorsque vous utilisez les versions AMI 2.x et 3.x d'Amazon EMR, les fichiers 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  A partir de cette version, Amazon EMR utilise un nom de fichier non versionné, `hive.log`. Les versions mineures partagent le même emplacement du journal que la version majeure.   | 
| 0.11.0 | hive\$10110.log   Les 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\$1081.log   Les 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\$107\$11.log   Les 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\$107.log | 
| 0.5 | hive\$105.log | 
| 0.4 | hive.log | 

## Fonctionnalité de format d'entrée avec fractionnement
<a name="emr-3x-hive-split-input"></a>

Pour implémenter la fonctionnalité de format d'entrée avec fractionnement à l'aide des versions de Hive antérieures à 0.13.1 (versions AMI d'Amazon EMR antérieures à 3.11.0), utilisez les commandes suivantes :

```
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 profiter de la même fonctionnalité de format d'entrée avec fractionnement dans la version 3.11.0 AMI Amazon EMR, procédez comme suit :

```
set hive.hadoop.supports.splittable.combineinputformat=true;
```

## Ports de service Thrift
<a name="emr-3x-hive-thrift-service"></a>

 Thrift est une infrastructure RPC qui définit un format de sérialisation binaire compact utilisé pour conserver les structures de données afin de les analyser ultérieurement. 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/](http://wiki.apache.org/thrift/). 

## Utilisation de Hive pour récupérer des partitions
<a name="emr-3x-hive-recover-partition"></a>

Amazon EMR inclut une instruction du langage de requête Hive qui récupère les partitions d'une table depuis des données de 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 table` et par conséquent la prise en charge de `recover partitions` n'est plus assurée. Pour plus d'informations, consultez [https://cwiki.apache. org/confluence/display/Hive/LanguageManual\$1DDL](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL).

## Transmission d'une variable Hive à un script
<a name="emr-3x-hive-pass-variable"></a>

Pour transmettre une variable à une étape Hive à l'aide de AWS CLI, tapez la commande suivante, *myKey* remplacez-la par le nom de votre paire de clés EC2 et remplacez-la par le nom *amzn-s3-demo-bucket* de votre bucket. 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 (\$1) 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-version 3.9 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type m3.xlarge --instance-count 3 \
--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
<a name="emr-3x-hive-external-metastore"></a>

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 metastore situé en dehors du cluster EMR**

1. Créez une base de données MySQL ou Aurora à l'aide d'Amazon RDS.

   Pour plus d'informations sur la façon de créer une base de données Amazon RDS, consultez [Mise en route sur Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.html).

1. Modifiez vos groupes de sécurité pour autoriser les connexions JDBC 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 [Groupes de sécurité Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) dans le *Guide de l'utilisateur Amazon RDS*.

1. Définissez les valeurs de configuration JDBC dans `hive-site.xml` :

   1. 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'adresse DNS de l'instance Amazon RDS qui exécute la base de données. *username*et *password* sont les informations d'identification de votre base de données. Pour plus d'informations sur la connexion aux instances de bases de données MySQL et Aurora, consultez les sections [Connexion à une instance de base de données exécutant le moteur de base de données MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) et [Connexion à un cluster de bases de données Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connecting.html) dans le *Guide de l'utilisateur Amazon RDS*.

      Les pilotes JDBC sont installés par Amazon EMR. 
**Note**  
La propriété value ne doit pas contenir d'espaces ni de retours chariot. Elle doit figurer entièrement sur une seule ligne.

   1. Enregistrez votre fichier `hive-site.xml` dans un emplacement sur Amazon S3, tel que `s3://amzn-s3-demo-bucket/hive-site.xml`.

1. 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 (\$1) 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-version 3.10 \
   --applications Name=Hue Name=Hive Name=Pig \
   --use-default-roles --ec2-attributes KeyName=myKey \
   --instance-type m3.xlarge --instance-count 3 \
   --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"]
   ```

## Connexion à Hive à l'aide de JDBC
<a name="emr-3x-hive-jdbc"></a>

Pour vous connecter à Hive via JDBC, vous devez télécharger le pilote JDBC et installer un client SQL. L'exemple suivant montre comment utiliser SQL Workbench/J pour se connecter à Hive à l'aide de JDBC.

**Pour télécharger les pilotes JDBC**

1. Téléchargez et extrayez les pilotes correspondant aux versions de Hive auxquelles vous souhaitez accéder. La version de Hive varie en fonction de l'image AMI que vous choisissez lorsque vous créez un cluster Amazon EMR.
   + [Pilotes JDBC Hive 0.13.1 : JDBC\$11.0.4.1004.zip https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/ AmazonHive](https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/AmazonHiveJDBC_1.0.4.1004.zip)
   + Pilotes JDBC Hive 0.11.0 : [https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0](https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0)
   + Pilotes JDBC Hive 0.8.1 : [https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1](https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1)

1. Installez SQL Workbench/J. Pour plus d'informations, consultez la section [Installation et démarrage de SQL Workbench/J](http://www.sql-workbench.net/manual/install.html) dans le manuel d'utilisation de SQL Manual. Workbench/J 

1. Créez un tunnel SSH vers le nœud maître du cluster. Le port de connexion diffère en fonction de la version de Hive. Les exemples fournis dans les tableaux ci-dessous concernent les utilisateurs de Linux (commandes `ssh`) et les commandes PuTTY pour les utilisateurs de Windows  
**Commandes SSH Linux**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/emr-3x-hive.html)  
**Paramètres du tunnel PuTTY (Windows)**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/emr-3x-hive.html)

1. Ajoutez le pilote JDBC à SQL Workbench.

   1. Dans la boîte de dialogue **Select Connection Profile (Sélectionner le profil de connexion)**, sélectionnez **Manage Drivers (Gérer les pilotes)**. 

   1. Sélectionnez l'icône **Create a new entry (Créer une nouvelle saisie)** (page blanche).

   1. Dans le champ **Name (Nom)**, saisissez **Hive JDBC**.

   1. Pour **Library (Bibliothèque)**, cliquez sur l'icône **Select the JAR file(s) (Sélectionner le(s) fichier(s) JAR)**.

   1. Sélectionnez les fichiers JAR comme indiqué dans le tableau suivant.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/emr-3x-hive.html)

   1. 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**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/emr-3x-hive.html)

1. Lorsque vous revenez à la boîte de dialogue **Select Connection Profile (Sélectionner le profil de connexion)**, vérifiez que le champ **Driver (Pilote)** est défini sur **Hive JDBC** et fournissez la chaîne de connexion JDBC dans le champ **URL**, en vous conformant au tableau suivant.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/emr/latest/ReleaseGuide/emr-3x-hive.html)

   Si votre cluster utilise la version 3.3.1 d'AMI ou une version ultérieure, dans la boîte de dialogue **Select Connection Profile (Sélectionner le profil de connexion)**, tapez **hadoop** dans le champ **Username (Nom d'utilisateur)**.