Configuration d'une connexion à Hive sécurisée par Kerberos - 7.2

Guide d'utilisation de Talend Data Preparation

author
Talend Documentation Team
EnrichVersion
7.2
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
task
Qualité et préparation de données > Nettoyage de données
EnrichPlatform
Talend Data Preparation

Hive est l'une des nombreuses bases de données pouvant être ajoutées à la liste des sources de données disponibles pour Talend Data Preparation.

Dans la page Ajout d'un nouveau type de base de données, vous avez appris à ajouter de nouveaux pilotes JDBC afin d'enrichir la liste des bases de données disponibles depuis Talend Data Preparation. Cependant, l'exemple suivant est centré sur la configuration d'une connexion directe entre votre base de données Hive et Talend Data Preparation. Une étape de configuration supplémentaire vous permettra de sécuriser cette connexion avec Kerberos.

Procédure

  1. Dans le dossier d'installation de Components Catalog, ouvrez le fichier config/settings.xml.
    Par défaut, le dossier d'installation de Components Catalog et situé dans <TDP_installation_folder>/services/.
  2. Ajoutez le référentiel Cloudera à settings.xml :
    <settings>
        <profile>
            <id>cloudera</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>cloudera</id>
                    <name>Cloudera repository</name>
                    <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
                    <layout>default</layout>
                </repository>
            </repositories>
        </profile>
    </settings>
  3. Ouvrez <components_catalog_path>/config/jdbc_config.json et ajoutez le pilote Hive :
    {
        "id": "Hive",
        "class": "org.apache.hive.jdbc.HiveDriver",
        "url": "jdbc:hive2://host:10000/default;principal=<your
        principal>",
        "paths": [
            {
                "path": "mvn:commons-el/commons-el/1.0"
            },
            {
                "path": "mvn:org.datanucleus/datanucleus-core/3.2.10"
            },
            {
                "path": "mvn:asm/asm-commons/3.1"
            },
            {
                "path": "mvn:tomcat/jasper-compiler/5.5.23"
            },
            {
                "path": "mvn:org.apache.derby/derby/10.11.1.1"
            },
            {
                "path": "mvn:jline/jline/2.12"
            },
            {
                "path": "mvn:org.apache.commons/commons-compress/1.4.1"
            },
            {
                "path": "mvn:com.fasterxml.jackson.core/jackson-annotations/2.2.2"
            },
            {
                "path": "mvn:org.apache.hive/hive-metastore/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:org.apache.hive/hive-shims/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:org.apache.hive/hive-shims/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:joda-time/joda-time/1.6"
            },
            {
                "path": "mvn:org.codehaus.jackson/jackson-mapper-asl/1.9.2"
            },
            {
                "path": "mvn:com.google.code.findbugs/jsr305/3.0.0"
            },
            {
                "path": "mvn:org.apache.zookeeper/zookeeper/3.4.5-cdh5.13.1"
            },
            {
                "path": "mvn:antlr/antlr/2.7.7"
            },
            {
                "path": "mvn:commons-pool/commons-pool/1.5.4"
            },
            {
                "path": "mvn:org.apache.avro/avro/1.7.6-cdh5.13.1"
            },
            {
                "path": "mvn:org.antlr/stringtemplate/3.2.1"
            },
            {
                "path": "mvn:org.slf4j/slf4j-log4j12/1.7.5"
            },
            {
                "path": "mvn:org.eclipse.jetty.aggregate/jetty-all/7.6.0.v20120127"
            },
            {
                "path": "mvn:com.twitter/parquet-hadoop-bundle/1.5.0-cdh5.13.1"
            },
            {
                "path": "mvn:com.sun.jersey/jersey-servlet/1.14"
            },
            {
                "path": "mvn:commons-dbcp/commons-dbcp/1.4"
            },
            {
                "path": "mvn:org.slf4j/slf4j-api/1.7.5"
            },
            {
                "path": "mvn:javax.servlet.jsp/jsp-api/2.1"
            },
            {
                "path": "mvn:com.codahale.metrics/metrics-jvm/3.0.2"
            },
            {
                "path": "mvn:com.thoughtworks.paranamer/paranamer/2.3"
            },
            {
                "path": "mvn:tomcat/jasper-runtime/5.5.23"
            },
            {
                "path": "mvn:com.fasterxml.jackson.core/jackson-databind/2.2.2"
            },
            {
                "path": "mvn:asm/asm-tree/3.1"
            },
            {
                "path": "mvn:com.codahale.metrics/metrics-core/3.0.2"
            },
            {
                "path": "mvn:com.sun.jersey/jersey-core/1.14"
            },
            {
                "path": "mvn:org.apache.hive/hive-service/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:org.jamon/jamon-runtime/2.3.1"
            },
            {
                "path": "mvn:com.sun.jersey/jersey-server/1.14"
            },
            {
                "path": "mvn:org.apache.commons/commons-lang3/3.1"
            },
            {
                "path": "mvn:com.codahale.metrics/metrics-json/3.0.2"
            },
            {
                "path": "mvn:org.apache.hive/hive-common/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:org.apache.curator/curator-client/2.6.0"
            },
            {
                "path": "mvn:org.apache.thrift/libfb303/0.9.3"
            },
            {
                "path": "mvn:org.apache.thrift/libthrift/0.9.3"
            },
            {
                "path": "mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1"
            },
            {
                "path": "mvn:net.sf.opencsv/opencsv/2.3"
            },
            {
                "path": "mvn:org.apache.geronimo.specs/geronimo-jaspic_1.0_spec/1.0"
            },
            {
                "path": "mvn:commons-lang/commons-lang/2.6"
            },
            {
                "path": "mvn:com.fasterxml.jackson.core/jackson-core/2.2.2"
            },
            {
                "path": "mvn:javax.mail/mail/1.4.1"
            },
            {
                "path": "mvn:javax.activation/activation/1.1"
            },
            {
                "path": "mvn:org.tukaani/xz/1.0"
            },
            {
                "path": "mvn:com.jolbox/bonecp/0.8.0.RELEASE"
            },
            {
                "path": "mvn:org.apache.httpcomponents/httpcore/4.2.5"
            },
            {
                "path": "mvn:org.apache.hive/hive-serde/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:commons-cli/commons-cli/1.2"
            },
            {
                "path": "mvn:com.google.guava/guava/14.0.1"
            },
            {
                "path": "mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1"
            },
            {
                "path": "mvn:org.apache.httpcomponents/httpclient/4.2.5"
            },
            {
                "path": "mvn:commons-codec/commons-codec/1.4"
            },
            {
                "path": "mvn:log4j/log4j/1.2.16"
            },
            {
                "path": "mvn:org.apache.ant/ant/1.9.1"
            },
            {
                "path": "mvn:org.datanucleus/datanucleus-rdbms/3.2.9"
            },
            {
                "path": "mvn:javax.transaction/jta/1.1"
            },
            {
                "path": "mvn:commons-logging/commons-logging/1.1.3"
            },
            {
                "path": "mvn:log4j/apache-log4j-extras/1.2.17"
            },
            {
                "path": "mvn:javax.servlet/servlet-api/2.5"
            },
            {
                "path": "mvn:org.apache.ant/ant-launcher/1.9.1"
            },
            {
                "path": "mvn:net.sf.jpam/jpam/1.1"
            },
            {
                "path": "mvn:org.codehaus.jackson/jackson-core-asl/1.9.2"
            },
            {
                "path": "mvn:org.datanucleus/datanucleus-api-jdo/3.2.6"
            },
            {
                "path": "mvn:org.apache.hive.shims/hive-shims-common/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:javax.jdo/jdo-api/3.0.1"
            },
            {
                "path": "mvn:org.xerial.snappy/snappy-java/1.0.4.1"
            },
            {
                "path": "mvn:org.apache.curator/curator-framework/2.6.0"
            },
            {
                "path": "mvn:asm/asm/3.2"
            },
            {
                "path": "mvn:org.apache.hive/hive-jdbc/1.1.0-cdh5.13.1"
            },
            {
                "path": "mvn:org.apache.hadoop:hadoop-yarn-server-resourcemanager:2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-annotations/2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-yarn-common/2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-yarn-api/2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-yarn-server-common/2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-yarn-server-web-proxy/2.6.0"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-common/2.7.1"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-auth/2.7.1"
            },
            {
                "path": "mvn:org.apache.hadoop/hadoop-core/1.2.1"
            },
            {
                "path": "mvn:org.apache.hive.shims/hive-shims-0.23/1.1.0"
            }
        ]
    }
  4. Ouvrez <components_catalog_path>/start.sh et ajoutez la propriété suivante dans les propriétés système : javax.security.auth.useSubjectCredsOnly=false.
    THE_CMD="$JAVA_BIN $JAVA_OPTS -
    Djavax.security.auth.useSubjectCredsOnly=false -cp
    \"$APP_CLASSPATH\" $APP_CLASS $*"
  5. Ouvrez <components_catalog_path>/config/application.properties et configurez la propriété krb5.config pour qu'elle pointe vers le fichier où est installé le serveur Components Catalog :

    Exemple

    krb5.config=/etc/krb5.conf
  6. Créez un fichier nommé sun.conf dans /config/org/talend/daikon/sandbox/properties/.
    Ce fichier est nécessaire pour permettre au composant Hive d'accéder à des propriétés système spécifiques.
    Avertissement : Si les répertoires dans le chemin org/talend/daikon/sandbox/properties/ n'existent pas dans <components_catalog_path>/config, créez les.
  7. Ajoutez le contenu suivant au fichier sun.conf :
    #
    # This file contains all Sun/Oracle specific system properties
    #
    java.runtime.name
    sun.boot.library.path
    java.vm.version
    java.vm.vendor
    java.vendor.url
    path.separator
    java.vm.name
    file.encoding.pkg
    sun.java.launcher
    user.country
    sun.os.patch.level
    java.vm.specification.name
    user.dir
    java.runtime.version
    java.awt.graphicsenv
    java.endorsed.dirs
    os.arch
    java.io.tmpdir
    line.separator
    java.vm.specification.vendor
    os.name
    sun.jnu.encoding
    java.library.path
    java.specification.name
    java.class.version
    sun.management.compiler
    os.version
    user.home
    user.timezone
    java.awt.printerjob
    idea.launcher.bin.path
    file.encoding
    java.specification.version
    java.class.path
    user.name
    java.vm.specification.version
    sun.java.command
    java.home
    sun.arch.data.model
    user.language
    java.specification.vendor
    java.vm.info
    java.version
    java.ext.dirs
    sun.boot.class.path
    sun.java.command
    java.home
    sun.arch.data.model
    user.language
    java.specification.vendor
    java.vm.info
    java.version
    java.ext.dirs
    sun.boot.class.path
    java.vendor
    file.separator
    java.vendor.url.bug
    sun.io.unicode.encoding
    sun.cpu.endian
    sun.desktop
    sun.cpu.isalist
    java.security.krb5.conf
    sun.security.krb5.debug
    java.security.krb5.kdc
    java.security.krb5.realm
    java.security.auth.login.config
    javax.security.auth.useSubjectCredsOnly
  8. Redémarrez le service Components Catalog.

Résultats

Dans Talend Data Preparation, la base de données Hive est maintenant disponible dans la liste déroulante Database type (Type de base de données) du formulaire d'import de jeu de données d'une base de données.

Même si les champs Username (Nom d'utilisateur) et Password (Mot de passe) sont marqués comme obligatoires, vous pouvez les laisser vide dans ce cas. L'authentification est effectuée avec Kerberos.

Lorsque vous exportez une préparation effectuée sur des données stockées dans votre base de données Hive, vous pouvez traiter les données sur le serveur Talend Data Preparation.

Pour plus d'informations concernant l'import de données depuis d'une base de données, consultez Ajout d'un jeu de données depuis une base de données.