北京交通大学专业硕士学位论文…电子商务个性化推荐理论介绍
的应用已经非常普遍。许多人都都使用Hadoop框架完成网站的后台数据处理。
2.4.2 HDFS分布式文件系统
HDFS 可以在廉价的服务器上运行,有很强的伸缩性,可以提供分布式文件系统给客户来访问。HDFS 的备份机制可以保证它有灾难冗余能力,它的其中一个设计原则就是:只要做好备份工作即便是一个集群中的服务器换掉也可以正常工作。
有以下几个问题亟待解决:
1、 2、 读取。
3、 4、
在普通廉价的硬件上运行的时候:把数据分布在大量廉价的机器备份数据:具有好的备份能力可以避免节点失效带来的损失。
上可以保证单个组建失效时整个系统仍然正常工作。
HDFS 通过NameNode来管理整个文件系统,所以NameNode上面存储了文件的元数据,但是实际的文件数据是存储倒DataNode上面的。有利于分布式文件维护和管理可以通过分离这种关联方式。NameNode存储的是目录,文件分块和文件分块存储位置的信息,NameNode处理文件的打开、重命名、关闭以及目录的操作。想要获取文件信息或者写文件,必须先和NameNode通信进行请求,而实际的工作则交由具体的DataNode和客户端来完成。
由于元数据非常珍贵,元数据的保护工作尤为重要,几种方式如下[35]:
1、 2、 3、 4、
元数据备份。
Hadoop的 Secondary Namenode。 Checkpoint Node 方案。 Facebook 的AvatarNode方案。
对超大数据文件进行存储,这里提到的超大数据文件指的是几百 流式数据访问,数据采用高效访问模式:通常是一次写入、多次
GB 甚至几百 TB 大小的文件。
不同的DataNode存储分块的文件数据。一般将文件分为 64M 一块,然后在不同的节点上存储,同时每一快数据块都有几个备份。也可以将特定的文件分成特定的数据块大小和数量。对于备份数据块存储的位置要求有一块靠近第一块存储的位置,而至少有一块存储在比较远的位置(这个比较远的位置指的就是不同的数据中心或者不同的机架),这样数据不会因为同一机架数据中心的损坏而受到影响
整个文件系统的元数据通过NameNode存储,DataNode和NameNode会定期
16
北京交通大学专业硕士学位论文…电子商务个性化推荐理论介绍
通过心跳包来传递数据块的信息,心跳包的另外一个作用是提示NameNode这个DataNode可以运行的信息,NameNode会计算出数据块和备份应该存储的位置。NameNode决定数据块存储的位置。
客户端向NameNode请求创建新文件,NameNode根据元数据的信息计算出文件的元数据信息,比如块存放的位置,分块大小等等。NameNode把这些信息回传给客户端,并使用租约机制通过心跳包告诉DataNode客户端会来存储数据。客户端收到信息后将数据分块之后通过管道 pipeline 向DataNode传输数据,数据一个节点接着一个节点的往下流,直到数据到达所有的备份节点。客户端为会 pipeline 所有流经的数据节点保存一个确认队列(ack queue),确保所有的节点都已经收到数据,如果有一个数据节点坏了就从 pipeline 中删除。NameNode会被通知分配一个数据节点,直到足够的备份节点被分配出去,于是数据就保存好了。其他数据块也通过这样的方式存储文件直到所有的所有的数据块都完成存储。
一次写入多次读取是 HDFS 针对文件操作类型的一个重要的特点。数据是块存储的,客户端首先访问NameNode,取得文件的元数据,包括数据块存储的位置信息,然后选择每一个块的距离 client 最近的位置(这个最近的位置是通信速率而不是物理位置)。然后 client 直接访问DataNode,从DataNode中获取数据。修改数据的开销比较大,HDFS 针对的是少修改的文件。针对大数据文件的HDFS写入之后可以重复使用,,一个文件的多个分块是可以并行读取的,分块的基础上。
2.4.3 MapReduce编程模型
MapReduce编程模型是Google最引以为豪的三大云计算相关的核心技术 (GFS, Big Table, MapReduce)之一,被设计用于并行运算处理海量数据集(大于1TB)。它的最初灵感来源于函数式编程语言中经常用到的映射(Map)和规约(Reduce)函数,它将复杂的并行算法处理过程抽象为一组概念简单的接口,用來实现大规模海量信息处理的分部化、并行化,从而使得开发人员编写程序不需要什么份丰富的编程经验。
MapReduce编程模型可以应用在集群之上,这些集群是由规模能灵活调整的普通PC所构成的。上千个普通PC所组成的集群中可以运行典型的MapReduce。MapReduce编程模型的优点在于:通过一组简单却的接口实现了大规模计算的分布化和并行自动化,通过这些接口,可以组建由普通PC构成的高性能集群。
MapReduce借助Hadoop平台实现数据挖掘,通过对输入数据的分割來分别计算。输入文件首先会被划分为多个分块,以便Map任务能够用并发的方式进行,文件的划分过程并不考虑输入文件的内部逻辑结构,具体的划分模式可以让使用
17
北京交通大学专业硕士学位论文…电子商务个性化推荐理论介绍
者自行定义。当然也可以使用Hadoop已定义的集中简单方式来划分。
当单个Map任务开始时,分析输入的文件,产生键值对,通过里面的继承方法对键值对进行数据处理,将处理结果存入内存缓冲区。内存中的数据信息板块组被划分到R个区域,同时写入本地磁盘的当中。送回本地磁盘数据数列的位置信息到管理机,这些位置信息将由管理机负责传送到执行Reduce任务的工作站。当把这些数据的位置信息告知给执行Reduce任务的工作站,工作站通过远程方式读取来自于执行Map任务工作站的本地缓存数据。当所有中间数据都被Reduce工作站读取后,工作站利用中间关键字把数据分组,拥有相同关键字的数据被分到同一组,并把这些数据按照排序进行归类。Reduce工作站对每一个由唯一的中间关键字对应的中间数据进行分组,它发送关键字和相对应的中间值给用户的Reduce函数,Reduce函数的输出结果将被添加到最后的文件中[36]。
我们可以把MapReduce理解为,把一堆杂乱无章的数据按照某种特征归纳起来,然后处理并得到最后的结果。Map面对的是互不相关而且杂乱无章的的数据,它解析每个数据,从中提取出key和value,也就是提取了数据的特征。经过MapReduce的Shuffle阶段之后,在Reduce阶段看到的都是已经被归纳过的数据了,我们可以基于以上做法作进一步的处理。
MapReduce的主要思想是使用整块分割为局部,然后处理局部信息,最后整合处理后的数据,形成统一的数据集。因为MapReduce拥有分割再进行整合的特点,所以本文在后面的算法优化中提出了基于MapReduce的分割算法,挖掘每块数据集,然后再将其进行合并,最后数据库将会得到合并后的相集。
18
北京交通大学专业硕士学位论文参考文献
3 基于大数据技术的电子商务个性化推荐系统可行性分析
当前大数据技术已经在很多行业中进行了广泛而深入的应用,包括通信行业、智慧医疗、商业运营、城市交通、汽车产业、仓储问题等等。大数据技术已经为这些行业带来极大利润,而且方便了人们的日常生活。大数据所依赖的Hadoop、Hbase等技术随着各家IT企业不断的使用,已经得到了极大的发展。大数据相关社区日益成熟,各种数据中心不断建立,降低了大数据技术的技术门槛。随着大数据技术的发展,大数据技术已经拥有了成熟的生态圈,形成了包括数据收集、数据存储、数据挖掘、工作流处理、系统部署配置监控等配套系统及解决方案。
为了更好地发展电子商务的线上盈利,各大电子商务在个性化推荐上投入了大量的人力与资金。但是由于推荐本身不确定性较大,个性化推荐产生的经济社会效益没有预想中的大。基于大数据技术,综合设计研发一套电子商务个性化推荐系统,将增加电子商务推荐的准确率以及用户粘性,增加电子商务企业的利润。
经过多年的电子商务的飞速发展,电子商务网站已经积累了大量的用户数据。从这些用户历史购买数据以及浏览行为等,可以对用户进行更加深入的个性化推荐。促进用户的消费,满足用户的需求,提升电子商务网站的营收率。
综上所述,基于大数据技术的电子商务个性化推荐系统具有较高的可行性。
19
北京交通大学专业硕士学位论文参考文献
4 基于大数据技术的电子商务个性化推荐架构
推荐系统的具体设计依赖于其具体的使用场景,比如亚马逊主要完成电子商务方向的推荐,豆瓣完成社交关系、文艺生活相关推荐,Digg完成新闻应用相关推荐。本文主要针对基于电子商务网站的应用场景来设计出一个基于大数据技术的电子商务个性化推荐系统。对于一个标准的电子商务网站系统,其系统架构图如图4-1所示。
图4-1 电子商务网站系统架构图
Fig.4-1 E-commerce site system architecture diagram
如上图4-1所示,对于一般购物网站来讲,主要分为web前端模块,业务处理模块、前端数据库模块、日志处理模块、推荐系统模块、核心业务模块。web前端模块负责界面展示以及与用户的UI交互;核心处理业务一般封装成服务,核心数据库的访问只对核心业务模块开放;中间的日志等模块负责简单界面展示相关处理。推荐系统相对于后台业务并不是非常的核心,但对于整个电子商务网站来说非常重要。随着个性化推荐技术的不断发展,电子商务水平的不断提高,推荐系统也已经成了整个系统的一项基本服务。当前的推荐系统已经不是简简单单的一个后台逻辑或者是一个函数调用可以完成的。广义上说,推荐系统属于数据挖掘和机器学习范畴,推荐系统的服务也更依赖与科学的推荐算法以及大量的学习数据。
本章节从电子商务个性化推荐需求出发,详细分析具体的功能需求,深入研究当前个性化推荐系统的系统架构,提出基于大数据技术的电子商务个性化推荐架构。该架构依赖电子商务积累的大量数据源头,根据用户的所有数据信息,对
20