本文为您介绍如何开启E-MapReduce Kafka集群的SSL功能,并通过SSL连接Kafka。

前提条件

已创建E-MapReduce的Kafka类型的集群。

创建集群详情,请参见创建集群

开启SSL服务

Kafka集群的SSL功能默认关闭,您可以执行以下步骤开启SSL功能。

  1. 进入详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. 在左侧导航栏中,选择集群服务 > Kafka
  3. 在Kafka服务页面,单击上方的配置页签。
  4. 修改配置。
    1. 在配置搜索中,输入配置项kafka.ssl.enable,单击Search图标。
    2. 设置kafka.ssl.enable的值为true
    3. 单击保存
    4. 确认修改页面,输入执行原因,开启自动更新配置,单击确定
  5. 重启配置。
    1. 单击右上角的操作 > 重启All Componens
    2. 执行集群操作页面,输入执行原因,单击确定
    3. 确认对话框中,单击确定

使用SSL连接Kafka

使用SSL连接Kafka时,需要配置参数security.protocolssl.truststore.passwordssl.keystore.password

例如,在未开启高安全模式的Kafka集群中,使用Kafka自带的Producer和Consumer执行作业,操作步骤如下:
  1. 创建配置文件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}
    说明 ${password}的值,您可以在Kafka集群的 /etc/ecm/kafka-conf/server.properties文件中获取。如果是在Kafka集群以外的环境执行作业,您可以将Kafka集群中任意节点 /etc/ecm/kafka-conf/目录下的 truststorekeystore文件,拷贝至运行环境进行相应配置。
  2. 创建Topic。
    /usr/lib/kafka-current/bin/kafka-topics.sh --partitions 10 --replication-factor 2 --zookeeper emr-header-1:2181 /kafka-1.0.0 --topic test --create
  3. 使用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
  4. 使用SSL配置文件消费数据。
    kafka-consumer-perf-test.sh --broker-list emr-worker-1:9092 --messages 100000000 --topic test --consumer.config ssl.properties