E-MapReduce Kafka は、E-MapReduce 3.12.0 以降で SSL 機能をサポートしています。
クラスターの作成
クラスターの作成方法については、「 クラスターの作成」をご参照ください。
SSL サービスの有効化
デフォルトでは、 Kafka クラスターの SSL 機能は有効になっていません。 Kafka サービスの設定ページで有効化できます。
前の図に示すように、 kafka.ssl.enable を true に変更し、コンポーネントを再起動します。
クライアントから Kafka へのアクセス
SSL 経由で Kafka にアクセスする場合、 security.protocol 、truststore、keystore を設定します。 例として、標準モードのクラスターを取り上げます。 Kafka クラスターでジョブを実行するには、クラスターを次のように設定します。
security.protocol=SSL
ssl.truststore.location=/etc/ecm/kafka-conf/truststore
ssl.truststore.password=${password}
ssl.keystore.location=/etc/ecm/kafka-conf/keystore
ssl.keystore.password=${password}
Kafka クラスター以外の環境でジョブを実行している場合は、Kafka クラスター内の任意のノードの /etc/ecm/kafka-conf/ ディレクトリにある truststore と keystore のファイルを実行環境にコピーし、それに応じて設定を追加します。
例として、Kafka の producer-consumer パターンのプログラムを取り上げます。
- 設定ファイル ssl.properties を作成し、設定内容を追加します。
security.protocol=SSL ssl.truststore.location=/etc/ecm/kafka-conf/truststore ssl.truststore.password=${password} ssl.keystore.location=/etc/ecm/kafka-conf/keystore ssl.keystore.password=${password}
- トピックを作成します。
kafka-topics.sh --zookeeper emr-header-1:2181/kafka-1.0.1 --replication-factor 2 -- partitions 100 --topic test --create
- SSL 設定ファイルを使用してデータを生成します。
kafka-producer-perf-test.sh --topic test --num-records 123456 --throughput 10000 --record-size 1024 --producer-props bootstrap.servers=emr-worker-1:9092 --producer.config ssl.properties
- SSL 構成ファイルを使用してデータを使用します。
kafka-consumer-perf-test.sh --broker-list emr-worker-1:9092 --messages 100000000 --topic test --consumer.config ssl.properties