CN106682213B - 基于Hadoop平台的物联网任务订制方法及系统 - Google Patents
基于Hadoop平台的物联网任务订制方法及系统 Download PDFInfo
- Publication number
- CN106682213B CN106682213B CN201611264424.4A CN201611264424A CN106682213B CN 106682213 B CN106682213 B CN 106682213B CN 201611264424 A CN201611264424 A CN 201611264424A CN 106682213 B CN106682213 B CN 106682213B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- customizing
- internet
- things
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Hadoop平台的物联网任务订制方法及系统。该方法包括:数据采集模块采集预设日志格式的物联网日志并发送给数据存储模块;数据存储模块采用Spark对物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据并存储在Hive存储表中,第一转换日志数据包括独有字段内容;任务订制前端模块接收开发者输入的任务订制指令,将任务订制指令发送给所述任务管理模块;任务订制指令包括订制指标;任务管理模块接收任务订制指令,基于任务订制指令采用Spark‑sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行处理,以完成订制任务。该方法可显著降低磁盘的I/O强度,无需耗费大量的I/O,可显著提高运行效率。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种基于Hadoop平台的物联网任务订制方法及系统。
背景技术
随着云计算、移动互联网和物联网的快速发展,越来越多的设备接入到物联网,使得用户、应用程序和设备产生的物联网数据呈现飞速增长趋势,海量数据的出现和数据结构的复杂多变,给物联网服务器端管理和分析处理数据带来巨大的挑战。一方面,爆炸式的数据增长需求对存储服务器提出弹性扩展和安全可靠的要求;另一方面,不同设备待分析的数据结构各异,如何动态适应数据结构的变化和如何方便地存储管理,快速地提取访问数据成为制约大数据分析平台发展的重要因素。最后,快速而敏捷的分析计算能力是体现大数据分析平台能力的重要指标,如何快速高效地对物联网中的数据加以分析得出结果也是制约大数据平台发展的重要因素。
Hadoop平台是大数据领域中被广泛采用的存储方案,具有可扩展、高容错、经济、可靠、高效等优点。Hadoop的核心组件包括:分布式文件系统(Hadoop Distributed FileSystem,简称HDFS)和分布式计算模型MapReduce。HDFS以流式数据访问模式来存储超大文件,运行与商用硬件集群上;MapReduce是一个编程模型,用以进行稳定、高效、超大数据量的分析计算。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,类似于一个脚本解析器,可以将SQL语句转换为MapReduce任务进行运行。Hive给熟悉RDBMS但又不理解MapReduce的技术人员提供了快速上手的工具,它是运行在Hadoop上的SQL-on-Hadoop工具。
在将Hadoop平台应用在物联网任务订制时,采用MapReduce对物联网数据进行处理,采用MapReduce进行数据处理时,产生大量的中间磁盘落地,从而消耗大量的I/O,使得运行效率低下,不能满足BI(Business Intelligence)系统或其他大数据分析平台对运行效率的设计需求。为了提高SQL-on-Hadoop的效率,大量的SQL-on-Hadoop工具开始产生,Apache Spark正是其中一款优秀的工具。
Apache Spark项目诞生于伯克利大学的AMPLab实验室,AMPLab设计出Spark目的在于帮助开发人员对大规模数据集执行交互分析、从而运行各类迭代工作负载——也就是对内存中的同一套或者多套数据集进行反复处理,其中最典型的就是机器学习算法。
Spark的意义并不在于取代Hadoop。正相反,它为那些高度迭代的工作负载提供了一套备用处理引擎。通过显著降低面向磁盘的写入强度,Spark任务通常能够在运行速度方面高出Hadoop MapReduce几个数量级。作为“寄生”在Hadoop集群当中的得力助手,Spark利用Hadoop数据层(HDFS、HBase等等)作为数据管道终端,从而实现原始数据读取以及最终结果存储。
发明内容
本发明要解决的技术问题在于,针对现有Hadoop平台应用在物联网任务订制时,采用MapReduce进行数据处理时,存在运行效率低下的缺陷,提供一种基于Hadoop平台的物联网任务订制方法及系统。
本发明解决其技术问题所采用的技术方案是:一种基于Hadoop平台的物联网任务订制方法,包括:
数据采集模块采集预设日志格式的物联网日志,并将所述物联网日志发送给数据存储模块;所述预设日志格式包括数据结构可变的独有属性名称和独有属性内容;
数据存储模块接收所述物联网日志,采用Spark对所述物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据,并将所述第一转换日志数据存储在Hive存储表中;所述第一转换日志数据包括与所述预设日志格式相匹配的独有字段名称和独有字段内容;
任务订制前端模块接收开发者输入的任务订制指令,将所述任务订制指令发送给所述任务管理模块;所述任务订制指令包括订制指标;
任务管理模块接收所述任务订制指令,基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务。
优选地,还包括:
数据清洗模块调用Spark-sql中的通用清洗函数对所述Hive存储表中所有第一转换日志数据的独有字段内容的共性进行清洗过滤,以获取第二转换日志数据,并将所述第二转换日志数据存储在所述Hive存储表中;
数据统计模块调用Spark-sql中的通用统计指标函数,基于预设的通用指标,从所述Hive存储表中导出通用统计数据;所述通用统计数据包含与所述通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据。
优选地,所述基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务包括:
基于所述任务订制指令创建订制存储数据表和订制数据仓库;
调用Spark-sql中的通用清洗函数,对基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据进行清洗过滤,获取订制转换日志数据,并将所述订制转换日志数据存储在所述订制数据仓库中;所述订制转换日志数据包含所有与所述订制指标具有共性的专有字段内容的所有第一转换日志数据;
调用Spark-sql中的通用统计指标函数基于所述订制指标进行统计处理,从所述Hive存储表中导出所述订制统计数据,并将所述订制统计数据导出在所述存储数据表中,以完成所述订制任务;所述订制统计数据包括所述订制转换日志数据。
优选地,所述任务订制前端模块接收开发者输入的任务订制指令,之前还包括:
任务订制前端模块接收开发者输入的任务查询指令,并将所述任务查询指令发送给所述任务管理模块;所述任务查询指令包括查询指标;
任务管理模块接收所述任务查询指令,采用Spark-sql判断是否存在与所述查询指标相对应的已完成任务列表;若存在,则将所述已完成任务列表发送给所述任务订制前端模块;若不存在,则向所述任务订制前端模块发送未完成任务提醒信息;
所述任务订制前端模块接收并显示所述已完成任务列表或所述未完成任务提醒信息。
优选地,所述采用Spark对所述物联网日志进行解析,以获取第一转换日志数据,包括:
采用Spark将所述物联网日志加载到内存弹性分布数据集,获取若干原始数据项;
采用map自定义比较函数将所述内存弹性分布数据集的每一原始数据项进行字符串解析,并映射为符合模式匹配的更新数据项;
采用toDF函数将所述更新数据项转换成DataFrame模式,以获取与Hive存储表的数据格式相匹配的所述第一转换日志数据。
本发明还提供一种基于Hadoop平台的物联网任务订制系统,包括:
数据采集模块,用于采集预设日志格式的物联网日志,并将所述物联网日志发送给数据存储模块;所述预设日志格式包括数据结构可变的独有属性名称和独有属性内容;
数据存储模块,用于接收所述物联网日志,采用Spark对所述物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据,并将所述第一转换日志数据存储在Hive存储表中;所述第一转换日志数据包括与所述预设日志格式相匹配的独有字段名称和独有字段内容;
任务订制前端模块,用于接收开发者输入的任务订制指令,将所述任务订制指令发送给所述任务管理模块;所述任务订制指令包括订制指标;
任务管理模块接收,用于所述任务订制指令,基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务。
优选地,还包括:
数据清洗模块,用于调用Spark-sql中的通用清洗函数对所述Hive存储表中所有第一转换日志数据的独有字段内容的共性进行清洗过滤,以获取第二转换日志数据,并将所述第二转换日志数据存储在所述Hive存储表中;
数据统计模块,用于调用Spark-sql中的通用统计指标函数,基于预设的通用指标,从所述Hive存储表中导出通用统计数据;所述通用统计数据包含与所述通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据。
优选地,所述基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务包括:
基于所述任务订制指令创建订制存储数据表和订制数据仓库;
调用Spark-sql中的通用清洗函数,对基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据进行清洗过滤,获取订制转换日志数据,并将所述订制转换日志数据存储在所述订制数据仓库中;所述订制转换日志数据包含所有与所述订制指标具有共性的专有字段内容的所有第一转换日志数据;
调用Spark-sql中的通用统计指标函数基于所述订制指标进行统计处理,从所述Hive存储表中导出所述订制统计数据,并将所述订制统计数据导出在所述存储数据表中,以完成所述订制任务;所述订制统计数据包括所述订制转换日志数据。
优选地,所述任务订制前端模块接收开发者输入的任务订制指令,之前还包括:
任务订制前端模块,用于接收开发者输入的任务查询指令,并将所述任务查询指令发送给所述任务管理模块;所述任务查询指令包括查询指标;
任务管理模块,用于接收所述任务查询指令,采用Spark-sql判断是否存在与所述查询指标相对应的已完成任务列表;若存在,则将所述已完成任务列表发送给所述任务订制前端模块;若不存在,则向所述任务订制前端模块发送未完成任务提醒信息;
任务订制前端模块,用于接收并显示所述已完成任务列表或所述未完成任务提醒信息。
优选地,所述采用Spark对所述物联网日志进行解析,以获取第一转换日志数据,包括:
采用Spark将所述物联网日志加载到内存弹性分布数据集,获取若干原始数据项;
采用map自定义比较函数将所述内存弹性分布数据集的每一原始数据项进行字符串解析,并映射为符合模式匹配的更新数据项;
采用toDF函数将所述更新数据项转换成DataFrame模式,以获取与Hive存储表的数据格式相匹配的所述第一转换日志数据。
本发明与现有技术相比具有如下优点:本发明所提供的基于Hadoop平台的物联网任务订制方法及系统中,数据采集模块采集预设日志格式的物联网日志,以使物联网日志具有特定的数据结构,便于进行数据处理。数据存储模块采用Spark对物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据并存储在Hive存储表中,以使物联网任务订制过程中,可基于Spark-sql查询功能实现物联网订制,使其订制过程简单方便。而且,由于预设日志格式数据结构可变的独有属性名称和独有属性内容,相应地,经过Spark对物联网日志进行解析后获取的第一转换日志数据包括与预设日志格式相匹配的独有字段名称和独有字段内容,由于第一转换日志数据分离了数据采集模块获取的物联网日志与Hive存储表的依赖关系,以使形成的Hive存储表中无需针对每一种数据结构的物联网日志均设置一数据表。任务管理模块接收到任务订制前端模块发送的任务订制指令后,采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行任务处理,以完成订制任务;Spark-sql相比于分布式计算模型MapReduce,可显著降低面向磁盘的I/O强度,无需耗费大量的I/O,可显著提高运行效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例1中基于Hadoop平台的物联网任务订制方法的一流程图。
图2是本发明实施例2中基于Hadoop平台的物联网任务订制装置的应用系统的示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
实施例1
图1示出本实施例中基于Hadoop平台的物联网任务订制方法的一流程图。该基于Hadoop平台的物联网任务订制方法可应用在业务服务器和Hadoop平台中,该Hadoop平台包括但不限于BI系统。本实施例中,数据采集模块10设置在业务服务器上,数据存储模块20、数据清洗模块50、数据统计模块60、任务订制前端模块30和任务管理模块40均设置在Hadoop平台上。如图1所示,该基于Hadoop平台的物联网任务订制方法包括如下步骤:
S10:数据采集模块10采集预设日志格式的物联网日志,并将物联网日志发送给数据存储模块20;预设日志格式包括数据结构可变的独有属性名称和独有属性内容。
本实施例中,数据采集模块10采用预设日志格式的物联网日志并将物联网日志上传到数据存储模块20中,以使物联网日志具有特定的数据结构,便于进行数据处理,避免物联网日志的数据结构各异,导致Hadoop平台数据存储不方便。对于采集到任一物联网日志而言,均包括共有属性名称和共有属性内容、独有属性名称及独有属性内容,本实施例中预设日志格式包括数据结构可变的独有属性名称和独有属性内容,即数据结构可变是指独有属性名称的数量及顺序无限制,其对应的独有属性内容互不相同。具体地,每一物联网日志均包括4w(who、when、where、what)属性,即时间属性、地点属性、人物属性、事件属性。其中时间属性、地点属性、人物属性是所有物联网日志的共有属性。事件属性为物联网日志的独有属性,事件属性可分为不同类型的事件,每个类型的事件用独有属性加以描述,预设日志格式如下:
CommonKey1=CommonValue1;CommonKey2=CommonValue2;...;CommonKeyn=CommonValuen;Event={EventName,{1=Value1,2=Value2,...,n=Valuen}}
其中,CommonKey对应所有物联网日志的共有属性名称,负责描述时间属性、地点属性、人物属性;CommonValue是CommonKey对应的共有属性名称的共有属性内容。Event的{}内EventName为物联网日志的事件属性名称,是标识物联网日志的事件分类名,负责描述事件的命名;后面的{}内则是物联网日志的独有属性名称和特有属性内容,以说明是任一事件分类的独有属性;1,2,...,n,以数字方式对应物联网日志的独有属性数量,不具体命名独有属性列,n为可变大小的数字,即独有属性列以不定列表的形式存在,可以动态改变,不定列负责描述不同事件的具体属性,Value1,Value2,...Valuen,则是事件分析中独有属性列所对应的行具体值。每一EventName(事件)具有的独有属性的个数(n)是相同的,不定列的独有属性是相对固定的。不同EventName(事件)具有的独有属性的个数是不同的。格式中的“;”、“,”、“{}”只是约定的分隔符,可用其他符号替代。
如在物联网中,收集到的物联网日志的事件可以分为:“激活”、“开关机”、“控制方式”、“模式”、“亮度”、“色温”、“故障”、“耗电量”、“耗水量”等等,不同类型的事件对应的物联网日志具有相同的共有属性,也具有不同的独有属性。其中,共有属性包括但不限于Deviceid(设备,系统分配的唯一身份ID)、ONLOADTIME(上报时间)、IPAddress(IP地址)、Country(国家)、Province(省份)、City(城市),即每一物联网日志均需上传由谁上报——Deviceid(即人物属性),什么时间上报——ONLOADTIME(时间属性),在哪里上报——IPAddress(IP地址)、Country(国家)、Province(省份)和City(城市)等地点属性。“激活”、“开关机”、“控制方式”、“模式”、“亮度”、“色温”、“故障”、“耗电量”、“耗水量”等内容则属于具体事件名称(即EventName)是物联网日志的独有属性名称。
如可定义“激活”的EventName为com.tcl.user.activation,“开关机”的EventName为com.tcl.user.power等。如在“激活”事件中,描述设备(Deviceid)在什么时间绑定到什么品牌(brand),什么厂家(factory),什么品类(ptype)、什么型号(ct)等信息,均可采用独有属性内容进行描述,即将“激活”事件的EventName定义为com.tcl.user.activation之后,将预设日志格式中的{1=Value1,2=Value2,...,n=Valuen}}具体转化为与独有属性名称为“激活”事件相对应的独有属性内容,即{1=关系绑定时间,2=品牌值,3=厂家值,4=品类值,5=型号值}。因此,“激活”事件对应的物联网日志上报的日志格式如下:Deviceid=1041665;ONLOADTIME=2016-11-1814:59:02.000;IPAddress=1.62.55.217;Country=中国;Province=广东;City=深圳;Event={com.tcl.user.activation,{1=2016-11-1814:59:02,2=中山空调,3=aircon,4=titanium,5=TCL}}。
相应地,在“开关机”事件中,描述设备(Deviceid)在什么时间执行了开机(on)或者关机(off)的动作,在将“开关机”事件的EventName定义为com.tcl.user.power之后,将预设日志格式中的{1=Value1,2=Value2,...,n=Valuen}}具体转化为与独有属性名称为“开关机”事件相对应的独有属性内容,即{1=on/off(on表示开机,off表示关机),2=开机或关机的时间}。因此,“开关机”事件对应的物联网日志上报的日志格式如下:Deviceid=1041665;ONLOADTIME=2016-11-1814:59:02.000;IPAddress=1.62.55.217;Country=中国;Province=广东;City=深圳;Event={com.tcl.user.power,{1=on,2=2016-11-1814:59:02}}。
进一步地,业务服务器中的数据采集模块10将预设日志格式的物联网日志在业务服务器中以日期为存储文件夹名称,以便于进行数据管理。另外,数据采集模块10在向数据存储模块20上传物联网日志时,需将每一存储文件夹名称内的所有物联网日志定时上传到Hadoop平台的数据存储模块20中,以使数据采集模块10接收到物联网日志时,可直接以日期进行分类存储,并存储在数据存储模块20的本地文件夹内,以便于进行数据管理。
S20:数据存储模块20接收物联网日志,采用Spark对物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据,并将第一转换日志数据存储在Hive存储表中;第一转换日志数据包括与预设日志格式相匹配的独有字段名称和独有字段内容。
本实施例中,采用Spark对按预设日志格式上传的物联网日志进行解析,以获取到的第一转换日志数据具有与Hive存储表相相匹配的数据格式,以便第一转换日志数据可存储在Hive存储表中。具体地,第一转换日志数据包括与预设日志格式相对应的共有字段名称及共有字段内容、独有字段名称及独有字段内容。可以理解地,物联网日志按预设日志格式上传到数据存储模块20中,并将该物联网日志加载到Hive存储表中,无需在物联网日志采集过程中考虑数据存储问题,避免数据结构各异导致数据存储时效率低下的问题出现。
而且,由于预设日志格式数据结构可变的独有属性名称和独有属性内容,相应地,经过Spark对物联网日志进行解析后获取的第一转换日志数据包括与预设日志格式相匹配的独有字段名称和独有字段内容,由于第一转换日志数据分离了数据采集模块10获取的物联网日志与Hive存储表的依赖关系,以使形成的Hive存储表中无需针对每一种数据结构的物联网日志均设置一数据表。即采用数据结构可变的预设日志格式将物联网日志上传到数据存储模块20后,采用Spark进行解析,可将不同的物联网日志存储在同一Hive存储表中,采用Hive存储表中的动态数组,可实现对独有属性名称不同(即列数不同)和独有属性内容不同(即内容不同)的物联网日志的存储,节省存储空间,避免对每一事件对应的物联网日志均采用一存储表进行存储。
具体地,数据存储模块20设置在Hadoop平台上,数据存储模块20在接收到物联网日志时,先将物联网日志存储在以日期进行分类命名的本地文件夹(即lacal filesysten)中。如图2所示,数据采集模块20采集不同应用程序(application)产生的物联网日志(log),并通过rsync实现远程同步上传到数据存储模块20的本地文件夹(即lacalfilesysten)中。其中,rsync是rsync是类unix系统下的数据镜像备份工具Remote Sync,远程同步、支持本地复制,或者与其他SSH、rsync主机同步。Hadoop集群上的Master节点,再将本地文件夹中的物联网日志存储到HDFS(Hadoop Distributed File System,即分布式文件系统)中。具体地,Hadoop集群上的Master节点采用HDFS命令"hadoop fs-put$input$output"将本地文件夹的中物联网日志存储到HDFS中,其中,$input是物联网日志在本地文件夹的存储位置,$output是物联网日志在HDFS中的存储位置。
进一步地,步骤S20具体包括如下步骤:
S21:采用Spark将物联网日志加载到内存弹性分布数据集,获取若干原始数据项。
具体地,Spark将存储在HDFS中的物联网日志加载到内存弹性分布数据集(即Resilient Distributed Dataset,简称RDD)中,以使内存RDD中存储在若干原始数据项。RDD是Spark的最基本抽象,是对分布式内存的抽象使用。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作,相比于迭代运算比较常见的机器学习算法,交互式数据挖掘来说,效率提升比较大。
S22:通过map自定义比较函数将内存弹性分布数据集的每一原始数据项进行字符串解析,并映射为符合模式匹配的更新数据项。
具体地,采用map自定义比较函数将内存弹性分布数据集的每一原始数据项进行字符串解析,以去除分隔符,将共有属性匹配为key-value对,独有属性转为列表,并映射为符合模式匹配(case class)的更新数据项,采用模式匹配(case class)用于将内存RDD转化为Hive存储表中的记录格式。
S23:采用toDF函数将更新数据项转换成DataFrame模式,以获取与Hive存储表的数据格式相匹配的第一转换日志数据。
具体地,将Spark中的toDF函数将更新数据项转成DataFrame模式,以获取第一转换日志数据,并将第一转换日志数据加载到通用的以日期进行分区的Hive存储表中。其中,第一转换日志数据与Hive存储表中的记录格式相匹配,包括与预设日志格式相对应的共有字段名称及共有字段内容、独有字段名称及独有字段内容。Hive存储表中存储的第一转换日志数据如下:create table imub_array(did string,loadtime string,ip string,country string,province string,city string,eventname string,event_info array<string>)partitioned by(date string)stored as parquet;
可以理解地,第一转换日志数据与预设日志格式相对应,存储在Hive存储表中的第一转换日志数据包括共有字段名称、共有字段内容、独有字段名称和独有字段内容。其中,共有字段名称与预设日志格式中的共有属性列表相对应,包括人物字段、时间字段和地点字段。共有字段内容与预设日志格式中的共有属性内容相对应,分别对应did字段(即人物字段)、loadtime字段(即时间字段)、ip-country-province-city字段(即地点字段)。独有字段名称与预设日志格式中的独有属性名称相对应,如eventname字段。独有字段内容与独有属性内容相对应,如一类型事件描述字段列表event_info是一个由n个字段组成的动态列表,用下标的方式event_info[1],event_info[2],...,enent_info[n]来获取相应的独有字段内容。
本实施例中,采用预设日志格式的物联网日志,再采用Spark对物联网日志进行解析,转换成与Hive存储表相匹配的数据格式的第一转换日志数据,分离了业务服务器上传的物联网日志与Hive存储表之间的依赖关系,不需要对应每一个新增的事件,都要设计不同的hive存储表加以存储,有利于节省存储空间,提高运行效率。
进一步地,该基于Hadoop平台的物联网任务订制方法中,步骤S20之后还包括如下步骤:
S21:数据清洗模块50调用Spark-sql中的通用清洗函数对Hive存储表中所有第一转换日志数据的独有字段内容的共性进行清洗过滤,以获取第二转换日志数据,并将第二转换日志数据存储在Hive存储表中。
具体地,数据清洗模块50调用Spark-sql中的通用清洗函数,对Hive存储表中不同事件的独有字段内容的共性进行分析处理,用Spark的各种算子(如map、reduceByKey、filter、groupByKey、flatMap等)对第一转换日志数据进行加工处理,过滤重复、无用、失效、不符合规则等的“垃圾”数据,以形成易于分析、可直接调用Spark-sql处理的数据,提高数据处理效率。
数据清洗模块50提供通用清洗函数,调用任一通用清洗函数处理一类不同事件的共性,通过参数传递要处理的具体事件的事件名和存储数据仓库名。对一个新事件,生成一个可执行的事件只需要指定事件名和存储数据仓库名,即可基于新事件对第一转换日志数据进行清洗处理,获取第二转换日志数据。具体地,不同事件的行为属性列都存储在hive存储表中imub_array的
event_info列表字段,用独有字段内容描述不同的事件,针对不同的事件,其独有字段内容可发现共同点。例如:
设备的开关机:Event={com.tcl.user.power,{1=on,2=2016-11-1804:59:02}}
空调的模式控制:Event={com.tcl.control.mode,{1=送风,2=on,3=2016-11-18 04:59:02}}
吊灯的亮度:App={com.tcl.pendantlamp.brightness,{1=10,2=on,3=2016-11-18 04:59:02}}
吊灯的色温:App={com.tcl.pendantlamp.colortemperature,{1=20,2=on,3=2016-11-18 04:59:02}}
在上面所举的各类事件日志,事件名不一致,独有属性不一样,但是行为上有两个独有字段名称是共同的:动作(on/off)和动作发生时间。并且,它们有共同的统计需求,即统计时间段。在统计时间段时,需将单个的on和off的动作匹配为成对的on-off对,每一个on-off对应有一起始时间和一结束时间。但在物联网日志中,任一动作的开始时间和结束时间可能跨几天甚至更长,或者由于设备断线或者由于故障导致重复数据或者缺失数据等情况时,需对第一转换日数据进行数据清洗,以获取第二转换日志数据,以便于接收调用Spark-sql进行处理。本实施例中,形成的第二转换日志数据如下:开关机:did,area,date,starttime,endtime
模式:did,area,mode,date,starttime,endtime
亮度:did,area,brightness,date,starttime,endtime
色温:did,area,colortemperature,date,starttime,endtime
可以理解地,为完成对第一转换日志数据的清洗转化,需封装通用清洗函数。
任务函数1:过滤出每天最后发出的动作是on的日志时,根据传递进来的事件名,在通用Hive存储表中imub_array采用Spark-sql选取字段,然后用map算子和reduceByKey按照did分类,再排序,最后用filter算子过滤on动作的记录,导入到传递的数据数据仓库中。
任务函数2:匹对on-off对,形成可统计的中间数据时,根据传递进来的事件名,在通用Hive存储表中imub_array和任务函数1的结果中用Spark-sql选取字段,然后map算子groupByKey算子将同一did的动作属性按时间顺序排为列表,再在map算子中指定匹配规则、过滤依据,对数据进行清洗处理,转化单个动作列表为on-off对格式的列表,最终用flatMap算子拆分成行记录,写入文件,导入到传递的数据表中。
以上通用清洗函数不仅适合于设备的开关机、空调的模式控制、吊灯的亮度、吊灯的色温的数据清洗过滤,还有比如app的上下线,电视节目的观看时间,某个功能的持续使用时间等等,类似的统计时间需求的数据清理都可以指定事件名和数据表名,经过数据清洗模块50,导出可直接用Spark-sql进行计算统计的数据。
数据清洗模块50不仅可提供时间类的通用清洗函数,还可提供重复注册处理、故障类处理等通用清洗函数。对新的事件,如果需要分析的第一转换日志数据还要经过清洗,可以在Hadoop平台中增加处理的通用清洗函数。基于预设日志格式,不同的事件表现出其他共性,若存在需进行清洗、加工处理的共性,则可在在数据清洗模块50封装为通用清洗函数。
可以理解地,数据清洗模块50并不直接完成统计分析的任务,只是用于对第一转换日志数据进行清洗处理,以转换成可直接调用Spark-sql进行统计分析的第二转换日志数据,以使数据统计模块60可对第二转换日志数据进行统计分析,以一类事件的共性为目标,使得其数据清洗获取的第二转换日志数据可复用,以便于后续采用数据统计模块60直接调用该第二转换日志数据,减少相似统计任务的实现和导出数据过程的大量重复工作。
S22:数据统计模块60调用Spark-sql中的通用统计指标函数,基于预设的通用指标,从Hive存储表中导出通用统计数据;通用统计数据包含与通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据。
本实施例中,预设的通用指标可以是Hive存储表中独有字段内容的共性。可以理解地,Hive存储表中存储有由物联网日志经过Spark解析转换的第一转换日志数据,或者通过对第一转换日志数据进行清洗后形成的第二转换日志数据。数据统计模块60调用Spark-sql对Hive存储表进行Select操作,以获取包含与通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据,导出作为通用统计数据。进一步地,数据统计模块60还将通用统计数据保存到指定的MySQL数据库中,以便于在任务管理模块40接收到任务订制指令后,基于任务订制指令采用Spark-sql从MySQL数据库中获取对应的通用统计数据,并基于通用统计数据进行任务处理,以完成订制任务,以提高运行效率。
在数据统计模块60,与数据清洗模块50类似的,对不同的事件,如果行为上待分析的数据有共性,我们称它们为一类事件。同一类事件的数据经过分析处理能够展现的指标都是一样的。这里的指标是指数据按照特定的定义统计后收集的数据集。数据存储模块20上封装了通用统计函数以完成定义的各种指标,通过参数传递要处理的hql,存储统计数据的MySQL表,以完成Spark api的调用和数据的导出过程。
例如,对于激活或者其它的注册事件,本质上是给设备或者其它对象绑定类型。例如,在一台空调的在激活事件中,给激活事件绑定品牌、厂商、品类、型号等。对于该类事件,我们要展示的指标包括每天的新增用户数、总用户数。又如,数据清洗模块50中,设备的开关机、空调的模式控制、亮度、色温这些事件,本质上都是描述设备或对象的某一属性的持续时间。对于该类事件,我们要展示的指标包括每天的在线用户数、活跃用户数、在线时长、周活跃用户数、月活跃用户数、开机时间段分布、在线时间段分布等等。
S30:任务订制前端模块30接收开发者输入的任务订制指令,并将任务订制指令发送给任务管理模块40,任务订制指令包括订制指标。
具体地,任务订制前端模块30可接收开发者输入的任务订制指令,以控制任务管理模块40基于任务订制指令对存储在Hive存储表中的第一转换日志数据进行任务处理。步骤S30中,通过nginx框架,接收开发者输入的任务订制指令。
S40:任务管理模块40接收任务订制指令,基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行任务处理,以完成订制任务。
可以理解地,任务管理模块40接收到任务订制指令中,先判断任务管理模块40的MySQL数据库中是否存在与任务订制指令相对应的已完成任务。若存在已完成任务,则给任务管理模块40反馈已完成任务通知。若不存在已完成任务,则基于任务订制指令,采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行任务处理,以完成订制任务。Spark-sql相比于分布式计算模型MapReduce,可显著降低面向磁盘的I/O强度,无需耗费大量的I/O,可显著提高运行效率。即采用Spark-sql对Hive存储表中存储的第一转换日志数据进行任务处理,处理速度快,相比于现有Hadoop平台中常用的mapreduce,极大提高其运行效率。
进一步地,步骤S40中基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据的过程采用Scala语言进行处理,具体包括如下步骤:
S401:基于任务订制指令创建订制存储数据表和订制数据仓库。
任务管理模块40基于任务订制指令创建新事件分类,在任务管理模块40的MySQL数据库中新增事件分类,定义该新增的事件分类对应的指标为订制指标,并创建与订制指标相对应的存储数据表和订制数据仓库。
S402:调用Spark-sql中的通用清洗函数,对基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据进行清洗过滤,获取订制转换日志数据,并将订制转换日志数据存储在订制数据仓库中;订制转换日志数据包含所有与订制指标具有共性的专有字段内容的所有第一转换日志数据。
本实施例中,调用Spark-sql的通用清洗函数与订制指标对应的第一转换日志数据进行清洗过滤,以获取可直接调用Spark-sql进行统计分析的的订制转换日志数据,以便采用Spark-sql直接对订制统计数据进行统计分析,避免第一转换日志数据中存在重复、无用、失效、不符合规则等“垃圾”数据,影响统计分析的效率和质量。具体地,步骤S402中,采用数据清洗模块50,调用Spark-sql中的通用清洗函数,对基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据进行清洗过滤,其中清洗过滤过程如步骤S21一致,在此不一一赘述。
S403:调用Spark-sql中的通用统计指标函数基于订制指标进行统计处理,从Hive存储表中导出订制统计数据,并将订制统计数据导出在存储数据表中,以完成订制任务;订制统计数据包括订制转换日志数据。
具体地,调用Spark-sql中的通用统计指标函数基于订制指标进行Select操作,以获取包括订制转换日志数据的订制统计数据,从Hive存储表中导出订制统计数据,并存储在存储数据表中。Spark-sql相比于分布式计算模型MapReduce,可显著降低面向磁盘的I/O强度,无需耗费大量的I/O,可显著提高运行效率。具体地,步骤S403中,采用数据统计模块50调用Spark-sql中的通用统计指标函数基于订制指标进行统计处理,其统计处理过程如步骤S22一致,在此不一一赘述。
本实施例所提供的基于Hadoop平台的物联网任务订制方法中,数据采集模块10采集预设日志格式的物联网日志,以使物联网日志具有特定的数据结构,便于进行数据处理。数据存储模块20采用Spark对物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据并存储在Hive存储表中,以使物联网任务订制过程中,可基于Spark-sql查询功能实现物联网订制,使其订制过程简单方便。而且,由于预设日志格式数据结构可变的独有属性名称和独有属性内容,相应地,经过Spark对物联网日志进行解析后获取的第一转换日志数据包括与预设日志格式相匹配的独有字段名称和独有字段内容,由于第一转换日志数据分离了数据采集模块10获取的物联网日志与Hive存储表的依赖关系,以使形成的Hive存储表中无需针对每一种数据结构的物联网日志均设置一数据表。任务管理模块40接收到任务订制前端模块30发送的任务订制指令后,采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行任务处理,以完成订制任务;Spark-sql相比于分布式计算模型MapReduce,可显著降低面向磁盘的I/O强度,无需耗费大量的I/O,可显著提高运行效率。
在一具体实施方式中,该基于Hadoop平台的物联网任务订制方法的步骤S30之前还包括如下步骤:
S01:任务订制前端模块30接收开发者输入的任务查询指令,并将任务查询指令发送给任务管理模块40;任务查询指令包括查询指标。
可以理解地,开发者在任务订制之前,需了解其需订制的任务在Hadoop平台上是否有相应的已完成任务,以决定是否需要重新开发,此时可向任务订制前端输入任务查询指令,该任务查询指令包括查询指标,该查询指标可以与订制指标相同也可以与订制指标不相同。
S02:任务管理模块40接收任务查询指令,采用Spark-sql判断是否存在与查询指标相对应的已完成任务列表;若存在,则将已完成任务列表发送给任务订制前端模块30;若不存在,则向任务订制前端模块30发送未完成任务提醒信息。
任务管理模块40接收到任务查询指令后,采用Spark-sql判断是否存在与查询指标相对应的已完成任务列表,该已完成任务列表可以是基于在先输入的任务订制指令完成的订制任务。若存在,则将已完成任务列表发送给任务订制前端模块30;若不存在,则向任务订制前端模块30发送未完成任务提醒信息。
S03:任务订制前端模块30接收并显示已完成任务列表或未完成任务提醒信息。
可以理解地,任务订制前端模块30显示已完成任务列表或未完成任务提供信息,以使开发者了解其查询指标是否存在对应的已完成任务,以决定是否需向任务订制前端模块30发送任务订制指令,并基于任务订制指令完成任务订制,避免基于任务订制指令完成的订制任务与已完成任务重复,导致重复劳动。
实施例2
对应于上文实施例1中的基于Hadoop平台的物联网任务订制方法,图2示出本实施例中与实施例1所提供的基于Hadoop平台的物联网任务订制方法一一对应的基于Hadoop平台的物联网任务订制系统的结构框图。该基于Hadoop平台的物联网任务订制系统能够实现实施例1中基于Hadoop平台的物联网任务订制方法的细节,达到相同的技术效果,在此不一一赘述。如图2所示,该基于Hadoop平台的物联网任务订制系统包括:
数据采集模块10,用于采集预设日志格式的物联网日志,并将物联网日志发送给数据存储模块20;预设日志格式包括数据结构可变的独有属性名称和独有属性内容;
数据存储模块20,用于接收物联网日志,采用Spark对物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据,并将第一转换日志数据存储在Hive存储表中;第一转换日志数据包括与预设日志格式相匹配的独有字段名称和独有字段内容;
任务订制前端模块30,用于接收开发者输入的任务订制指令,将任务订制指令发送给任务管理模块40;任务订制指令包括订制指标;
任务管理模块40接收,用于任务订制指令,基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行任务处理,以完成订制任务。
优选地,还包括:
数据清洗模块50,用于调用Spark-sql中的通用清洗函数对Hive存储表中所有第一转换日志数据的独有字段内容的共性进行清洗过滤,以获取第二转换日志数据,并将第二转换日志数据存储在Hive存储表中;
数据统计模块60,用于调用Spark-sql中的通用统计指标函数,基于预设的通用指标,从Hive存储表中导出通用统计数据;通用统计数据包含与通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据。
优选地,基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据,并对第一转换日志数据进行任务处理,以完成订制任务包括:
基于任务订制指令创建订制存储数据表和订制数据仓库;
调用Spark-sql中的通用清洗函数,对基于任务订制指令采用Spark-sql从Hive存储表中获取与订制指标对应的第一转换日志数据进行清洗过滤,获取订制转换日志数据,并将订制转换日志数据存储在订制数据仓库中;订制转换日志数据包含所有与订制指标具有共性的专有字段内容的所有第一转换日志数据;
调用Spark-sql中的通用统计指标函数基于订制指标进行统计处理,从Hive存储表中导出订制统计数据,并将订制统计数据导出在存储数据表中,以完成订制任务;订制统计数据包括订制转换日志数据。
优选地,任务订制前端模块30接收开发者输入的任务订制指令,之前还包括:
任务订制前端模块30,用于接收开发者输入的任务查询指令,并将任务查询指令发送给任务管理模块40;任务查询指令包括查询指标;
任务管理模块40,用于接收任务查询指令,采用Spark-sql判断是否存在与查询指标相对应的已完成任务列表;若存在,则将已完成任务列表发送给任务订制前端模块30;若不存在,则向任务订制前端模块30发送未完成任务提醒信息;
任务订制前端模块30,用于接收并显示已完成任务列表或未完成任务提醒信息。
优选地,采用Spark对物联网日志进行解析,以获取第一转换日志数据,包括:
采用Spark将物联网日志加载到内存弹性分布数据集,获取若干原始数据项;
采用map自定义比较函数将内存弹性分布数据集的每一原始数据项进行字符串解析,并映射为符合模式匹配的更新数据项;
采用toDF函数将更新数据项转换成DataFrame模式,以获取与Hive存储表的数据格式相匹配的第一转换日志数据。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
上述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于Hadoop平台的物联网任务订制方法,其特征在于,包括:
数据采集模块采集预设日志格式的物联网日志,并将所述物联网日志发送给数据存储模块;所述预设日志格式包括数据结构可变的独有属性名称和独有属性内容;其中,所述数据采集模块将采集的预设日志格式的物联网日志在业务服务器中以日期为存储文件夹名称;
数据存储模块接收所述物联网日志,采用Spark对所述物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据,并将所述第一转换日志数据存储在Hive存储表中;所述第一转换日志数据包括与所述预设日志格式相匹配的独有字段名称和独有字段内容;其中,所述第一转换日志数据为未经清洗的数据;
任务订制前端模块接收开发者输入的任务订制指令,将所述任务订制指令发送给所述任务管理模块;所述任务订制指令包括订制指标;
任务管理模块接收所述任务订制指令,基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务;
其中,所述采用Spark对所述物联网日志进行解析,以获取第一转换日志数据,包括:
采用Spark将所述物联网日志加载到内存弹性分布数据集,获取若干原始数据项;
采用map自定义比较函数将所述内存弹性分布数据集的每一原始数据项进行字符串解析,并映射为符合模式匹配的更新数据项;
采用toDF函数将所述更新数据项转换成DataFrame模式,以获取与Hive存储表的数据格式相匹配的所述第一转换日志数据。
2.根据权利要求1所述的基于Hadoop平台的物联网任务订制方法,其特征在于,还包括:
数据清洗模块调用Spark-sql中的通用清洗函数对所述Hive存储表中所有第一转换日志数据的独有字段内容的共性进行清洗过滤,以获取第二转换日志数据,并将所述第二转换日志数据存储在所述Hive存储表中;
数据统计模块调用Spark-sql中的通用统计指标函数,基于预设的通用指标,从所述Hive存储表中导出通用统计数据;所述通用统计数据包含与所述通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据。
3.根据权利要求2所述的基于Hadoop平台的物联网任务订制方法,其特征在于,所述基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务包括:
基于所述任务订制指令创建订制存储数据表和订制数据仓库;
调用Spark-sql中的通用清洗函数,对基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据进行清洗过滤,获取订制转换日志数据,并将所述订制转换日志数据存储在所述订制数据仓库中;所述订制转换日志数据包含所有与所述订制指标具有共性的专有字段内容的所有第一转换日志数据;
调用Spark-sql中的通用统计指标函数基于所述订制指标进行统计处理,从所述Hive存储表中导出所述订制统计数据,并将所述订制统计数据导出在所述存储数据表中,以完成所述订制任务;所述订制统计数据包括所述订制转换日志数据。
4.根据权利要求3所述的基于Hadoop平台的物联网任务订制方法,其特征在于,所述任务订制前端模块接收开发者输入的任务订制指令,之前还包括:
任务订制前端模块接收开发者输入的任务查询指令,并将所述任务查询指令发送给所述任务管理模块;所述任务查询指令包括查询指标;
任务管理模块接收所述任务查询指令,采用Spark-sql判断是否存在与所述查询指标相对应的已完成任务列表;若存在,则将所述已完成任务列表发送给所述任务订制前端模块;若不存在,则向所述任务订制前端模块发送未完成任务提醒信息;
所述任务订制前端模块接收并显示所述已完成任务列表或所述未完成任务提醒信息。
5.一种基于Hadoop平台的物联网任务订制系统,其特征在于,包括:
数据采集模块,用于采集预设日志格式的物联网日志,并将所述物联网日志发送给数据存储模块;所述预设日志格式包括数据结构可变的独有属性名称和独有属性内容;其中,所述数据采集模块将采集的预设日志格式的物联网日志在业务服务器中以日期为存储文件夹名称;
数据存储模块,用于接收所述物联网日志,采用Spark对所述物联网日志进行解析,以获取与Hive存储表的数据格式相匹配的第一转换日志数据,并将所述第一转换日志数据存储在Hive存储表中;所述第一转换日志数据包括与所述预设日志格式相匹配的独有字段名称和独有字段内容;其中,所述第一转换日志数据为未经清洗的数据;
任务订制前端模块,用于接收开发者输入的任务订制指令,将所述任务订制指令发送给所述任务管理模块;所述任务订制指令包括订制指标;
任务管理模块接收,用于所述任务订制指令,基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务;
其中,所述采用Spark对所述物联网日志进行解析,以获取第一转换日志数据,包括:
采用Spark将所述物联网日志加载到内存弹性分布数据集,获取若干原始数据项;
采用map自定义比较函数将所述内存弹性分布数据集的每一原始数据项进行字符串解析,并映射为符合模式匹配的更新数据项;
采用toDF函数将所述更新数据项转换成DataFrame模式,以获取与Hive存储表的数据格式相匹配的所述第一转换日志数据。
6.根据权利要求5所述的基于Hadoop平台的物联网任务订制系统,其特征在于,还包括:
数据清洗模块,用于调用Spark-sql中的通用清洗函数对所述Hive存储表中所有第一转换日志数据的独有字段内容的共性进行清洗过滤,以获取第二转换日志数据,并将所述第二转换日志数据存储在所述Hive存储表中;
数据统计模块,用于调用Spark-sql中的通用统计指标函数,基于预设的通用指标,从所述Hive存储表中导出通用统计数据;所述通用统计数据包含与所述通用指标具有共性的独有字段内容的第一转换日志数据和/或第二转换日志数据。
7.根据权利要求6所述的基于Hadoop平台的物联网任务订制系统,其特征在于,所述基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据,并对所述第一转换日志数据进行任务处理,以完成订制任务包括:
基于所述任务订制指令创建订制存储数据表和订制数据仓库;
调用Spark-sql中的通用清洗函数,对基于所述任务订制指令采用Spark-sql从所述Hive存储表中获取与所述订制指标对应的第一转换日志数据进行清洗过滤,获取订制转换日志数据,并将所述订制转换日志数据存储在所述订制数据仓库中;所述订制转换日志数据包含所有与所述订制指标具有共性的专有字段内容的所有第一转换日志数据;
调用Spark-sql中的通用统计指标函数基于所述订制指标进行统计处理,从所述Hive存储表中导出所述订制统计数据,并将所述订制统计数据导出在所述存储数据表中,以完成所述订制任务;所述订制统计数据包括所述订制转换日志数据。
8.根据权利要求7所述的基于Hadoop平台的物联网任务订制系统,其特征在于,所述任务订制前端模块接收开发者输入的任务订制指令,之前还包括:
任务订制前端模块,用于接收开发者输入的任务查询指令,并将所述任务查询指令发送给所述任务管理模块;所述任务查询指令包括查询指标;
任务管理模块,用于接收所述任务查询指令,采用Spark-sql判断是否存在与所述查询指标相对应的已完成任务列表;若存在,则将所述已完成任务列表发送给所述任务订制前端模块;若不存在,则向所述任务订制前端模块发送未完成任务提醒信息;
任务订制前端模块,用于接收并显示所述已完成任务列表或所述未完成任务提醒信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611264424.4A CN106682213B (zh) | 2016-12-30 | 2016-12-30 | 基于Hadoop平台的物联网任务订制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611264424.4A CN106682213B (zh) | 2016-12-30 | 2016-12-30 | 基于Hadoop平台的物联网任务订制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106682213A CN106682213A (zh) | 2017-05-17 |
CN106682213B true CN106682213B (zh) | 2020-08-07 |
Family
ID=58850479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611264424.4A Active CN106682213B (zh) | 2016-12-30 | 2016-12-30 | 基于Hadoop平台的物联网任务订制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106682213B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959952B (zh) * | 2017-05-23 | 2020-10-30 | 中国移动通信集团重庆有限公司 | 数据平台权限控制方法、装置和设备 |
CN107918600B (zh) * | 2017-11-15 | 2021-11-23 | 泰康保险集团股份有限公司 | 报表开发系统及方法、存储介质和电子设备 |
CN108520003B (zh) * | 2018-03-12 | 2019-11-12 | 新华三大数据技术有限公司 | 一种存储过程调度系统和方法 |
CN108563789A (zh) * | 2018-04-28 | 2018-09-21 | 成都致云科技有限公司 | 基于Spark框架的数据清洗方法和装置 |
CN108961029B (zh) * | 2018-07-26 | 2022-05-06 | 创新先进技术有限公司 | 一种分布式对账处理方法、系统及终端设备 |
CN109542896B (zh) * | 2018-10-26 | 2020-12-01 | 深圳点猫科技有限公司 | 一种用于教育操作系统的数据处理方法及装置 |
CN111190949B (zh) * | 2018-11-15 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 数据存储及处理方法、装置、设备、介质 |
CN109947838A (zh) * | 2019-03-26 | 2019-06-28 | 中国联合网络通信集团有限公司 | 一种存储数据的方法及装置 |
CN112214463B (zh) * | 2019-07-12 | 2024-07-02 | 中科云谷科技有限公司 | Gps终端的监测方法、装置、系统及存储介质 |
CN111107137B (zh) * | 2019-12-06 | 2022-08-02 | 携程旅游信息技术(上海)有限公司 | 通信数据同步及处理方法和系统 |
CN112000711A (zh) * | 2020-07-21 | 2020-11-27 | 微梦创科网络科技(中国)有限公司 | 一种基于Spark确定刷评用户的方法及系统 |
CN114745296B (zh) * | 2020-12-23 | 2023-08-15 | 北京首信科技股份有限公司 | 数据上报方法及装置 |
CN112732759B (zh) * | 2020-12-31 | 2023-02-03 | 青岛海尔科技有限公司 | 数据处理方法及装置,存储介质及电子装置 |
CN113569123A (zh) * | 2021-06-28 | 2021-10-29 | 杭州涂鸦信息技术有限公司 | 一种日志查询方法、系统和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550293A (zh) * | 2015-12-11 | 2016-05-04 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark-SQL大数据处理平台的后台刷新方法 |
CN105786996A (zh) * | 2016-02-18 | 2016-07-20 | 国网智能电网研究院 | 一种用电信息数据质量分析系统 |
CN106056427A (zh) * | 2016-05-25 | 2016-10-26 | 中南大学 | 一种基于Spark的大数据混合模型的移动推荐方法 |
-
2016
- 2016-12-30 CN CN201611264424.4A patent/CN106682213B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550293A (zh) * | 2015-12-11 | 2016-05-04 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark-SQL大数据处理平台的后台刷新方法 |
CN105786996A (zh) * | 2016-02-18 | 2016-07-20 | 国网智能电网研究院 | 一种用电信息数据质量分析系统 |
CN106056427A (zh) * | 2016-05-25 | 2016-10-26 | 中南大学 | 一种基于Spark的大数据混合模型的移动推荐方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106682213A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106682213B (zh) | 基于Hadoop平台的物联网任务订制方法及系统 | |
US11941017B2 (en) | Event driven extract, transform, load (ETL) processing | |
US11663033B2 (en) | Design-time information based on run-time artifacts in a distributed computing cluster | |
CN108197237B (zh) | 可视化数据采集到展现系统 | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
CN106067080B (zh) | 提供可配置工作流能力 | |
JP2021515330A (ja) | データオブジェクトストアのためのデータ保持ハンドリング | |
CN111339073A (zh) | 实时数据处理方法、装置、电子设备及可读存储介质 | |
US20060129609A1 (en) | Database synchronization using change log | |
CN110249312B (zh) | 用于将数据集成作业从源框架转换到目标框架的方法和系统 | |
CN110928740A (zh) | 云计算中心运维数据集中可视化方法及其系统 | |
CN111125518A (zh) | 家电信息推荐的系统及方法 | |
CN116048817B (zh) | 数据处理控制方法、装置、计算机设备和存储介质 | |
CN114443599A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN115905371A (zh) | 数据趋势分析方法、装置、设备及计算机可读存储介质 | |
CN106599244B (zh) | 通用的原始日志清洗装置及方法 | |
US20220382236A1 (en) | Shared automated execution platform in cloud | |
CN115599871A (zh) | 基于湖仓一体的数据处理系统和方法 | |
CN115168474A (zh) | 一种基于大数据模型的物联中台系统搭建方法 | |
CN114281494A (zh) | 数据全生命周期管理方法、系统、终端设备及存储介质 | |
CN112765216A (zh) | 一种基于物联网的数据批量处理方法 | |
KR20220054992A (ko) | Dcat 기반 메타데이터 변환 시스템 | |
AU2020220125A1 (en) | System and method of automated extraction and visualization of knowledge about enterprise technology, personnel and business functions | |
CN111143328A (zh) | 一种敏捷商业智能数据构建方法、系统、设备、存储介质 | |
US10558637B2 (en) | Modularized data distribution plan generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 516006 TCL technology building, No.17, Huifeng Third Road, Zhongkai high tech Zone, Huizhou City, Guangdong Province Applicant after: TCL Technology Group Co.,Ltd. Address before: 516006 Guangdong province Huizhou Zhongkai hi tech Development Zone No. nineteen District Applicant before: TCL RESEARCH AMERICA Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |