大数据处理领域的框架有很多。从计算的角度看,主要有MapReduce框架(属于Hadoop)生态系统和Spark框架【计算效率优秀。从存储角度来看,主要还是用Hadoop生态环境中的HDFS框架

Spark分布式计算框架:基于内存的集群计算系统。解决MapReduce磁盘读写的开销问题。吸引很多数据研究人员。逐渐形成了自己的生态系统:以Spark为基础,上层包括Spark SQL,MLib, Spark StreamingGraphX

Spark的核心概念弹性分布式储存(Resilient Distributed Datasets, RDD), 是Spark对分布式内存进行的抽象,使用者可以像操作本地数据集一样操作RDD。

WordCount程序在Spark编程模型下的RDD转换:----很关键。

 Spark运行架构:Spark有三种主要的分布式部署模式standalone模式----自带完整服务,可以独立部署在一个集群中而不需要依赖其他的资源管理系统、Spark On YARN模式、Spark On Mesos模式。 假设使用standalone模式,A为Master节点,B、C、D、E为Worker节点,Master节点上面就有主进程,负责作业DAG图的生成,以及作业的调度,这个进程称为Driver进程。而作业真正执行的Worker上就会创建作业运行进程,称为Exector进程。

Spark上层生态系统:是一个优秀的计算框架,上层生态系统包括Spark SQL, Spark Streaming, MLlib, GraphX等。

1)Spark SQL. 数据仓库查询工具

2)Spark Streaming 是基于Spark的分布式流式处理框架

3)MLlib:MLlib工程就是Spark环境下的机器学习解决方案:主要包括了SVM, DT, NBayesian, K-means, SVD等。

4)GraphX: GraphX是Spark提供的分布式图计算框架。


Spark与MapReduce的比较

1)MapReduce需要频繁的读写磁盘,Spark是基于内存的,都是在内存进行,性能是MapReduce的100倍以上。

2)在编程模型方面,MapReduce只提供了map,reduce两种算子,而Spark提供了多达几十种操作算子,分Transformations(map,filter,flatMap,sample,groupByKey,reduceByKey)和Actions(count,collect,reduce,take)两大类.------由于这些高层API已经实现了很多常用的数据操作,所以Spark程序可以非常简洁地实现非常强大的功能。



HDFS分布式存储框架Hadoop Distributed File System 是Apache Hadoop中的核心子项目,用于存储和管理海量数据,是大数据生态的核心框架

HDFS特点:1)处理超大文件,不适合处理大量小文件。2)流式访问数据 3)运行在廉价的集群上 4)不适合低延迟访问



Parquet文件类型-----一种新型列式存储的文件类型。MapReduce和Spark都能处理Parquet文件,Hive SparkSQL都能直接查询以Parquet文件为基础的数据仓库。 这一特性使得Parquet文件可以替代传统的文本文件类型。


推荐系统综述:例如电商领域,推荐系统实现的功能就是根据已有的信息,如物品信息,用户信息,用户行为信息等,将相应的物品推荐给用户。常见的推荐任务有两种,评分预测Top-N推荐。


推荐算法:

1)协同过滤:Collaborative Filtering, CF算法最为经典,核心思想是利用群体智慧进行推荐。协同过滤又分为基于用户的协同过滤(User-CF), 基于物品的协同过滤(Item-CF)等。皮尔逊积矩相关系数---评分预测。jaccard公式--Top-N推荐。 Item-CF首先是由行为发现相近物品(物以类聚)---余弦相似度


在实际环境下,一般会使用混合推荐系统(Hybirdization Recommender System)


推荐系统评价指标:1)用户满意度 2)预测准确度 3)覆盖率