当前位置: 首页 > news >正文

越南国家建设部网站成都网页设计培训哪家好

越南国家建设部网站,成都网页设计培训哪家好,专做旅游酒店特价网站,做一整套网站需要什么在聊 MapReduce 之前不妨先看个例子:假设某短视频平台日活用户大约在7000万左右,若平均每一个用户产生3条行为日志:点赞、转发、收藏;这样就是两亿条行为日志,再假设每条日志大小为100个字节,那么一天就会产…

在聊 MapReduce 之前不妨先看个例子:假设某短视频平台日活用户大约在7000万左右,若平均每一个用户产生3条行为日志:点赞、转发、收藏;这样就是两亿条行为日志,再假设每条日志大小为100个字节,那么一天就会产生将近20个GB左右的数据;

面对这么大的数据量,如何对这些数做一些统计分析呢?

Java为例:如果写一个程序,从一个近20个GB的日志文件里,一条一条读取日志并计算,直到两亿数据全部计算完毕,你认为会花费多长时间?

不妨做个实验,随机生产从0到100的数字,并将其写入文件当中,最终生成一个大小为20个GB左右的文件:

public void generateData() throws IOException {File file = new File("D:\\微信公众号\菜鸟进阶站.txt");if (!file.exists()) {try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}BufferedWriter bos = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));for (long i = 1; i < Integer.MAX_VALUE * 3.4; i++) {String data = String.valueOf(random.nextInt(100)+1);bos.write(data);if (i % 1000000 == 0) {bos.write("\n");}}bos.close();
}

使用代码来统计哪一个数字出现的次数最多(执行过程忘记截图了),最后得出结论:整个统计过程大概用了12分钟左右;目前还仅仅是 GB级别,如果是 TB、PB呢?

作为科技巨头的大佬:Google(谷歌)对该问题给出了答案;

谷歌从2003年到2006年先后发表了三篇论文:GFS、MapReduce和Big Table。俗称三架马车,也正是这三驾马车正式打开了大数据的大门;今天我们主要聊一聊其中的MapReduce

该模型可以让开发者不用去考虑复杂的分布式架构,使得编写分布式代码就像单机版一样简单,自动将大任务拆分成小任务,分发到不同的机器上面进行并行计算;

简单来说 MapReduce的核心思想就是分而治之;

说到分而治之,就让我想起来小时候语文老师给我们的留的作业,抄写鲁迅的所有文章。这工作量可算是巨大的了;

为了能按时提交作业,我便将作业撕成了3份,张三一份、李四一份、王五一份;让他们分别区抄写其中的一部分,最后由我将3份作业订装在一起交给老师;这整个过程中:将作业撕开分别交给3个人便是 Map,最后我把作业组装起来便是 Reduce

上述过程只是一个笼统的概念。细的说,其实 MapReduce 大致话可以分为 Map、shuffle、Reduce 3个过程:

首先根据数据量大小,生产多个 Map任务,每个 Map任务会读取原数据并进行逻辑处理,最终生产一个 KV键值对;同时对每条数据根据 key 的值计算所属分区,并打上一个逻辑标识,用来决定改数据回去到哪一个 Reduce

Shuffle 过程包含在 MapReduce 的两端,Map 端的 Shuffle 会对数据进行一个排序,得到一个有序的文件,该文件按照分区排序,并且每个分区内部的键值对都按照 Key 的值进行升序排序;Reduce 端的 Shuffle,会去拉取属于自己分区的数据,并进行一个合并排序; Reduce 端根据业务需求,会对数据做进一步的处理并输出结果;

从上述过程中可以看出,Reduce 数量也就是分区的数量,分区相同的数据会经过 Shuffle 到达同一个 Reduce 当中;

WordCount 为例,该程序用来统计每个单词出现的次数:现在假设有份巨大的文件,我们将该文件进行切分,切分成三个 Map 任务,每个 Map 会对每行的内容按空格切分,每切下一个单词我们就将其组成一个 KV 键值对,其中 Key 代表这个单词 ,Value 代表该单词出现的次数;

Map端切分

由于我们的目标是统计每个单词出现的次数,因此我们只需要一个 Reduce 即可,在经过 MapShuffle 排序后,在每个 Map 端会生成一个有序的文件;

MapShuffle

Reduce 端的 Shuffle 会去拉取属于自己分区的数据,并作为一个合并排序,最后 Reduce 会遍历每个单词对于的数组进行累加,并进行结果的直接输出;

Reduce端

http://www.dtcms.com/a/485637.html

相关文章:

  • 西安网站建设哪个平台好动漫设计与制作软件
  • 芦苞建网站公司多种网站模板
  • 网站access数据库被攻击不断增大网站营销方法
  • 物流系统网站策划书建设摩托车官网首页
  • 网站网页?问?成都小程序制作开发
  • 网站上传虚拟主机文化网站模板
  • w网站建设需求说明网站建设ftp上传是空目录
  • 做目录右内容网站wordpress更换主题 会有什么营销
  • 直播秀场网站开发赤峰市住房和城乡建设局官方网站
  • 1企业网站案例网络营销常见的推广方式
  • 动效网站网站 改版
  • 医疗网站建设咨询济南食品行业网站开发
  • 网站开发的小结网站建设及推广销售话术
  • 网站建设找刘贺稳营销专家搜索推广网站哪家做的最好
  • 佛山网站百度站内搜索提升关键词排名
  • 如何将网站建设得更好城乡与住房建设厅网站
  • 云电脑注册网站首页深圳龙华做网站
  • 陕西天工建设有限公司网站网站建设与管理的流程方案
  • 聚牛网站建设公司如何将域名和网站绑定域名
  • 梅州建站规划石家庄站列车时刻表
  • 视频直播网站开发流程济南做门户网站开发公司
  • 公司做网站怎么做高职思政主题网站建设作用
  • 山东省建设科技协会网站首页wordpress 图片丢失
  • 蛋糕行业网站建设方案微信商户平台登录官网
  • 企业网站搜索优化网络推广网店托管代运营怎么样
  • 网站建设书籍免费网站建设的客户需求分析调研表
  • 做影视网站对服务器要求代写稿子的平台
  • 大题小做网站哈尔滨网站设计公司地址
  • 宁海县城镇建设局网站WordPress建站教程 网盘
  • 手机上自己做网站吗深圳域名注册公司