1、基于 Spark 的工业大数据处理可视化平台应用研究 刘学军 李长云 万烂军 湖南工业大学计算机学院 湖南工业大学研究生院 摘 要: 基于 Spark 利用 Java Web 技术研究设计了工业大数据处理分析的可视化平台, 用户不需要去了解大数据开发平台的底层细节, 只需要在 Web 界面端根据数据分析需求定制任务, 然后提交给平台处理再等待结果输出。分析了工业大数据与传统数据的不同点。简单介绍了如何利用 Spark MLlib 机器学习算法去分析工业大数据。分析介绍了在可视化平台搭建所要处理的一些技术问题, 技术原理, 制定了平台搭建的流程。最后对可视化平台进行了测试以及总结了应用研究中存在
2、的问题。关键词: 工业大数据; Spark; 定制化; 可视化; 作者简介:刘学军 (1993-) , 男, 湖南岳阳人, 硕士研究生在读, 主要研究方向为工业大数据处理与云计算;作者简介:李长云 (1971-) , 男, 教授, 硕士生导师, 主要研究领域为软件方法学、物联网、智能信息感知;作者简介:万烂军, 男, 讲师, 博士, 主要研究领域为高性能计算与工业大数据。基金:基于异构内存计算的工业装备故障预测关键技术研究 17K029 湖南省教育厅创新平台开放基金项目1 引言随着大数据云计算技术的发展, 企业公司及公众感知到大数据带来的价值:企业公司利润快速增长, 公众生活更加人性化等。在工
3、业建设方面, 大数据云计算对工业造成巨大优势影响, 许多企业都积极参与大数据云计算的研究中, 通过智能平台实现工业装备的智能运维, 提供故障诊断、故障预测、健康评估、维修管理及效能分析等功能。作为检测和监管的核心大数据分析平台, 目前工业大数据处理分析研究的平台环境较为复杂, 数据处理平台搭建及作测试分析的算法程序编写都需要专业人员来执行, 技术要求高, 要求作业人员具备一定的技术知识, 然而一般的小中型企业公司很难在这行配备专业技术人员, 所以, 将数据分析平台变得易操作尤为重要, 对此我们将平台进行可视化设计, 屏蔽了平台功能底层细节, 一般人员进行简单的培训就能很好的使用, 用户通过平台
4、即可自行定制大数据分析任务。互联网技术的发展, 上网速率逐渐加快, 使得访问数据的速度加快, 另外 web技术的成熟, 很多功能应用可以在 web 端实现。工业大数据分析处理可视化平台将结合 Web 技术开发。2 大数据可视化平台技术分析2.1 Spark 简介Spark 是一个基于内存计算的开源集群计算系统, 由 AMP 实验室使用 Scala 语言开发而来, 目前已是 Apache 的顶级开源项目。Spark 提供了一个更快、更通用的数据处理平台, 和 Hadoop 相比, Spark 可以让你的数据分析程序运行速度提升数十甚至上百倍。一些需要例如机器学习迭代算法适合在 Spark 平台上
5、运行。Spark 核心是由 Spark SQL、Spark Streaming、MLlib 及 Graph X 四大库组成, 这四者可以同步应用到一个程序中, 本文所建立的大数据分析平台就是利用了Spark MLlib 机器学习库, Spark Mllib 提供了一整套的数据分析算法, 诸如分类、聚类等等可用于工业大数据分析。HDFS 为 Hadoop 生态系统里的分布式文件存储系统, 跟一般的分布式存储系统具有许多共同点, 同时也具有其他分布式存储系统所不具有的优点, 其中最重要的是具有高容错性, 这样系统可以部署在廉价的机器上, 部署 HDFS 成本要求不高。同时 HDFS 提供高吞吐量的
6、数据访问, 适合大规模数据集的应用。工业大数据平台开发选用 HDFS 作文件存储系统。2.2 工业大数据特点当前数据时代, 大数据呈现四个特点, 一是数据体量巨大, 达到 PB 级;二是数据类型繁多, 由传统文本扩展到多种数据格式;三是价值密度低, 如何在庞大的数据中“提纯”获取价值是重点;四是处理速度快, 随着硬件成本的下降及性能的加强, 以及分布式处理思想的引入, 使得处理这些 PB 级别数据时, 速度也很快。工业大数据也有其特殊之处, 一是时间维度不统一, 区别于商业大数据, 工业大数据是由无数个检测工业装备的状况的传感器采集而来, 作为测试分析数据, 我们希望采集出来的传感器数据时间维
7、度一致, 也就是说, 原始数据在每一个时间点能包含所有传感器的值, 如果在时间点上的数据不完整势必会影响到最终的数据分析成果, 然而实际上在工业装备中, 受多方面的影响, 诸如温度、设备老化、传感器种类、采样周期差异等多方面原因, 传感器采集出来的数据很难保证时间维度一致, 这样我们就需要对原始数据进行预处理, 将时间维度对齐。工业数据是传感器采集到的一些温度、湿度、部件转速、亮度等直白的数据, 表面上很难体现出设备的一些状况等, 大数据分析就要将这些数据进一步处理, 转换成有意义的数据。2.3Java Web图 1 B/S 体系结构 下载原图图 2 JSP 页面执行过程 下载原图工业大数据分
8、析可视化平台作为一款网络应用程序, 提交任务阶段采用基于浏览器/服务器的 B/S 结构, 用户通过 Web 浏览器向 Web 服务器发送请求, 之后web 服务器将会对这些请求进行处理, 并将处理之后的结果层层返回给 Web 端, 如图。数据分析提交任务 Web 端采用 JSP 技术, 以 Java 基础技术开发, 沿用了 Java强大的 API 功能, 采用的 Web 服务器使用 Tomcat, 使用 My SQL 数据库, 通过Eclipse IDE for Java EE。由 Sun 公司 (现已被甲骨文公司收购) 开发的 JSP建立在 Servlet 之上, 主要是高效开发动态网页,
9、开发的网页 Web 安全性极高、跨平台等, JSP 页面执行过程如图所示, 网站数据库选用 My SQL 数据库。2.4 经典算法介绍数据分析的核心是算法, 算法的选择及优化决定了数据分析结果的好坏, 这也是数据分析所要研究的重点。大数据分析平台目前选用了三种简单算法来做测试:线性回归算法, 贝叶斯分类算法以及 KMeans 聚类算法。下面将简单介绍贝叶斯分类算法, 阐述分类算法如何运用到工业大数据的应用中。朴素贝叶斯分类算法是一种比较简单的算法, 主要思想就是对于给出的待分类项, 求解在此项出现的条件下各个类别出现的概率, 概率最大的那个就是这个分类项属于的类别。将关于未知参数的先验信息与样
10、本信息综合, 再根据贝叶斯公式得出后验信息, 根据后验信息推断未知参数的方法。数学表达式为:V= (v1, v2, v3, , vn) 是一个待分类的项, v n为 V 的每个特征向量;B= (b1, b2, b3, , bn) 是分类的集合, b n为待分类的项;现在要测试某个是那 B 集合中的那个具体分类, 则计算 P (bn|v) 最大值, 那么就是哪个分类项:在 MLlib 中贝叶斯算法主要是用于分类功能, 根据向量的不同样本数据进行分类, 比如给出以下简单样本:表一测试数据集 下载原表 其中每一个格为一个数据样本, 在每个样本中第一个数字为类别, 另外三个为特征值, 在通过 MLli
11、b 中的贝叶斯分类算法程序运行之后, 会根据样本生成一个模型, 利用这个模型当我们要测试一组特征值数据如 5 00 是属于哪个类别时, 计算机返回一个类别 0, 也就是说特征值为 500 的数据是属于类别 0 的。在工业设备中贝叶斯分类算法最简单应用能对工业装备做一些初步判定:事先通过传感器获取多组对工业装备采集到的数据, 按装备健康程度将样本数据分类, 将类别标记到样本数据中并通过贝叶斯分类算法对数据进行建模, 得出关于传感器采集的数据对应装备的状况类别的一个模型, 最后利用这个模型对采集到的数据进行测试, 判断机器的健康程度。3 平台搭建3.1 Spark 平台配置大数据分析平台其核心在于
12、 Spark 平台的建立, Spark 是基于 Hadoop 优化而来, 这两者都是开源项目, 在其官网都能下载到安装包。首先配置服务器, 这里选用两台 HPZ240 工作站, 每台搭配了 Intel 志强系列 CPU, 32G 内存及 128G 固态硬盘、1T 机械硬盘, 这样满足了平台的硬件需求。每台工作站 OS 为 Linux Centos 7 系统, 在 Centos 7 上部署 Spark 平台环境, 首先安装了 JDK 开发环境, Scala 开发环境, 因为后面采用的机器学习算法程序是用 Scala 编写的, 两台主机设置为一台 master 机器和一台 salve 机器。IP
13、子地址为master:172.18.16.118, slave:172.18.16.107。在 master 机器上安装 Spark, 本平台采用的是 Spark-1.6.3 版本, 免安装版, 只需要解压到相应目录, 然后设置用户名, 修改环境变量, 之后配置 Spark 安装信息, 同时以同样的方法在slave 机器上安装 Spark。安装完以后就启动 Hadoop 集群, 启动 Spark 集群分别启动 Master 和 slave 节点。3.2 可视化平台搭建可视化界面程序利用 Java 编写, 利用 JSP 技术, 现在有许多开源编程框架, 利用这些框架省去大部分的编码时间, 这里选
14、用了跟项目合适的 EOVA 框架。程序上传在 HP 服务器上。可视化平台作用将用户定制的数据任务化成一条指令, 提交到 Spark 平台运行数据分析任务, 指令包含 Spark 连接请求、任务代码、资源请求路径等。可视化平台网页首先显示平台的进入口数据洞察, 分为四个子模块:数据建模、模型查阅、故障诊断及趋势预测等。3.2.1 数据建模模块选择工业装备数据包括装备类别、部件 ID 值、时间段等, 从存放原始数据的My SQL 中提取, 然后选择相应的算法模板, 将要生成的模型命名, 添加描述性语言, 然后点击提交开始建模。后台运行以下程序:一是数据导入, 因为 My SQL 是中型数据库, 不
15、适合做大数据分析, 所以要将 My SQL 中的数据导入适合大数据分析的 HBase 数据库中, HBase 数据库已建立在 Spark 平台之上;二是添加算法模板, 在这里已提供三种算法的建模及测试用的程序包, 存放在 HP 服务器中, 调用路径信息及测试输入输出路径保存在 My SQL 数据库里, 当用户选择算法时则直接从 My SQL 数据库重调用相应信息;三是模型输出保存, 当训练模型过程完成后, 测试成功则会产生相应的模型, 将模型存储在 HDFS 中, 同时将相应的执行过程中数据记录在数据模型数据表中, 如模型保存的路径, 这里是以时间戳为文件夹名存放模型等。3.2.1 模型查询模
16、块用户输入查询语句, 在模型库中查询自己任务产生的模型, 查询条件为两张表Model ID 一致, 用户信息表为用户 ID, 查询结果显示在页面上。3.2.3 故障诊断、分析模块诊断与分析是平台的最终目的用来处理分析数据, 评判设备的健康状态, 诊断分析是利用模型库的模型来进行数据分析, 在故障诊断的界面用户选用模型、诊断数据的时间段, 然后提交任务运行。在数据建模中所产生的模型都包含一定的数据描述信息, 当选用一个模型就对应相应的诊断数据格式要与建模的数据格式一致, 这里就要记录每个模型所规定的数据特征, 只要选定模型, 则诊断数据的特征值也就确定了, 当导入诊断数据集时, 只需要确定数据的
17、时间段。数据集从 My SQL 中导入到 HBase 中, 选择相应的分析程序, 在这里依据每种算法建立的模型分别提供一种简单的程序, 提交上述任务到 Hadoop 平台上执行, 将结果保存到 HBase 数据库中, 结果保存在 HDFS 上, 同时返回给前端页面显示。图 3 平台架构流程 下载原图4 测试4.1 可视化平台启动基本平台搭建完成后, 选择贝叶斯算法进行平台的测试效果, 首先在服务器端Spark 平台服务, 依次启动 Hadoop 环境, 启动 Spark 环境, 启动主/从节点的Zookeeper 环境, 启动 HBase 服务环境。第二启动 Tomcat 服务器, Tomca
18、t 服务器用来提交数据分析任务到 Spark 平台之上, 在这里真个服务器端的所有环境已加载启动然后在运行 Javaweb 程序, 程序部署在 HP 服务器, 为了测试效果, 我们选在本地运行 web 程序, 当程序启动完以后, 整个可视化平台也就可以开始测试了。4.2 平台测试在浏览器端输入 172.18.16.46:81 进入可视化平台, 进入数据洞察模块, 在数据建模选择数据进行建模, 我们选取间的一些数据, 比如 ID 值为 1, 2, 3 三种特征值, 数据分析时间段为近一个月 2017.08.01-2017.08.31 的数据, 已标记好样本数据的健康类别, 0.0 类为不健康状态
19、, 1.0 为健康状态, 选择贝叶斯算法模板进行建模, 模型命名为“贝叶斯分类模型一”, 点击提交任务按钮, 当提交完以后建模任务就开始执行了。提交任务完后, Spark 平台处理数据建模任务, 之后将模型保存在 HDFS 之上, 在界面栏模型查阅可查看模型相关信息。模型建立完后就可利用模型做数据分析了, 点击进入故障诊断的界面, 选择要采用的模型, 这里我们选择刚才建立的“贝叶斯分类模型一”模型, 选择要诊断的数据, 选择 2017.09.01-2017.09.02 两天数据诊断, 点击提交按钮, 等待些时间, 就可在下面查看结果, 显示多个 1.0 就表示测试的机器设备是健康状态。图 4
20、平台测试 下载原图5 结论与展望通过上述可视化平台的搭建、技术分析简单演示, 可以看出, 搭建过程比较复杂, 涉及到了多种复杂的技术, 当没有可视化平台的时候做数据分析还是比较复杂的, 而可视化平台的建立省去了多项操作, 屏蔽了一些底层细节, 用户只需要在界面上定制自己的数据分析任务要求, 操作十分简便。同时非专业人士也能迅速掌握如何使用。虽然平台的基本框架已搭建完成, 但是可配置的功能比较少, 而且数据分析重点在于算法的选用, 目前平台提供的只是简单的一些算法, 只能做出一些简单的数据分析。潜藏在数据中的价值还要需要更多更完善的算法去挖掘。另外就是采集数据的预处理, 毕竟工业装备所处的环境复
21、杂多变, 有很多非人为不可控因素在影响着原始数据的采以及数据的可用性。所以原始数据的预处理就要剔除这些影响因素。综上, 大数据可视化平台以后的完善将着重在数据预处理及应用算法研究上下功夫, 逐渐完善平台功能。参考文献1王强, 李俊杰等.大数据分析平台建设与应用综述J.集成技术, 2016, 5 (2) :1-18. 2詹义, 方媛等.基于 Spark 技术的网路大数据分析平台搭建与应用J.互联网天地, 2016, 2:75-78. 3高翔, 李志浩等.Java Web 开发与实战M.北京:人民邮电出版社, 2014. 4Holden Karau, Andy Konwinski 等.Spark 快速大数据分析M.北京:人民邮电出版社, 2015. 5黄美灵.Spark MLlib 机器学习M.北京:电子工业出版社, 2016. 6王晓华.Spark MLlib 机器学习实战M.北京:清华大学出版社, 2015. 7覃洁清, 毛锡军.Hadoop 云计算基础架构的搭建和 HBase 和 Hive 的整合应用J.贵州科学, 2013, 31 (5) :32-35. 8崔杰, 李陶深, 兰红星.基于 Hadoop 的海量数据存储平台设计开发J.计算机研究与发展, 2012 (增刊 1) :12-17. 注释()2017 年第 12 期福建电脑