2.4 Sparkmllib 库与基于 spark 的数据挖掘算法。
Spark 之所以在机器学习方面具有得天独厚的优势,有以下几点原因:
(1)机器学习算法一般都有很多个步骤迭代计算的过程,机器学习的计算需要在多次迭代后获得足够小的误差或者足够收敛才会停止,迭代时如果使用 Hadoop 的 MapReduce 计算框架,那么计算时每次都要进行读 / 写磁盘,任务的启动等工作,这样的结果就是导致 I/O 和CPU 大量消耗。而 Spark 基于内存的计算模型天生就擅长迭代计算,它可以在内存中直接完成多个计算步骤,很少或者只有在必要时才会对磁盘和网络进行操作,因此说 Spark 正是机器学习的理想的平台。
(2)从通信的角度讲,如果使用Hadoop的MapReduce计算框架,JobTracker和TaskTracker之间由于是通过 heartbeat 的方式来进行的通信和传递数据,会导致非常慢的执行速度,而Spark 具有出色而高效的 Akka 和 Netty 通信系统,通信效率极高。
MLlib(Machine Learnig lib)是指 spark 的机器学习算法库,它集成了常用的一些机器学习算法,它同时也包含了一些相关的测试与数据生成器。Spark 的设计初衷就是为了支持一些迭代的 Job,这正好符合很多机器学习算法的特点。在 Spark 官方首页中展示了 LogisticRegression 算法在 Spark 和 Hadoop 中运行的性能比较,如图下图所示。
Spark 比运行 Logistic Regression 的运算场景下比 Hadoop 的计算速度快了 100 倍以上[21].
MLlib 目前支持 4 种常见的机器学习问题:分类、回归、聚类和协同过滤,MLlib 在 Spark整个生态系统中的位置。
MLlib 基于 RDD 可以与 Spark SQL、GraphX、Spark Streaming 无缝集成,以 RDD 为基石,4 个子框架可联手构建大数据计算中心。
MLlib 主要包含三个部分:
(a)底层基础:包括 Spark 的运行库、矩阵库和向量库;(b)算法库:包含广义线性模型、推荐系统、聚类、决策树和评估的算法;(c)实用程序:包括测试数据的生成、外部数据的读入等功能。
2.4.1 分类算法。
分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,使用分类模型,可以对数据库中没有进行分类的数据进行分类。在数据挖掘领域中分类是一项重要的任务,目前在商业上应用最多,常见的典型应用场景有流失预测、精确营销、客户获取、个性偏好等。 MLlib 目前支持分类算法有:逻辑回归、支持向量机、朴素贝叶斯和决策树。
(1)回归算法。
回归算法属于监督式学习,每个个体都有一个与之相关联的实数标签,并且我们希望在给出用于表示这些实体的数值特征后,所预测出的标签值可以尽可能接近实际值。 MLlib 目前支持回归算法有:线性回归、岭回归、 Lasso 和决策树。
(2)聚类算法。
聚类算法属于非监督式学习,通常被用于探索性的分析,它意思就是根据物以类聚的原理,将没有分类的数据集分成不同的组,被分类的同一组数据中的数据集叫簇,并且对形成这样的簇的过程进行描述的过程。聚类的目的就是将属性相似的一组数据集合在一起,也就是说同一簇中的数据相似,不同簇的数据性质不同,常见的典型应用场景有客户细分、客户研究、市场细分、价值评估。 MLlib 目前支持广泛使用的 KMmeans 聚类算法。
(3)协同过滤。
协同过滤常被应用于推荐系统,这些技术旨在补充用户 - 商品关联矩阵中所缺失的部分。MLlib 当前支持基于模型的协同过滤,其中用户和商品通过一小组隐语义因子进行表达,并且这些因子也用于预测缺失的元素。
2.5 大数据技术在安全领域的应用和优势。
恶意代码检测、入侵检测作为传统的基于特征的信息安全分析技术已经广泛被应用等,但是伴随着数据量越来越庞大和一些新型的信息安全攻击的出现,传统的安全技术已经很难应付,所以应用大数据分析技术对新型信息安全攻击进行分析已成为业界研究热点。Gartner在 2012 年的报告中明确指出"信息安全正在变成一个大数据分析问题"[28].大数据安全分析方法不但能够解决海量数据的采集和存储,并且结合机器学习和数据挖掘方法,就更加能够更加主动、弹性地去应对未知多变的风险和新型复杂的违规行为。因此 BDSA(Big DataSecurity Analysis,安全大数据分析)应运而生。
虽然分析日志,网络流量,并为取证和入侵检测系统事件已经在数十年的信息安全界的一个问题,传统的技术并不总是不足以支持长期的,大规模的分析有以下几个原因:第一,保留了大量的数据之前不是经济上可行的。其结果是,在传统的基础设施,大多数事件日志和其他记录计算机活动的固定保留期(例如,60 天)之后删除。其次,不完整和噪音特征大型非结构化数据集进行分析和复杂的查询效率低下。例如,一些流行的安全信息和事件管理(SIEM)工具的目的不是分析和管理非结构化数据并牢固地绑定到预定义模式。然而,新的大数据应用也开始变得安全管理软件的一部分,因为它们可以帮助清洁,做好准备,并在异构,不完整的,嘈杂的格式有效地查询数据。最后,大型数据仓库的管理历来是昂贵的,他们的部署通常需要强有力的商业案例。 Hadoop 框架等大数据工具现在大规模的商品化,可靠集群的部署,因此使处理和分析数据的出现了新的机遇。欺诈检测是大数据分析最明显的用途之一:信用卡和电话公司都进行了几十年的大规模的欺诈检测了;然而,对客户来说建立基础设施来挖掘大数据来检测欺诈检测行为是必要的,但大范围采用并不够经济实用。大数据技术的主要影响之一是他们正在推动各种工业试图建立安全监控经济实惠的基础设施。尤其是,新的大数据技术,如在 Hadoop 生态系统(包括 pig,hive,mahout,和 Hadoop),流挖掘,复杂事件处理,且和 NoSQL 数据库,正在使大型,异构数据集的分析以前所未有的规模和速度。这些技术为信息安全分析在存储上,维护和安全信息分析转化方面提供了便利。我们可以通过查看安全工具如何反应在过去十年中改变来发现这些趋势。当 IDS 传感器的市场不断的增长,网络监控的传感器和记录工具被部署在企业网络;然而,从这些不同的数据源的管理警报成为一项具有挑战性的任务。其结果是,安全厂商开始开发 siems 平台,其目的是聚集和关联告警等网络统计信息,并通过仪表盘提供所有这些信息,证券分析师。现在的大数据工具提高通过关联,巩固和来龙去脉更长的时间消耗臭氧层物质围更不同的数据源提供给安全分析师的信息。
我们可以从 Zions Bancorporation 提出一个最近的案例研究中看到的大数据工具所带来的的具体利益[29].其研究发现,庞大的数据量和事件所需要的数量分析能力已经超越了传统的SIEM 系统所能承受的范围(对于一个月内收集的数据需要 20 分钟喝一个小时时间进行研究)。而在 hadoop 生态系统中使用 hive 进行查询,得到同样的结果大约只需要一分钟,将非结构化数据和多个不同的数据集的进行结合进入一个单一的分析框架是大数据的有前途的特点之一。大数据工具也特别适用于 apt 的检测和预测,apt 攻击攻击模式缓慢周期长,所以检测这些攻击,我们需要手机和关联大量的各种各样的数据集做长时间的历史关联才能探测出apt 攻击[30].
2.5.1 安全大数据分析。
大数据分析技术给信息安全领域带来了全新的解决方案,但是如同其它领域一样,大数据的功效并非简单 地采集数据,而是需要资源的投入,系统的建设,科学的分析。Gartner 在2013 年的报告中指出,大数据技术 作为未来信息架构发展的十大趋势之首,具有数据量大、种类繁多、速度快、价值密度低等特点。将大数据技术应用到信息安全分析领域,可以实现容量大效率高成本低的安全分析能力。
(1)信息安全分析引入大数据的必要性。
大数据具有"4V"的特点:Volume、Variety、Velocity 和 Value,可实现大容量、低成本、高效率的信息安全分析能力,同时能够满足处理和分析安全数据的要求,将大数据分析应用于信息安全领域能够有效的识别各种攻击行为或安全事件,具有重大的研究意义和实用价值。随着企业规模的增大和安全设备的增加,信息安全分析的数据量呈指数级增长。数据源丰富、数据种类多、数据分析维度广;同时,数据生成的速度更快,对信息安全分析应答能力要求也相应增长。传统信息安全分析 主要基于流量和日志两大类数据,并与资产、业务行为、 外部情报等进行关联分析。基于流量的安全分析应用主要包括恶意代码检测、僵木蠕检测、异常流量、Web 安全分析等;基于日志的安全分析应用主要包括安全审计、主机入侵检测等。
将大数据分析技术引入到信息安全分析中,就是将分散的安全数据整合起来,通过高效的采集、存储、检索和分析,利用多阶段、多层面的关联分析以及异常行 为分类预测模型,有效的发现 APT 攻击、数据泄露、DDoS 攻击、骚扰诈骗、垃圾信息等,提升安全防御的主动性。而且,大数据分析涉及的数据更加全面,主要 包括应用场景自身产生的数据、通过某种活动或内容"创 建"出来的数据、相关背景数据及上下文关联数据等。如何高效合理的处理和分析这些数据是安全大数据技术应当研究的问题。
(2)安全大数据分析方法。
安全大数据分析的核心思想,就是指基于网络异常行为分析,它通过对海量数据处理及学习建模,从海量数据中找出异常行为和相关特征;针对不同安全场景设计针对性的关联分析方法,发挥大数据存储和分析的优势,从丰富的数据源中进行深度挖掘,进而挖掘出安全问题。安全大数据分析主要包括安全数据采集、存储、检索和安全数据的智能分析。
(a)安全数据采集、存储和检索:基于大数据采集、存储、检索等技术,可以从根本上提升安全数据分析的效率。采集多种类型的数据,如业务数据、流量数据、安全设备日志数据及舆情数据等。针对不同的数据采用特定的采集方式,提升采集效率。针对日志信息可采用 Chukwa、Flume、Scribe 等工具;针对流量数据可采用流量景象方法,并使用 Storm 和 Spark技术对数据进行存储和分析;针对格式固定的业务数据,可使用 HBase、GBase 等列式存储机制,通过 MapReduce 和 Hive 等分析方法,可以实时的对数据进行检索,大大提升数据处理效率。
(b)安全数据的智能分析:并行存储和 NoSQL 数据库提升了数据分析和查询的效率,从海量数据中精确 地挖掘安全问题还需要智能化的分析工具,主要包括 ETL(如预处理)、统计建模工具(如回归分析、时间 序列预测、多元统计分析理论)、机器学习工具(如贝叶斯网络、逻辑回归、决策树、随机森利)、社交网络工具(如关联分析、隐马尔可夫模型、条件随机场)等。常用的大数据分析思路有先验分析方法、分类预测分析方法、概率图模型、关联分析方法等。可使用 Mahout 和 MLlib 等分析工具对数据进行挖掘分析。
综上,一个完备的安全大数据分析平台应自下而上分为数据采集层、大数据存储层、数据挖掘分析层、可视化展示层。主要通过数据流、日志、业务数据、情报信息等多源异构数据进行分布式融合分析,针对不同场景搭建分析模型,最终实现信息安全的可管可控,展现整体安全态势。
2.5.2 基于网络流量的大数据分析。
在互联网出口进行旁路流量监控,使用 Hadoop 存储及 Storm、Spark 流分析技术,通过大数据分析技术梳理业务数据,深度分析所面临的安全风险。主要分析思路是采集 Netflow原始数据、路由器配置数据、僵木蠕检测事件、恶意 URL 事件等信息,采用多维度分析、行为模式分析、指纹分析、孤立点分析及协议还原等方法,进行 Web 漏洞挖掘、CC 攻击检测、可疑扫描、异常 Bot 行为,APT 攻击,DDoS 攻击挖掘等分析[29].
2.5.3 本章小结。
本章介绍了 DDoS 攻击相关技术、darknet 数据集背景知识、云计算平台、数据挖掘算法与 sparkmllib 机器学习库等与本文相关的技术和算法。阐述了大数据技术在网络安全领域应用和优势,提出了基于网络流量的大数据分析,为后续章节云平台架构设计提供了理论基础。
随着我国居民生活水平的提高,居民可支配的收入越来越高,随之而来的是居民生活压力增加,不健康饮食、不健康的生活习惯和生活压力导致居民的健康水平却越来越低,近些年我国居民对健康越来越重视。...
第五章系统测试整个智能家居系统的硬件平台搭建完成,软件编程和调试结束后,需要对系统进行一个全面的测试,来验证系统的功能的实现和稳定性。系统测试分为功能测试和性能测试。功能测试主要检测系统设计的功能是否都能完成;性能测试主要检验系统的稳定...
第四章个人防火墙系统设计与实现4.1开发环境操作系统:Windows7开发工具:VisualStudio20104.2防火墙系统设计架构4.2.1防火墙系统总体结构PSFW个人防火墙分为三个模块(总体模块划分见表4.1):(a)PSFWIOCONTROL为动态链接库模块和可执...
本文以软件开发为主线论述了主要的系统分析、设计与实现工作。在需求分析方面,从嘉饰公司亟需解决的主要营销问题出发,着重从营销基础信息管理、营销方案管理和营销的定价与成本信息管理方面进行了分析。...
第五章结论本文通过对物联网智能家居市场走访调查,结合行业发展趋势进行综合分析,充分考虑大众需求,研究和分析智能家居设备的控制技术,主要研究工作有以下几个方面:?1、对物联网和智能家居的发展历史,智能家居的发展现状进行了深入细致地研究,通...
第1章绪论随着计算机技术、互联网技术和嵌入式技术的日趋成熟,物联网开始逐渐走进人们的生活。在国家的政策支持下,科技在飞速的发展,智慧中国的概念也已经逐渐走入我们的城市。智能城市、智能家居、智慧医疗等基于物联网的智能系统已经为人们的生活...
本文的研究目标是以软件工程理论为指导,采用 PHP+My SQL 技术设计并实现科学合理、实用好用、能够满足实际需求的作业管理系统,以提高教学中作业管理环节的效率,增强教学效果,提高人才培养的质量。...
摘要微信是腾讯公司于2011年1月21日推出的一款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机即时通信软件,截止到2014年底,微信注册用户已接近8亿,海外用户突破1亿。面对如此庞大的用户群体,各种各样基于微信的应用系统...
第3章酒店客房预订管理系统的数据库分析及系统设计3.1数据库分析软件系统在工作的过程中,相关的数据信息都保存在数据库中,数据库的主要作用就是对软件系统中的数据信息进行存储和管理,保证这些数据信息的稳定和安全。数据库就是软件系统的后台,是...
第5章系统测试系统测试工作是软件工程中不可缺少的一项工作内容,而系统测试工作并不是在系统完成开发工作后才开始进行,而是在系统开始开发后便进行工作。边开发边测试已经是软件系统开发工作中的新形势。系统测试工作能够保证软件系统从功能单元到整体...