Utilisation d'une base de SQL données My Database externe ou d'Amazon Aurora - Amazon EMR

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.

Utilisation d'une base de SQL données My Database externe ou d'Amazon Aurora

Pour utiliser une base de SQL données My database externe ou Amazon Aurora comme métastore Hive, vous devez remplacer les valeurs de configuration par défaut du métastore dans Hive afin de spécifier l'emplacement de la base de données externe, que ce soit sur une instance Amazon My RDS ou SQL Amazon Aurora P. ostgreSQLinstance

Note

Hive ne prend pas en charge et n'empêche pas l'accès simultané en écriture aux tables du metastore. Si vous partagez des informations du metastore entre deux clusters, vous devez veiller à ne pas écrire dans la même table du metastore simultanément, sauf si vous écrivez dans des partitions différentes de la même table du metastore.

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
  1. Créez une base de SQL données My SQL ou Aurora Postgre. Si vous utilisez PostgreSQL, vous devez le configurer après avoir provisionné votre cluster. Seul My SQL est pris en charge lors de la création du cluster. Pour plus d'informations sur les différences entre Aurora My SQL et Aurora PostgreSQL, consultez Présentation d'Amazon Aurora My SQL et Utilisation d'Amazon Aurora SQL Postgre. Pour plus d'informations sur la création d'une RDS base de données Amazon en général, consultez https://aws.amazon.com/rds/.

  2. 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 Travailler avec les groupes de sécurité EMR gérés par Amazon.

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

    Important

    Si vous fournissez des informations sensibles, telles que des mots de passe, à la EMR configuration AmazonAPI, ces informations sont affichées pour les comptes disposant d'autorisations suffisantes. Si vous craignez que ces informations ne soient affichées à d'autres utilisateurs, créez le cluster avec un compte administratif et limitez l'accès des autres IAM utilisateurs (utilisateurs ou détenteurs d'informations d'identification déléguées) aux services du cluster en créant un rôle qui refuse explicitement les autorisations relatives à la elasticmapreduce:DescribeCluster API clé.

    1. Créez un fichier de configuration appelé hiveConfiguration.json contenant les modifications apportées à hive-site.xml comme illustré dans l'exemple suivant.

      hostnameRemplacez-le par l'DNSadresse de votre RDS instance Amazon exécutant la base de données username et password par 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 Athena dans le guide de RDSl'utilisateur Amazon. javax.jdo.option.ConnectionURLest la chaîne de JDBC connexion d'un JDBC métastore. javax.jdo.option.ConnectionDriverNameest le nom de classe de pilote d'un JDBC métastore.

      Mes SQL JDBC pilotes sont installés par AmazonEMR.

      La propriété value ne peut pas contenir d'espaces ni de retours chariot. Elle doit figurer entièrement sur une seule ligne.

      [ { "Classification": "hive-site", "Properties": { "javax.jdo.option.ConnectionURL": "jdbc:mysql://hostname:3306/hive?createDatabaseIfNotExist=true", "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver", "javax.jdo.option.ConnectionUserName": "username", "javax.jdo.option.ConnectionPassword": "password" } } ]
    2. Référencez le hiveConfiguration.json fichier lorsque vous créez le cluster, comme indiqué dans la AWS CLI commande suivante. Le fichier est stocké localement dans cette commande. Vous pouvez également charger le fichier sur Amazon S3 et le référencer depuis cet endroit, par exemple, s3://DOC-EXAMPLE-BUCKET/hiveConfiguration.json.

      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 --release-label emr-7.5.0 --instance-type m5.xlarge --instance-count 2 \ --applications Name=Hive --configurations file://hiveConfiguration.json --use-default-roles
  4. Connectez-vous au nœud primaire de votre cluster.

    Pour plus d'informations sur la connexion au nœud principal, consultez la section Se connecter au nœud principal SSH à l'aide du guide EMR de gestion Amazon.

  5. Créez vos tables Hive en spécifiant l'emplacement sur Amazon S3 en entrant une commande similaire à :

    CREATE EXTERNAL TABLE IF NOT EXISTS table_name ( key int, value int ) LOCATION s3://DOC-EXAMPLE-BUCKET/hdfs/
  6. Ajoutez votre script Hive au cluster en cours d'exécution.

Votre cluster Hive s'exécute à l'aide du metastore situé sur Amazon. RDS Lancez tous les clusters Hive supplémentaires qui partagent ce metastore en spécifiant l'emplacement du metastore.