农业物联网平台数据中心研发历程

本文回顾了基于Hadoop的农业物联网平台建设历程,探讨了HBase、Kafka、Kudu等技术的应用与挑战,最终转向自定义TCP协议的通信方案,并分享了选择Vert.x框架的心路历程。

基于Hadoop的分布式存储计算框架,我于2016年便借助51cto徐培成老师的培训接触,老实讲只学到了些皮毛,倒是借助徐老师的Java基础提升了自己对面向对象编程的理解。进入2019年,由于公司业务的需要,规划建设农业物联网平台,解决数万个传感器数据存储、查询分析的需求。从当前的数据量看,其实也并不算大,大约千万条的级别,但考虑之后的扩展性及全省推广之后的大数据量接入,决定走分布式框架。于是首选HBase+Kafka,实时计算部分由于之前已有c#的代理服务,故不作变动,计划后期修改为storm或者spark streaming。通过Hbase随机读写、高I/O的特性,记录物联网设备实时采集数据,完事转存到hive中进行离线分析。一开始这样的考虑还是很靠谱的,也行得通,技术上也都验证通过。但在hbase表结构设计上遇到问题,对于将rdbms思想深入骨髓的我们,对hbase列族、基于主键查询的概念十分不适应。导致第一版设计的时候,将设备ID作为主键,通过cell版本号(即时间戳)区分采集的数据,后来发现版本号乃是预设,非无限拓展。后阴差阳错的将cell版本数量拓展到5000,以满足一个月左右的数据存储,同时编写定时任务,每日0点定时同步至hive结构化表格。

按说第一版的这个设计也是站得住脚的,也是从传统编程模式走出来的我们,最容易理解的一种方式,直到遇到kudu,便深陷其中。

kudu这只螺旋角的羚羊,即有hbase的随机读写、高i/o的特性,又具备结构化(默认为支持impalaSQL,就当成结构化,非ACID和事务概念)的特点,同时还有多列主键等,简直完美契合我们的需求。

------未完待续

2020年6月18日补充

过去大约一年多时间,我也已经回到熟悉的岗位三个月,期间公司的物联网平台几乎与我离开时无异,只不过简化了许多之前的设计。表现在去掉了用起来很简单,但运维起来复杂的Kafka,去掉了功能强大,但实际用不太到的kudu。基本上也就是跟大数据绝缘了。到这里,物联网平台真正剩下的也就只剩下通信协议。

经过我与公司.net开发的同事商议(他负责与设备通信,转发到物联网平台),考虑到通信效率和物联网协议的特点(二进制数据流、高效率、低延迟、并发大),基于TCP协议实现物联网平台私有协议。

这个时候摆在我面前的就有很多选择,第一个就是之前用过的netty,然后就是spring全家桶里的RScoket以及jdk原生socket。经过知乎以及微信公众号上的资料查询,我觉得冒险采用vert.x开发相关的组件。考虑vert.x主要基于以下几方面考虑:第一,这个框架之前没有接触过,但具备异步特质,且性能优异;第二,较为简单易用的api,尤其是创建tcp服务及监听上;第三,具备全面的组件支持,不管是微服务还是异步编程还是jdbc等等;最后,比较容易嵌入到spring框架中使用,也可以单独使用。缺点则是国内应用的案例极少,且没有太多的资料,需要翻阅英文文档或者原生API。

未完待续-----

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制方法。通过结合数据驱动技术与Koopman算子理论,将非线性系统动态近似为高维线性系统,进而利用递归神经网络(RNN)建模并实现系统行为的精确预测。文中详细阐述了模型构建流程、线性化策略及在预测控制中的集成应用,并提供了完整的Matlab代码实现,便于科研人员复现实验、优化算法并拓展至其他精密控制系统。该方法有效提升了纳米级定位系统的控制精度与动态响应性能。; 适合人群:具备自动控制、机器学习或信号处理背景,熟悉Matlab编程,从事精密仪器控制、智能制造或先进控制算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①实现非线性动态系统的数据驱动线性化建模;②提升纳米定位平台的轨迹跟踪与预测控制性能;③为高精度控制系统提供可复现的Koopman-RNN融合解决方案; 阅读建议:建议结合Matlab代码逐段理解算法实现细节,重点关注Koopman观测矩阵构造、RNN训练流程与模型预测控制器(MPC)的集成方式,鼓励在实际硬件平台上验证并调整参数以适应具体应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值