從 EMR-3.12.0 版本開始,E-MapReduce Kafka支援SSL功能。
建立叢集
具體的建立叢集操作,請參見建立叢集。
開啟SSL服務
預設Kafka叢集沒有開啟SSL功能,您可以在Kafka服務的配置頁面開啟SSL。
如圖,修改配置項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 叢集中的 truststore 和 keystore 檔案(位於叢集任意一個節點的/etc/ecm/kafka-conf/目錄中)拷貝至運行環境作相應配置。
以Kafka內建的producer和consumer程式,在 Kafka 叢集運行為例:
- 建立設定檔 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}
- 建立topic。
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