网站大量收购独家精品文档,联系QQ:2885784924

python课件-第11章 大数据处理.ppt

python课件-第11章 大数据处理.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MapReduce:分布式计算框架,可以将单个计算作业分配给多台计算机执行,可以在短时间内完成大量工作,尤其适合数值型和标称型数据,但需要对行业领域具有一定理解后重写算法来完成特定的业务处理要求。 MapReduce的名字由函数式编程中常用的map和reduce两个单词组成。 MapReduce在大量节点组成的集群上运行,工作流程是:单个作业被分成很多小份,输入数据也被切片分发到每个节点,每个节点只在本地数据上做运算,对应的运算代码成为mapper,这个过程即map阶段;每个mapper的输出通过某种方式组合,根据需要可能还进行排序,排序后的结果再被分成小份分发到各个节点进行下一步处理,这被成为reduce阶段,对应的代码成为reducer。 不同类型的作业可能需要不同数量的reducer,并且,在任何时候,每个mapper或reducer之间都不进行通信,每个节点只处理自己的事务,且在本地分配的数据集上运算。 Hadoop:MapReduce框架的一个免费开源实现,采用Java语言编写,支持在大量机器上分布式处理数据。除了分布式计算之外,Hadoop还自带分布式文件系统,可以运行多种不同语言编写的分布式程序。Hadoop在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业主流的大数据分析平台。 Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右。Spark是hadoop的升级版本,兼容Hadoop的APi,能够读写Hadoop的HDFS HBASE 顺序文件等。 Hadoop作为第一代产品使用HDFS,第二代加入了Cache来保存中间计算结果,并能适时主动推Map/Reduce任务,第三代就是Spark倡导的流Streaming。 首先对大数据进行分割,划分为一定大小的数据,然后将分割的数据交给多个Map函数进行处理,Map函数处理后将产生一组规模较小的数据,多个规模较小的数据再提交给reduce函数进行处理,得到一个更小规模的数据或直接结果。 例:Windows系统的升级日志文件一般较大,现要求统计一下日志文件中不同日期有关的记录条数。 1)大文件切分:code\FileSplit.py 2)Map代码:code\Map.py 3)Reduce代码:code\Reduce.py 不同的处理要求需要不同的Map和Reduce函数。 Hadoop_Map.py import os import re import time def Map(sourceFile): if not os.path.exists(sourceFile): print(sourceFile, does not exist.) return pattern = pile(r[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}) result = {} with open(sourceFile, r) as srcFile: for dataLine in srcFile: r = pattern.findall(dataLine) if r: print(r[0], ,, 1) #将中间结果输出到标准控制台 Map(test.txt) Hadoop_Reduce.py import os import sys def Reduce(targetFile): result = {} for line in sys.stdin: #从标准控制台中获取中间结果数据 riqi, shuliang = line.strip().split(,) result[riqi] = result.get(riqi, 0)+1 with open(targetFile, w) as fp: for k,v in result.items(): fp.write(k + : + str(v) + \n) Reduce(result.txt) 在命令提示符环境执行下面的命令 python Hadoop_map.py test.txt|python Hadoop_Reduce.py Spark是一个开源的、通用的并行计算与分布式计算框架,其活跃度在Apache基金会所有开源项目中排第三位,最大特点是基于内存计算,适合迭代计算,兼容多种应用场景,同时还兼容Hadoop生态系统中的组件,并且具有非常

您可能关注的文档

文档评论(0)

k12教育文档 + 关注
实名认证
服务提供商

本人专注于k12教育,英语四级考试培训,本人是大学本科计算机专业毕业生,专注软件工程计算机专业,也可承接计算机专业的C语言程序设计,Java开发,Python程序开发。

1亿VIP精品文档

相关文档