本文介绍如何在火山引擎 E-MapReduce(EMR)上,快速开始您的 Kafka 探索之旅。
请参考下面的步骤,在 EMR 引擎中创建一个 Kafka 的集群类型,并开始尝试 Kafka 的各项功能吧。
您可以方便地在 EMR 的管理控制台中创建一个 Kafka 集群。具体操作步骤如下:
登录 EMR 控制台。
在左侧导航栏中,集群管理 > 集群列表界面,单击创建集群按钮,进入集群创建页面。
在创建集群页面,选择分析场景为实时计算,集群类型为 Kafka。
根据需要填写好其它的集群创建选项,确认无误后,单击立即创建,提交创建集群。详见创建集群。
单击集群列表 > Kafka 集群名称, 进入集群详情页,可以查看集群创建的进度和操作日志。
等待集群状态变更为运行中,说明集群已经创建成功了。这时您便可以开始尝试 EMR 引擎 Kafka 集群类型的各项功能了。
在 Kafka 集群中,Kafka Broker 部署在集群的 Master/Core 节点中,而 ZooKeeper 共三个节点,部署在集群的 Master 和 2 个 Core 节点中。在集群初始化的过程中,Kafka 集群的各个服务便会依次启动。您可通过以下路径查看 Kafka Broker 部署情况:
说明
本小节内容适用于 EMR 3.4.X 及以前版本。EMR 3.5.0 及以后版本请查阅下一小节内容。
在创建集群的过程中,您还可以给 Master/Core 节点绑定公网 IP,方便从 Kafka 集群所处的 VPC 外部来访问 Kafka 集群。如果在创建集群的过程中给 Master/Core 节点绑定了公网 IP,系统会自动把相关的公网 IP 配置信息写入到 Kafka Broker 的 advertised.listeners 服务参数中。这时 Kafka Broker 可以通过公网 IP(端口号:19092)和内网地址(端口号:9092)访问。
如果在创建集群的过程中,没有选择给 Master/Core 节点绑定公网 IP,而后续产生了通过公网访问 Kafka 集群的需求,也可以选择手动给所有 Master/Core 节点绑定公网 IP,您需进行如下操作:
Kafka 集群详情 > 服务列表 > Kafka 服务 > 服务参数,进入 Kafka 服务参数配置页。
在 kafka-env 选项卡中,修改如下两项参数:
kafka_cluster_open_public_ip 配置为 true
。
kafka_broker_hostname_eip_map_str 配置为一个 JSON 字符串,key 为 Master/Core 节点的 hostname,value 为 Master/Core 节点的公网 IP。格式如:{"hostname_1": "EIP_1", "hostname_2": "EIP_2"}。需要将所有 Master/Core 节点的 hostname 到公网 IP 的映射关系都配置在这个 JSON 字符串中。
在 kafka-broker 选项卡中,修改如下四项参数(如参数不存在,则添加自定义参数):
listeners 配置为INTERNAL://0.0.0.0:9092,EXTERNAL://0.0.0.0:19092
注意
按照上面的字符串原样录入即可,在录入时不需要做任何字符串替换。
listener.security.protocol.map 配置为INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
inter.broker.listener.name 配置为INTERNAL
advertised.listeners 配置为INTERNAL://{{hostname}}:9092,EXTERNAL://HOST_PUBLIC_IP:19092
注意
按照上面的字符串原样录入即可,在录入时不需要做任何字符串替换。
参数配置完成后,单击右上角服务操作 > 重启按钮,重启 Kafka 服务。重启成功后,即可以通过公网 IP(端口号:19092)和内网地址(端口号:9092)访问 Kafka Broker。
您也可以在 Kafka Broker 的 advertised.listeners 配置项中,添加本机的内网 IP(而非 hostname)为内网访问地址,以支持一些情况下的访问(例如:客户端可以访问到 Broker 的内网 IP,但无法解析 Broker 的 hostname 的情况)。
由于每个节点的 IP 地址不同,所以在管理控制台的 Kafka 组件服务参数配置页面中,需要以 {{host_ip}}
变量来指代具体每个节点的实际 IP 地址。例如:
PLAINTEXT://{{host_ip}}:9092
(对应创建集群时 Master/Core 节点未绑公网 IP 的情况。注: 此时可能 Kafka 服务没有 advertised.listeners 这个参数,您需要新增 advertised.listeners 参数)
INTERNAL://{{host_ip}}:9092,EXTERNAL://HOST_PUBLIC_IP:19092
(对应创建集群时 Master/Core 节点绑定公网 IP 的情况)。
如果您需要通过公网访问 Kafka Broker,可以在创建集群时或创建集群后给 Master/Core 节点绑定公网 IP。Kafka Broker 的 advertised.listeners
参数配置的是支持通过公网/内网访问的统一域名。Kafka Broker 处于运行状态时,就可以通过公网访问 Kafka Broker 了。
登录到 Kafka Broker 节点中,并执行常用命令。
Kafka 集群创建成功且正常运行后,便可使用 Kafka 的各项功能了。
下文介绍一种快速使用、验证 Kafka 功能的方式:通过命令行模式生产消息,并消费生产出来的消息,查看 Kafka 的运行日志。
具体操作步骤如下:
登录 EMR 控制台。
单击集群列表 > Kafka 集群名称 > 节点管理, 进入节点组列表界面。
您可任意展开选择 CoreGroup 的一个节点,例如单击 core-1-1 的节点 ID,进入节点的 ECS 详情页面。
在节点的 ECS 详情页面中,单击右上角远程连接,并选择一种远程连接方式(推荐选择 ECS Terminal),输入相关的认证等信息,登录到 Kafka 集群的一台主机的命令行环境中,以执行命令行操作。
在 Kafka 集群的某台 Core 节点 的命令行终端中,切换当前工作目录到 Kafka 程序的主目录:
cd /usr/lib/emr/current/kafka
可以尝试执行各种 Kafka 常用命令。详见基础使用。
命令执行完成后,您可以查看 Kafka 的运行日志。Kafka 是分布式系统,在各个节点中都有对应的运行日志。Kafka 运行日志所在的目录是:/var/log/emr/kafka
。可以进入各个节点的上述目录查看 Kafka 的运行日志。
完成上述步骤后,您已经成功尝试完成了 Kafka 集群的试用以及运行日志的查看。接下来可以更深入地探索并使用 Kafka 了。
说明
本节内容仅适用于 EMR 3.5.0 及以后的版本。
您可以通过 Kafka Manager (CMAK) 的 Web UI 来管理 Kafka 集群。
在通过公网访问 Kafka Manager 之前,需要先确认以下事项:
Kafka 集群的 Master 节点已绑定公网 IP。
Kafka 集群 Master 节点的安全组规则配置中,已向待访问 Kafka Manager 的机器(如办公机)开放 19001 端口的访问。您可在 Kafka 集群详情页的“访问链接”页签中,单击右上角“配置服务端口”按钮来快捷添加入方向访问规则。
进入 Kafka Manager 的操作步骤如下:
在集群列表页中,单击集群名称,进入 Kafka 集群详情页中。
在集群详情页,单击访问链接页签,进入服务链接界面。
单击 Kafka Manager 的访问链接,进入 Kafka Manager 的登录界面。
注意
由于 Kafka Manager 可能不支持一些高版本的 Kafka,在 Kafka Manager 配置集群信息的时候,选择 Kafka 版本时,可以选择与集群中 Kafka 实际版本最接近的版本。
尝试过 Kafka 的基本使用后,您可以进一步探索 Kafka。您可以参考 EMR 帮助文档中 Kafka 相关的更多文档,例如高阶使用等,也可以参考 Kafka 的官方网站学习更多的使用方法:https://kafka.apache.org/。