阿里云大数据利器之-使用sql实现流计算做实时展现业务( flume故障转移版 )
实时业务处理的需求越来越多,也有各种处理方案,比如storm,spark等都可以。那以数据流的方向可以总结成数据源-数据搜集-缓存队列-实时处理计算-数据展现。本文就用阿里云产品简单实现了一个实时处理的方案。
一,总体架构
按照数据流向
数据采集:flume(配置故障转移)
缓存队列:datahub
https://help.aliyun.com/product/53345.html?spm=5176.7618386.3.4.cigK2v
数据计算:阿里流计算(StreamCompute)
https://help.aliyun.com/video_list/54212.html?spm=5176.7618386.3.2.COgP6l
数据落地:rds(mysql)
https://help.aliyun.com/document_detail/26092.html?spm=5176.7841871.6.539.9FTjxU
数据展现:Quick-BI
https://data.aliyun.com/product/bi?spm=5176.8142029.388261.284.spvIS0
或者大屏显示 DATA-V
https://data.aliyun.com/visual/datav?spm=5176.8142029.388261.283.spvIS0
二,搭建过程
1,flume配置搭建
flume在数据采集的开源框架中还是比较常用的,但是在采集输送到datahub中有可能网络断了或者服务器挂了。那这里配置了故障转移,如图,其中sink1和sink2为上面架构中的agentA和agentB.把agentA和agentB分别部署在两台服务器上。
在搭建flume时需要安装DatahubSink插件,参考https://help.aliyun.com/knowledge_detail/42843.html
那看下配置文件
# Name the components on this agent a1.sources = r1 a1.sinks = k1 k2 a1.channels = c1 # Describe/configure the source这里监控一个文件变化,写了一个定时脚本每秒插入一条 a1.sources.r1.type = exec a1.sources.r1.channels=c1 a1.sources.r1.command=tail -F /usr/local/shangdan/test.txt #define sinkgroups,在这里配置故障转移的sink组 a1.sinkgroups=g1 a1.sinkgroups.g1.sinks=k1 k2 a1.sinkgroups.g1.processor.type=failover a1.sinkgroups.g1.processor.priority.k1=10//这里设置sink的优先级,优先发送到级别高的sink里 a1.sinkgroups.g1.processor.priority.k2=5 a1.sinkgroups.g1.processor.maxpenalty=10000 #define the sink 1,发送到agentA a1.sinks.k1.type=avro a1.sinks.k1.hostname=agentA的ip a1.sinks.k1.port=5555 #define the sink 2 ,发送到agentB a1.sinks.k2.type=avro a1.sinks.k2.hostname=agentB的ip a1.sinks.k2.port=5555agentA和agentB的配置文件除了IP地址不一样,其他完全一致,这里贴其中一个
A single-node Flume configuration for Datahub # Name the components on this agent a1.sources = r1 a1.sinks = k1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = avro a1.sources.r1.channels=c1 a1.sources.r1.bind= agentA的ip a1.sources.r1.port= 5555 # Describe the sink a1.sinks.k1.type = com.aliyun.datahub.flume.sink.DatahubSink a1.sinks.k1.datahub.accessID = ****** a1.sinks.k1.datahub.accessKey = ********** a1.sinks.k1.datahub.endPoint = http://dh-cn-hangzhou.aliyun-inc.com a1.sinks.k1.datahub.project = shangdantest a1.sinks.k1.datahub.topic = databubtest a1.sinks.k1.serializer = DELIMITED a1.sinks.k1.serializer.delimiter = ,//这里配置数据的分隔符 a1.sinks.k1.serializer.fieldnames = line//配置数据的字段 a1.sinks.k1.batchSize = 1 a1.sinks.k1.serializer.charset = UTF-8 a1.sinks.k1.shard.number = 1 a1.sinks.k1.shard.maxTimeOut = 60 # Use a channel which buffers events in memory a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 1000 # Bind the source and sink to the channel a1.sources.r1.channels = c1 a1.sinks.k1.channel = c1三台服务配置完成后启动flume(先启动agentA和agentB)预期结果是agent1发送数据到agentA(优先级高的),如果停止agentA服务,会自动转换发送到agentB。重启agegtA的服务后,再次切回到agentA。
如图:正常启动数据正常传输经过agent1-agentB-datahub此时,停掉agentA服务,日志报错,故障转移。
重启agentA服务,恢复到之前状态,切回到sink1
2,datahub创建,
在datahub控制台创建项目和topic,
设置分片和生命周期,具体方法见链接
https://help.aliyun.com/document_detail/47448.html?spm=5176.doc47443.6.584.UrSX1A;
datahub中看到有flume传过来的数据3,配置阿里流计算
登录阿里流计算控制台注册数据源datahub/rds(也支持阿里其他类型数据源)-编写流计算脚本-调试-上线-启动
如图先注册数据源供脚本使用。必须要有数据来源表和数据结果表。
在编写脚本时,可以直接引用表,会自动插入表结构和配置信息,非常方便
那开始编写脚本必须包括三部分
1,创建数据来源表,这里是datahub表
2,创建数据结果表,这里是rds表
3,将来源表数据写入结果表,并进行计算如图
三、测试脚本编写完毕,点击上方【调试】,可以自己先准备一些数据上传测试。也可以直接线上测试,点击上面【上线】,上线成功后在【运维】中能看到项目,点击启动,项目启动几秒就工作了如图:
然后可以看到监控状态,计算延迟,数据是否倾斜等指标,也有更详细的链路可以查看
最后,我们把整个流程全部启动,到rds中看结果如图
当然,如果希望源源不断的流数据保存下来称为静态的数据,作为后续业务分析统计等用途,在datahub控制台可以直接配置归档到大数据计算服务(Maxcompute)中,直接入库为表数据。
如图
需要在Maxcompute中创建好对应表即可自动归档存储。详细配置如下
https://help.aliyun.com/document_detail/47453.html?spm=5176.doc47439.6.555.3GNrRs好神奇,几句sql数据就源源不断的流过来,那么前端或者其他业务层可以过来拿数据展示了,数据还可以界面化配置归档入库,十分方便。如果有复杂逻辑计算的,可以申请开通流计算的udf功能,这样看来,学好sql和java,走遍天下都不怕。
数据可视化部分可以参考使用阿里云产品dataV,实现类似双十一大屏效果,也可以使用产品Quick-BI做实时报表。有对大数据技术感兴趣的,可以加笔者的微信 wx4085116.目前笔者已经从阿里离职,博客不代表阿里立场。笔者开了一个大数据培训班。有兴趣的加我。
阿里云ACP大数据考试内容是什么?考试费用是多少? 作为目前市场占比最大的云计算厂商,阿里云旗下的认证在业界内部相当受欢迎的,并且具有很大的含金量,很多人通过学习阿里云的证书知识,提升自己的专业能力,并且在通过考试后拿到相关证书,以此获得进入阿里云以及其合作企业的机会。
阿里云ACP大数据认证考什么内容?考试费用是多少? 而对于想从事大数据行业的人来说,不仅要掌握相关的技能,最好要拥有相关的职业证书,现代社会人们在不断地内卷,自己没有证书就会落人一步,而大数据行业的从业人员,考取阿里云的证书是相当有用的。
阿里云ACP大数据改革后考试内容 阿里云认证4月份正式改革,ACP云计算、大数据即将改变考试内容,有需要考试的人尽快报名,可以在认证大使上了解。
上单 对大数据框架有浓厚兴趣,对阿里云产品使用,运维排查有经验,odps,dataworks,开放搜索等 喜欢技术分享交流
阿里云支持与服务 2137 作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
相关文章
- 如何对fluentd的配置文件进行调试?确保实时看到配置的效果?
- 实时计算框架:Flink集群搭建与运行机制
- 在隧道内放置多个地感线圈,车辆通过时、对通过的相邻两个线圈的脉冲信号数据进行实时采集,首先利用云模型算法,计算得到车速的估计值
- 微信小程序 - input 实现双向数据绑定(实时更新数据变化)
- ngxtop:在命令行实时监控 Nginx 的神器
- 【Python】解压文件/ZIP等 并实时计算解压进度
- 基于python的环境噪声实时监测系统
- 【云周刊】第124期:实时计算来临!阿里新一代实时计算引擎 Blink,每秒支持数十亿次计算
- 《Storm技术内幕与大数据实践》一9.1 实时DAU计算
- Apache Flink 实时计算在美的多业务场景下的应用与实践
- 应用案例 | 从Storm到Flink,有赞五年实时计算效率提升实践
- Apache Flink 在同程艺龙实时计算平台的研发与应用实践
- iOS 设备屏幕上实时打印 Log 的小工具
- 《Storm分布式实时计算模式》——1.5 理解数据流分组
- 《Storm分布式实时计算模式》——1.6 有保障机制的数据处理
- 《Storm分布式实时计算模式》——1.7 总结
- 《Storm分布式实时计算模式》——2.7 总结
- 《Storm分布式实时计算模式》——3.6 Trident状态
- 《Storm分布式实时计算模式》——导读
- 《Linux嵌入式实时应用开发实战(原书第3版)》——第2章 安装Linux2.1 发行版
- Android实现车辆检测(含Android源码 可实时运行)
- [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标
- Arduino UNO驱动DS1307数字实时时钟RTC
- 15. 车联网数据实时收集与分析平台测试
- Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词
- Python 基础 之 网络 socket 使用 udp (SOCK_DGRAM)结合 线程 Thread 实现简单的实时聊天功能
- HTML Echarts图形统计实时显示DHT11温度(三)
- 【Samza系列】实时计算Samza中文教程(四)—API概述
- nginx自定义模块编写-实时统计模块--转载
- 2019玩转ELK(ElasticSearch + LogStash + Kibana = ELKStack),轻松几步搭建ELK环境,对数据进行实时监控和分析(上)
- ELK实时日志分析平台环境部署,以及可视化展示