《Hadoop平台下Spark大数据数据推荐算法研究.docx》由会员分享,可在线阅读,更多相关《Hadoop平台下Spark大数据数据推荐算法研究.docx(6页珍藏版)》请在第一文库网上搜索。
1、Hadoop平台下Spark大数据推荐算法研究摘要:Hadoop是大数据挖掘的主要平台,在其平台上可以搭建起Yarn,Mahout,Storm,Graph1ab等框架,Spark框架是一个较为常见的任务调度框架,其不仅具有强大的处理能力,还具备数据处理时效性,其集结了机器学习、图计算、在线学习等功能,采用了统一的处理机制,速度是传统的数据处理办法的几十倍甚至是几百倍。论文建立起了基于HadOOP平台下SPark框架,检验了SPark框架对大数据的处理机制能够满足日益增值的大数据应用对速度的要求。关键词:Hadoop;Spark;大数据;机器学习;图计算;实时处理1引言Hadoop平台是开源组织
2、Apache基金会开发的分布式架构,是大数据的基础平台。Spark框架称为快数据,是基于内存的编程模型,它可以把中间的迭代过程不放在磁盘中,直接数据一个不落地在内存中执行,极大地提高了它的执行速度。Spark是大数据挖掘的新型利器。SPark的优点不仅仅体现在快,也体现在功能强大的整合能力,其整合能力体现在它的大数据能力的强大。SPark的框架分为4大模块:SparkSQ1-RDD(数据执行的基本单元),M11ib(机器学习),Graphx(图计算)和SParkStreaming(实时处理)1;这四个部分的数据处理单元都是RDD,所以整个框架形成了大数据处理各种应用场景编程的一致性。SPark
3、框架集机器学习、图计算和在线学习于一身,是一个简洁、强大、高效的框架。2Hadoop安装部署作为MaPRedUCe模型的实际标准实现,HadOoP已经被很多机构广泛采用,以存储和计算大型数据集。包括两个组件:1)Hadoop分布式文件系统(HDFS);2)HadoopMapReduce引擎。MaPRedUCe模型基于两个用户定义函数,即映射(map)和约减(reduce),这两个函数计算由键值对表示的数据记录。映射函数提取每个键值对的相关特征,而约减函数则使用这些特征得到期望的结果。表1Hadoop,Spark框架的配置HadoopSparkHDFS数据块大小128MBHDFS数据块大小128
4、MB副本因子3副本因子3映射器/约减器的堆大小3.3GB执行器的堆大小18.8GB每节点映射器4每节点WOrker数1每节点约减器4Worker核,谓18shuff1e(置乱)并行复制2010排序MB600MB10排序溢出百分比80%2.1 硬件准备利用实验室机房中闲置的PC机,通过集线器将PC机连接成局域网。本平台先选用4台PC机,由于HadoOP和SPark的可扩展性,可以很方便地添加新的结点到集群中。每台PC机器装有虚拟机1-2并搭载UbUntU32bit操作系统,配有4GB内存和20GB的存储。设置虚拟机的网络连接方式为桥接模式,并给虚拟机设置静态IP,确保虚拟机之间可以相互Ping通
5、。这样,就实现了机器之间的互联。选定其中1台PC机作为master(即为namenode),另外3台作为s1ave(即为datanode)。为了方便对集群的管理,在每台PC机上建立Hadoop用户,并给HadOOP用户赋予root权限。将有关HadOoP和SPark的操作均放在HadooP用户下进行。2 .2安装JDKHadoop是用JaVa语言开发的分布式计算框架,所以集群中的每个结点需要安装JDKo从官网上下载JDK的ubuntu版本jdk-8u25-1inu-i586.tar.gz到桌面上,在usr/Ioca/下新建java文件夹,并将jdb8u25Tinu-i586.Tar.gz从桌面
6、复制到java文件夹下,解压缩该文件。23配置SSh免密码登陆Hadoop集群在运行时需要通过ssh13免密码服务来进行通信。Ubuntu自带SSh客户端,需要自行下载SSh服务器。在连网的情况下,输入如下命令来安装SSh服务器:$sudoapt-getinsta11openssh-server$sudoapt-getupdate使用ssh登陆到集群的另一结点时需要输入结点的密码,为方便通信避免每次输密码的麻烦,需要配置集群之间SSh免密码登陆。3 SPark集群搭建上传Spark-1.6.Ibi-hadoop2.6.tgz后解压安装包到1inux上,使用命令tar-zxvfspark-1.6
7、.I-bin-hadoop2.6.tgz-C/home/zkpk解压安装包到指定位置.使用命令进入SPark安装目录进行配置,用命令CdConf/进入Conf目录,使用命令:mvspark-env.sh.Temp1atespark-env.sh进行重命名,然后修改文件,用命令:viSPark-env.sh打开配置文件,在该配置文件中添加如下配置,其中master是主节点的主机名。exportJAVA_HOME=/usr/javajdk1.7.0_71/exportSPARK_MASTER_IP=IiIaSterexportSPARK_MASTER_P0RT=7077然后保存退出.接下来蚤命名并
8、修改s1aves.Temp1ate文件。在该文件中添加子节点worker节点所在的位置,本文两个从节点的主机名分别是s1ave1s1ave02o保存退出.最后将配置好的SPark拷贝到其他节点上,命令如下所示:SCP-rspark-1.6.1-bin-hadoop2.6/ZkPkSIaVCO1:scp-rspark-1.6.1-bi-hadoop2.6/ZkPkS1aVeO2:进入/home/ZkPk/spark-1.6.1-bin-hadoop2.6/Sbin目录,运行:./start-a11.sh分别在三台节点运行jps,分别有进程master,worker,workero在浏览器中查看m
9、aster:8080o图1系统总体架构安全数据源包括各种可以利用的网络及服务数据:网络抓包报文,网络设备提供NetfIoW数据,以及各种系统,服务产生的日志文件,如DNS日志,Web服务日志,邮件日志等。网络报文通过预处理程序,如五元组信息提取及流信息提取,然后实时推送到Kafka分布式消息系统。Kafka具有良好的吞吐能力和负载均衡技术,可以保证数据高速有序地提供给消息消费者。日志等状态文本消息使用F1ume分布式日志系统实时采集后同样推送到Kafkao部分安全数据经过简单处理后可以直接保存到分布式文件系统HDFS中。一部分数据通过SParkstreaming分发到Spark计算模块进行分析
10、检测处理。SparkStreaming将流式数据计算分解成一系列短小的批处理作业,能够充分利用SPark基于内存的计算模型高速处理流数据。Spark负责主要的数据分析处理功能,并且提供了M11ib机器学习库,通过M11ib可以构建针对不同安全问题的分析模型。C1usterana1ysisPredictiveana1ysisEmotiona1ana1ysisVisua1ana1ysisDataqua1ityandmanagementConceptdiscoverySparkStremingSparkMibmachine1earning1ibraryBasedonSparkhybridbigdat
11、aprocessingengine-app1icationApp1icationtN.Data属Datac1ientXf-v,sua1,zt,on4/integrationtoo1Dataresu1tvisua1izationmodu1e图2混合大雌分析系统结构及数据流4验证Hadoop集群和Spark集群WordCount是大数据编程的入门程序,实现对输入文件中每个单词出现次数的统计,可应用于海量文本的词频检索.实现单词词频统计的WordCount算法是一种典型分组聚集算法.该算法首先将文本分词,形成键值对的中间值,键为单词本身,值为1.然后对数据进行聚集,将具有相同键的值进行加和,输出结果
12、.本文使用WordCount来验证搭建的Hadoop集群和Spark集群是否成功.该算法的数据集节选于网络小说,Spark需要将HDFS上的数据初始化为SparkRDD,然后对RDD中字符串分词,生成新的RDD,将新生成的RDD转化为KeyVa1ueRDD进行并彳打算,将傩解KeyVa1ueRDD进彳撷约,然后得出结果.采用Sca1a语言在Ec1ipse上实现的具体代码如下:objectWordCountdefmain(args:ArrayString)va1conf=newSparkConf().setAppName(WordCount);va1sc=newSparkContext(conf
13、)va11ines:RDDString=sc.textFi1e(args(O);va1words:RDDString=1ines.F1atM叩(.sp1it();va1wordAndOne:RDD(String,Int)=words.m叩(_,1);va1counts:RDD(String,Int)=wordAndOne.ReduceByKey(_+.);va1sortedCounts:RDD(String,Int)=counts.sortBy(_._2,fa1se);sortedCounts.SaveAsTextFi1e(args(1);sc.stop();)将该代码打包在集群上运行.运行过
14、程如下上传本地文件到HDFS目录下在HDFS上创建输入文件夹ShadoOPfs-mkdir-pWOrd-CoUnt/input.上传本地文件到集群的input目录下,$ha-doopfs-put-/fi1e*wordcount/input,查看集群文件目录$hadoopfs-Iswordcount/input.(5)WordCount程序打包成后缀名为jar的压缩文件WordCountjar,进入到压缩文件所在文件夹,这里以一个fi1e输入文件和一个output输出文件夹为例说明。SPark程序运行如下命令执行.Sspark-submitmasteryanr-c1ientc1assWordCo
15、unt-sparkWordCountjar,hdfs:/master:9000/wordcount/input/fi1e,hdfs:/master:9000/wordcount/spark/output使用如下命令查看运行结果,Shadoopfs-IsWOrdCoUntsparkoutput.部分结果如图3痛.图3部分运行结果5结论在大规模网络环境背景下,针对现有单机安全分析检测平台处理能力限制,提出了基于HadooP和SPark计算框架构建一种低成本的可扩展性的大数据安全分析检测平台.使用离线模型生成与在线检测相结合的方式对大规模网络数据进行分析,同时能够实现实时安全分析检测.相比传统的单台服务器分析检测数据,通过实验证明:基于Had。P和SPark的大数据安全分析平台具有良好的可扩展性及高效处理能力,能够满足安全大数据的分析与检测要求.下一阶段,将在该大数据安全分析平台基础上充分利用DNS日志和网络流量数据,在异构数据环境中开展实时僵尸网络检测分析的工作.参考文献刘萍.基于HadoOP与SPark的高校校园大数据平台研究J.软件工程,2018(5).陈虹君,吴