开发者学堂课程【SaaS 模式云数据仓库实战:Kafka 数据如何MaxComput】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/760/detail/13341
Kafka 数据如何同步到 MaxCompute
内容介绍:
一、实验目的
二、方案说明
三、目录
四、Kafka 消息队列使用以及原理
五、资源组介绍以及配置
六、同步过程及其注意事项
七、开发测试以及生产部署
一、实验目的
日常工作中,企业需要将APP或网站产生的行为日志和业务数据,通过Kafka消息队列统一收集后,数据进行两方面的处理,一方面是离线处理,一方面是实时处理。投递到数据仓库MaxCompute中作为模型的构建,进行相关的业务处理。再通过大数据分析后将指标数据在报表中展示,如用户特征、销售排名、订单地区分布等。
通过本次实验,可以学习了解Kafka数据如何通过Dataworks数据集成同步到MaxCompute;
二、方案说明
涉及到两条链路,业务数据和行为日志通过kafka,通过flume,上传到datahub,再上传到maxcompute,最后在quickBI进行展示。还有一条链路是业务数据和行为日志通过kafka与dataworks和maxcompute,最后再在quickBI进行展示。本次要进行展示的是kafka通过dataworks上传到maxcompute,有两种方案进行数据同步,一种是自定义资源组,一种是独享资源组。
方案一,使用自定义资源组的背景一般为网络环境复杂适用于数据上云的场景,该实验将展示使用ECS作为自定义资源组的操作过程。
方案二,使用独享集成资源组背景一般为集成资源不足影响数据同步过程,该实验将展示使用独享资源组的操作方式(重点关注VPC的绑定)
三、目录
通过四种方案讲解一下操作流程。
1.Kafka消息队列使用以及原理
Kafka简单介绍以及框架介绍,还有Kafka的购买以及一些相关的注意事项
2.资源组介绍以及配置
针对于自定义资源组和独享资源组的相关配置以及其中配置中需要处理的问题
3.同步过程及其注意事项
第三部分是Kafka,同步到max compute过程中的相关参数配置,以及所要注重的一些地方
4.开发测试以及生产部署
开发到节点部署,以及到生产环境的一个整体操作流程进行详细指导。
四、Kafka 消息队列使用以及原理
1.Kafka产品概述
Kafka一般用于日志收集、监控数据聚合、流式数据处理在线和离线分析等大数据的领域,云上的Kafka的优点是低成本、更弹性、更可靠。
消息队列 for Apache Kafka是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。消息队列for Apache Kafka 广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域。
消息队列 for Apache Kafka针对开源的Apache Kafka提供全托管服务,彻底解决开源产品长期以来的痛点。有了消息队列for ApacheKafka,只需专注于业务开发,无需部署运维,具有低成本、更弹性、更可靠的优势。
2.Kafka架构介绍
一个典型的消息队列Kafka集群,包括四个部分,Producer把数据生产出来,然后发送到卡夫卡broker,Consumer会去消费leader的数据。Partition内部会有消费点位,通过zookeeper去管理Partition里面leader,负载均衡,如果对这张图不太了解那么后面对相应参数也会不理解。
一个典型的消息队列for Apache Kafka集群包括四个部分:
Producer:通过push模式向消息队列 for Apache
Kafka的Kafka Broker发送消息。发送的消息可以是网站的页面访问、服务器日志,也可以是CPU和内存相关的系统资源信息。
Kafka Broker:用于存储消息的服务器。Kafka Broker支持水平扩展。Kafka Broker节点的数量越多,Kafka集群的吞吐率越高。
Consumer Group:通过pull模式从消息队列 for ApacheKafka Broker订阅并消费消息。
Zookeeper:管理集群的配置、选举leader分区,并且在Consumer Group 发生变化时,进行负载均衡。
3.Kafka消息队列购买以及部署
(1)到Kafka消息队列产品页面点击购买,选择对应消费方式(包年包月还是按量付费),地区(比如maxcompute在华北就对应选择华北地区),实例类型,磁盘,流量以及消息存放时间,以上都可以根据个人的情况进行选择。
(2)开通完成之后点击部署,选择合适的VPC以及交换机[注意可用区的位置]。
(3)进入Topic管理页面,输入自己的topic,管理相应的命令规则,尽量和自己的业务相同,如果是彩电业务或者商铺业务就进行一定的区分。点击创建Topic按钮,创建个人的Topic.
(4)进入Consumer Group管理,点击创建Consumer Group,创建自己所需的Consumer Group,可以进行进一步的规范,与自己的消费topic,如果是商品可以两者相对应进行区分。
4.Kafka白名单配置
确认需要访问需要访问Kafka的网段信息。Kafka安装部署完成以后,需要去确认一下哪个服务器的产品需要访问kafka,所以白名单需要确认一下,很多用户在部署完成之后,不知道如何去进行访问,登录的接入点就是访问的一个接口。
五、资源组介绍以及配置
1.自定义资源组的使用背景
DataWorks可以通过免费传输能力(默认任务资源组)进行海量数据上云,但默认资源组无法实现传输速度存在较高要求或复杂环境中的数据源同步上云的需求。您可以新增自定义的任务资源运行数据同步任务,解决DataWorks默认资源组与数据源不通的问题,或实现更高速度的传输能力。
当默认任务资源无法与复杂的网络环境连通时,可以通过数据集成自定义资源的部署,打通任意网络环境之间的数据传输同步。
自定义资源主要针对一些网络问题。在本地网络与云上网络,会有一些差异,在连接不通的情况下可以通过自定义资源组在复杂环境同步上云的需求。如果存在传输速度低下问题也可以通过自定义资源组解决,但是主要还是复杂网络环境的上云同步问题。
2.自定义资源组的配置
(1)进入Dataworks控制台,点击需要数据同步的项目空间,点击数据集成。确认数据集成在哪个空间,进行项目添加
(2)进入数据源界面,点击右上角的新增自定义资源组。只有项目管理员才可以添加。
(3)确认Kafka与需要添加自定义资源组属于同一个VPC下。
(4)登录ECS,执行命令dmidecode | grep UUID得到ECS的UUID。
(5)添加服务器,将ECS的UUID以及IP,机器的核数以及机器的内存,所占用资源的CPU与内存填写进来。
(6)在ECS上执行安装Agent的命令,一共是五步,进行一一确认,在服务器页面点击刷新按钮,查看服务是否为可用状态,添加完成测试连通性,检查是否连接成功。
3.独享资源组的使用背景
独享资源模式下,机器的物理资源(网络、磁盘、CPU和内存等)完全独享。不仅可以隔离用户间的资源使用,也可以隔离不同工作空间任务的资源使用。此外,独享资源也支持灵活的扩容、缩容功能,可以满足资源独享、灵活配置等需求。
独享资源组可以访问同一地域的VPC数据源,也可以访问跨地域的公网RDS地址。
有一些客户反应在Kafka同步到maxcompute过程中会出现资源不足的问题,可以通过设置独享资源组的方式进行数据同步,网络磁盘CPU和内存都是完全独享的,注意是在同一地域下的vpc数据源,可以访问跨地域的公网RDS。
4.独享资源组的配置
(1)进入DataWorks控制台的资源组列表,选择购买独享资源组,有两个选择,分别是独享继承资源组和独享调度资源组。要选择点击新增独享集成资源组,点击购买选择对应的地区, 时间期限,CPU以及内存。
(2)购买完成之后,需要把独享资源组绑定到VPC下,点击专有网路绑定,选择与Kafka对应VPC以及交换机(明显的区别是可用区),安全组。