メイン コンテンツをスキップする 補完的コンテンツへスキップ

Kerberosで保護されたHive接続の設定

HiveはTalend Data Preparationで利用できるデータソースの一覧に追加できる多数のデータベースの1つです。

新しいデータベースタイプの追加セクションでは、Talend Data Preparationから利用できるデータベースのリストをエンリッチ化するために、新しいJDBCドライバーを追加する方法について説明しています。ただし、この例ではHiveデータベースからTalend Data Preparationへの直接接続を設定する方法に焦点を当てています。追加の設定ステップにより、この接続のセキュリティをKerberosで保護できます。

始める前に

ページに記載されているように、<components_catalog_path>.m2/jdbc-drivers/<database_name>/<jdbc_version>フォルダーにHiveドライバーをダウンロードして追加していること。

手順

  1. Components Catalogインストールフォルダーでファイルconfig/settings.xmlを開きます。
    デフォルトでは、Components Catalogインストールフォルダーは<TDP_installation_folder>/services/にあります。
  2. 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. <components_catalog_path>/config/jdbc_config.jsonを開き、Hiveドライバーを追加します。
    記載されている互換性バージョンは変更されることがありますので、次のコードはあくまで例としてお使いください。詳細は、Clouderaのドキュメンテーション (英語のみ)をご覧ください。
    {
        "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. <components_catalog_path>/start.shを開き、システムのプロパティに次の行を追加します:javax.security.auth.useSubjectCredsOnly=false.
    THE_CMD="$JAVA_BIN $JAVA_OPTS -
    Djavax.security.auth.useSubjectCredsOnly=false -cp
    \"$APP_CLASSPATH\" $APP_CLASS $*"
  5. <components_catalog_path>/config/application.propertiesを開き、Components Catalogサーバーがインストールされている場所をポイントするようにkrb5.configを設定します。

    krb5.config=/etc/krb5.conf
  6. /config/org/talend/daikon/sandbox/properties/sun.confという名前のファイルを作成します。
    このファイルは、Hiveコンポーネントから特定のシステムプロパティにアクセスできるようにするために必要です。
    情報メモ警告: <components_catalog_path>/configorg/talend/daikon/sandbox/properties/のディレクトリーが存在しない場合は作成します。
  7. 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. Components Catalogサービスを再起動します。

タスクの結果

Talend Data Preparationのデータベースデータセットのインポートフォームで、[Database type] (データベースタイプ)ドロップダウンリストからHiveデータベースを利用できるようになりました。

情報メモ重要: [Username] (ユーザー名)フィールドと[Password] (パスワード)フィールドは必須ですが、この場合はKerberosを使って認証が実行されるので、プレースホルダー値を入力できます。

Hiveデータベースに保管されているデータに対して作成されたプレパレーションをエクスポートする場合は、Talend Data Preparationサーバーのデータを処理するように選択できます。

データベースからデータをインポートする方法の詳細は、データベースからデータセットを追加をご覧ください。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。