建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

石头剪刀布

发帖: 4粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2018-5-11 11:02:35 1304 1 楼主 显示全部楼层
[经验案例] 如何通过公网EIP发送消息到MRS Kafka

本帖最后由 石头剪刀布 于 2018-5-29 11:22 编辑

操作场景
常有用户需要将云下的数据搬到云上MRS服务中,但由于MRS集群的节点均在VPC网络中,外部是无法直接访问的,那如果需要将线下的数据搬到云上MRS服务中,该如何处理呢?
本文介绍一种方式,如何通过公网访问MapReduceServiceKafka服务。
前提条件
l  已创建MRS集群

操作步骤
1.1 绑定弹性IP
步骤 1     登录华为云控制台,选择“EI企业智能 > MapReduce服务”,点击已经创建的集群名称,进入到集群详情页面。
步骤 2     在节点信息列表中,选择任意一台“类型”为“Core”的节点,点击打开该节点,在新打开的页面中选择“弹性IP”,点击“绑定弹性IP”。
在弹出框中,选择已创建的弹性IP进行绑定。

00.jpg
如果当前没有弹性IP,则需要新创建,新创建的弹性IP建议选择“按流量计费”

01.jpg

步骤 3     对集群中的节点信息列表中的其他两个Core节点重复“步骤2”,即给另外两个Core节点都绑定弹性IP。


1.2 开通安全组
步骤 1     登录华为云控制台,选择“EI企业智能 > MapReduce服务”,点击已经创建的集群名称,进入到集群详情页面。
步骤 2     在节点信息列表中,选择任意一台“类型”为“Core”的节点,点击打开该节点,在新打开的页面中选择“安全组”,点击已经绑定的安全组链接。

11.jpg

在新打开的页面中,选择“添加规则”,在新弹出的框中按如下进行配置

12.jpg

即允许任意IP地址访问21005端口。
注意: MRS 1.7.0及以后的版本21005端口改成了与开源一致,即 9092端口

注意:此示例中直接开放了任意IP访问21005端口,这种做法不安全,在实际的生产环境中,需要限制只有特定的IP才能访问,保证安全性。
源IP地址填写 指定的IP 即可。
步骤 3     Core节点共用一个安全组规格,不需要重复进行配置。

1.3 修改Kafka配置
步骤 1     登录华为云控制台,选择“EI企业智能 > MapReduce服务”,点击已经创建的集群名称,进入到集群详情页面。

   步骤 2     点击“集群管理页面”后面的“点击查看”链接,进入到MRS Manager页面。
21.jpg
步骤 3     在MRS Manager页面中选择“服务管理 > Kafka > 服务配置”,“参数类别”选择“全部配置”,在左树中找到“Broker > 自定义”,然后在参数列表中添加“advertised.listeners”,值填写“PLAINTEXT://:21005,SSL://:21008”
MRS 1.7.0及以后的版本值填写为“PLAINTEXT://:9092,SSL://:9093”

22.jpg

步骤 4     点击“保存配置”,并勾选“重新启动受影响的服务或实例。”

1.4 公网连接
步骤 1     通过步骤2.1中绑定的弹性IP登录各个Core节点,然后执行“hostname”,找到EIP对应的主机名

31.jpg

依次登录找到EIP与主机名的对应列表
  1. 49.4.xx.xx node-core-ndnIi
  2. 49.4.xx.xx1 node-core-AYmJu
  3. 49.4.xx.xx2 node-core-ZAgvo
复制代码

步骤 2     在Kafka客户端的配置中,bootstrap.servers的地址全部使用主机名
  1. bootstrap.servers = node-core-ndnIi:21005,node-core-AYmJu:21005,node-core-ZAgvo:21005
复制代码
如果使用的版本为MRS 1.7.0及以后,21005端口修改为9092。

并在本机的/etc/hosts中添加步骤1中的EIP和主机名列表。

步骤 3     以下为使用Flume的KafkaSink的示例
  1. client.sources = spoolDir1
  2. client.channels = memo1
  3. client.sinks = kafka

  4. client.sources.spoolDir1.type = spooldir
  5. client.sources.spoolDir1.spoolDir = /tmp/flumedata/
  6. client.sources.spoolDir1.decodeErrorPolicy = IGNORE
  7. client.sources.spoolDir1.deserializer.maxLineLength = 4048210
  8. client.sources.spoolDir1.deserializer.maxBatchLine = 10
  9. client.sources.spoolDir1.deserializer = BufferedLine
  10. client.sources.spoolDir1.channels = memo1

  11. client.channels.memo1.type = memory
  12. client.channels.memo1.capacity = 10000
  13. client.channels.memo1.transactionCapacity = 1000
  14. client.channels.memo1.channelfullcount = 10
  15. client.channels.memo1.keep-alive = 3
  16. client.channels.memo1.byteCapacity =  
  17. client.channels.memo1.byteCapacityBufferPercentage = 20

  18. client.sinks.kafka.type = org.apache.flume.sink.kafka.KafkaSink
  19. client.sinks.kafka.kafka.bootstrap.clients = node-core-ndnIi:21005,node-core-AYmJu:21005,node-core-ZAgvo:21005
  20. client.sinks.kafka.kafka.topic = Test
  21. client.sinks.kafka.channel = memo1
  22. client.sinks.kafka.kafka.producer.security.protocol = PLAINTEXT
复制代码
同上,如果使用的版本为MRS 1.7.0及以后,21005端口修改为9092。


特别说明:
不建议使用此种方式消费MRSKafka的消息,因为华为云EIP的上行流量不收取费用,而下行流量需要收取费用。


回复 举报
分享

分享文章到朋友圈

分享文章到微博

建赟

发帖: 161粉丝: 11

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2018-5-19 21:17:28 沙发 显示全部楼层
感谢分享
点赞 回复 举报

Lothar

发帖: 4粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2019-3-14 19:43:11 板凳 显示全部楼层

若需要通过弹性ip连接开启kerberos认证的kafka集群,需要在安全组中放开同时

21730 21731 21732端口;advertised.listeners参数值配置为SASL_PLAINTEXT://:21007,并重启服务
点赞 回复 举报

游客

您需要登录后才可以回帖 登录 | 立即注册