Hadoop大数据处理解决的问题1、信息获取方式——应用对象2、提取数据的思路——思路3、Hadoop的海量数据处理——工具信息获取方式——应用对象信息获取网上信息收集和存储一般为人工和自动两种方式。人工方式采用传统信息收集、分类、存储、组织和检索的方法。研究人员对网站进行调查筛选、分类、存储,再由专业人员手工建立关键字索引,再将索引信息存入计算机相应的数据库中。自动方式通常由搜索程序完成信息的获取,搜索程序(robot、spider等)为一种自动运行的软件,其功能为搜索Internet上的网站或网页。这种软件定期在Internet上漫游,通过网页间的超链接搜索新的地址,当遇到新的网页时,就索引该页并把它加到搜索引擎的数据库中,因此,搜索引擎的数据库得以定期更新。信息获取方式的优缺人工方式收集信息的准确性要优于搜索程序,但其收集信息的效率和信息覆盖面要低于搜索程序。自动方式搜索目标过于庞大,数据库需要定期更新。需要考虑怎样遍历Internet,怎样提高Internet的遍历效率,怎样下载资源内容以及资源内容的字符编码处理等。提取数据的思路——思路海量数据提取信息过滤处理过滤处理非结构化数据源非结构化数据源Hadoop计数非结构化数据并搜索主数据Hadoop计数非结构化数据并搜索主数据主数据与非结构化数据多表联结查询主数据与非结构化数据多表联结查询主数据源主数据源结构化数据源结构化数据源转换查询表转换查询表Map端联结模式Map端联结模式最终目标最终目标Reduce端联结模式Reduce端联结模式排序排序图从海量数据中提取信息BigTable数据模型BigTable:是一个经过排序后的分布式的、稀疏的、多维映射表–分布式:数据是分布式存储的–稀疏:列数可能很多,而某一行中可能只有少数列有数据–多维映射表:数据索引由行关键字(RowKey)、列关键字(ColumnKey)和时间戳(TimeStamp)三个维度构成数据以键/值映射的形式组织(row:string,column:string,time:int64)→stringBitable示例网站页面内容及其中超链接的解析–t3、t5、t6三个时间点抓取的网页内容存储在contents列中–有两个网页包含了到网页的链接,分别是位于cnnsi.com页面的超链接文字CNN,和位于my.look.ca页面的超链接文字CNN.comBigtable示例BigTable表的展开直观感受BigTable的存储面向列的存储–提高访问少数列的效率整行扫描vs.单列读取–提高压缩比杂vs.纯BigTable系统架构简单搜索框背后的复杂工作Hadoop的海量数据处理——工具MapReduce的来源编程模型:–1956年JohnMcCarthy(图灵奖获得者)提出的Lisp语言中的Map/Reduce方法–Map输入是一个函数和n个列表,输出是一个新的列表,列表中的元素是将输入函数作用在n个输入列表中每个对应元素获得的计算结果。–Reduce输入是一个函数和一个列表,输出是将函数依次作用于列表的每个元素后获得的计算结果Lisp中的Map和Reduce操作MapReduce原理MapReduce运行机制主控程序(Master):将Map和Reduce分配到合适的工作机上工作机(Worker):执行Map或Reduce任务基于Hadoop的海量数据处理框架平台管理层:确保整个数据处理平台平稳安全运行的保障,包括配置管理、运行监控、故障管理、性能优化、安全管理等在内的功能。数据分析层:提供一些高级的分析工具给数据分析人员,以提高他们的生产效率。编程模型层:为大规模数据处理提供一个抽象的并行计算编程模型,以及为此模型提供可实施的编程环境和运行环境。数据存储层:提供分布式、可扩展的大量数据表的存储和管理能力,强调的是在较低成本的条件下实现海量数据表的管理能力。文件存储层:利用分布式文件系统技术,将底层数量众多且分布在不同位置的通过网络连接的各种存储设备组织在一起,通过统一的接口向上层应用提供对象级文件访问服务能力。数据集成层:系统需要处理的数据来源,包括私有的应用数据、存放在数据库中的数据、被分析系统运行产生的日志数据等,这些数据具有结构多样、类型多变的特点。并行WordCount-实现结构从并行WordCount到MapReduceMapReduce处理方式算法研究反向索引反向索引:一种重要的数据结构–用于搜索引擎及其他需要对文本进行检索处理的应用中–反向索引存储了单词与单词所在的一个或多个文档及相关信息的列表–相关信息:出现次数、单词在文档中出现的位置等–示例:“is”在D0出现1次,在D1出现2次,在D2出现1次反向索引PageRank算法PageRank算法根据网页间的链接关系来确定一个网页的权重值–PageRank值是Google搜索引擎建立网站排名的重要因素之一,用于衡量网页的相关性和重要性–将网页A到网页B的链接视为网页A给网页B的权重进行投票,投票者(网页A)的自身权重和投票概率(一个网页存在多个链接)将影响被投票者(页面B)权重PageRank算法设计在开始执行时给所有页面赋上一个0到1之间的服从均匀分布的随机值map函数计算每节点可为相邻的出度节点贡献的权重值,reduce函数计算每节点的权重不断迭代直到每个网页的PageRank值不再变化并行最短路径算法Dijkstra算法从本质上来说是一个串行算法–核心在于队列Q保存了起点到其他节点距离的全局信息–需要改造以适应MapReduce的并行模式及无全局共享信息特点并行最短路径算法:–每次都对所有节点执行查找到起始节点的最短路径–起始节点开始,从一跳可达的节点传递到两跳、三跳等其余节点–已完成的较小跳数节点的最短路径值在计算较大跳数节点时仍被计算,直到所有节点路径值不变化最短路径算法MapReduce实现关联规则网站知识获取可通过数据挖掘发现知识之间的关联规则,如商户可以通过挖掘网站用户各种行为数据之间的关联关系,发现用户的行为习惯,进而向用户推荐他们可能喜欢的产品;用户也需要获取关于商户产品的关联知识,从而通过网络找到自己需要的合适的产品或服务等.就上述收集到的大众点评网的数据而言,各种类型的数据都可能存在一定的关联性。关联规则的主要指标体系关联规则的主要指标体系如下:支持度support(AB)=P(A|B),(1)置信度confidence(AB)=P(A|B)=support(AB)/support(A)(2)提升度lift(A,B)=P(A|B)/P(A)P(B)(3)式中,A,B为频繁项集,D为所有项集的集合,P(A|B)为条件概率,P(AUB)为集合A和B的并的概率。式(1)~(3)的值越高,则关联性越强。因此,此步数据挖掘的目标就是通过一定的算法,找到具有较高支持度、置信度和提升度的频繁项集。