论文部分内容阅读
大数据和大数据分析是目前IT领域里最炙手可热的概念,大数据具有3V的特点:数据规模大;((1)Volume:处理要求快,实时性要求比较高;(2)Velocity:数据有丰富的多样性。为了让数据产生更大的价值,就需要选择一个高效的大数3) Variety:据处理平台来对其进行相应的分析。Spark是适用于大数据的高可靠性、高性能分布式并行计算框架。目前在国内外,已经有很多公司在实际生产环境中广泛使用比如国外的谷歌、亚马逊,易贝、雅虎等公司和国内的淘宝,百度,华为,Spark,优酷土豆等公司。尽管在实际的工业生产和实践中已经有了广泛的使用,但是受限于其诞Spark生时间较晚、版本较新等因素。现阶段,使用Spark框架在有些具体大数据应用场景下进行挖掘和分析时,需要结合其原有模块并改写和添加一些功能,才能更好的发挥其作用。而在解决个别大数据挖掘问题时,框架目前还没有相应的功Spark能。比如分布式机器学习库MLlib里没有解决关联规则问题的分布式机器学习算法。本文的主要工作为:(1)构建本文的实验测试环境,将集群部署在Spark上,即搭建一个由单个Yarn节点和多个Master节点构成的Worker集群,集群使Spark用的操作系统为在集群上对本文中的实验数据,算法和系统进行验证和测Lin ix。试。为更方便的进行应用程序的开发和测试,搭建单机Spark编码环境IDEA,Scala在单机模式下进行应用程序的编码和初步调试,并生成能够在集群上运行的jar包。(2)为了在大数据生产场景下实现分布式协同过滤推荐,本文使用语言和Scala、Python、 Java并调用Spark RDD中的相关模块,实现分布式协同过滤推荐,MLlib并进行电影推荐。本文实现的分布式并行协同过滤推荐,是基于模型的推荐系统,获取最佳参数下的模型,用其进行预测测试集的评分和给用户进行推荐。在测试和验证实验结果时,选用经典的大电影数据集(3)为了在大规模数据:MovieLens。处理场景下实现关联分析,本文主要借助语言和Scala的分布式算子对Spark RDD经典的法进行分布式并行编码处理,并在分布式集群上部署和运行,使Apriori 算用chess大数据集在Spark集群上进行测试和验证,和Java语言编写的单机Apriori算法进行运行效率和结果的比较。本文所做的贡献为:(1)实现了将Spark集群部署在Yarn上,支持对集群规模进行扩充和调优。(2)提供了协同过滤推荐在分布式集群上并行运行的实现方案。(3)对Spark MLlib分布式机器学习库中没给出的关联分析问题的分布式算法提出了解决方案,即在分布式集群实现了并行Apriori算法。为协同过滤和关联分析类问题在大数据背景下的使用提供了可行的解决方案,以此丰富和提高了Spark框架在具体应用场景下的大数据挖掘能力。