Hadoop 生态之 MapReduce 及 Hive 简介
还拿上面例子来说:统计沟通单词在全部输入数据中呈现的次数,一个 Map 只能处理赏罚一部门数据,而热门单词就很也许会呈此刻全部 Map 中了,意味着统一单词必必要归并到一路统计才气获得正确功效。这种数据关联险些在全部的大数据计较场景都必要处理赏罚,假如是例子这种的虽然只对 Key 归并就OK了,但相同数据库 join 操纵这种较伟大的,就需对两种范例(或更多)的数据依据 Key 关联。 这个数据关联操纵在 MapReduce中的叫做:shuffle。 2.4 shuffle shuffle 从字面意思来看,洗牌。下面是一个完备的MR进程,看一看怎样洗牌。 ![]() 先看左半边 1. 从 HDFS 中读取数据,输入数据块到一个个的 map,个中 map 完成计较时,计较功效会存储到当地文件体系。而当 map 将近举办完时,就会启动 shuffle 进程。 2. 如图,shuffle 也可分为两种,在Map端的是 Map shuffle。大抵进程为:Map 使命历程会挪用一个 Partitioner 接口,对 Map 发生的每个 这里就实现了对 Map 功效的分区、排序、支解,以及将统一分区的输出归并写入磁盘,获得一个分区有序的文件。这样不管 Map 在哪个处事器节点,沟通的 Key 必然会被发送给沟通 Reduce 历程。Reduce 历程对收到的 再看右半边 1. Reduce shuffle,又可分为复制 Map 输出、排序归并两阶段。
2. 颠末上一步Reduce shuffle后,reduce举办最后的计较,将输出写入HDFS中。 以上即是 shuffle 大抵四个步调,要害是 map 输出的 shuffle 到哪个 Reduce 历程,它由 Partitioner 来实现,MapReduce 框架默认的 Partitioner 用 Key 哈希值对 Reduce 使命数目取模,沟通 Key 会落在沟通的 Reduce 使命 ID 上。
假如对 Shuffle 总结一句话: 漫衍式计较将差异处事器中的数据归并到一路举办后续计较的进程。 shuffle 是大数据计较进程中神奇的处所,不管是 MapReduce 照旧 Spark,只要是大数据批处理赏罚计较,必然会有 shuffle 进程,只有让数据关联起来,它的内涵相关和代价才会泛起。 3. Hive 上一部门先容了 MapReduce,接下来简朴谈谈 Hive . 我认为任何一项技能的呈现都是为了办理某类题目, MapReduce 毫无疑问简化了大数据开拓的编程难度。但现实长举办数据计较更常用的本领也许是 SQL,那么有没有步伐直接运行 SQL ? 3.1 Hive是什么 基于Hadoop的一个数据客栈体系,界说了一种类SQL查询说话:Hive SQL。 这里有一个名词 数据客栈,数据客栈是指:面向主题(Subject Oriented)、集成(Integrated)、相对不变(Non-Volatile)、回响汗青变革(Time Variant)的数据荟萃,用于支持打点决定。 这么说也许有点抽象,解析一下:
此刻再看下界说:数据客栈是将多个数据源的数据凭证必然的主题集成,举办抽取、洗濯、转换。且处理赏罚整合后的数据不应承随意修改,只能说明,还需按期更新。 3.2 为什么是 Hive 相识了 Hive 的基本界说,想一下:一个依靠于 HDFS 的数据客栈在 Hadoop 情形中可以饰演什么脚色? 前面说到,可不行以让 SQL 直接运行在 Hadoop 平台,这里的谜底即是 Hive。它可以将 Hive SQL 转换为 MapReduce 措施运行。 Hive 初期版本默认 Hive on Mapreduce 启动 hive 前凡是要先启动 hdfs 和 yarn, 同时一样平常必要设置 MySQL,Hive 依靠于 HDFS 的数据存储,但为了能操纵 HDFS 上的数据集,要知道数据切分名目、存储范例、地点等。这些信息通过一张表存储,称为元数据,可以存储到 MySQL 中。
看到这里,也许会认为我在写 SQL, 没错,对付认识 SQL 的人来说,Hive 长短常易于上手的。 3.3 HIVE SQL To MapReduce (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |