随笔分类 -  hadoop

摘要:对于简单的分析程序,我们只需一个MapReduce就能搞定,然而对于比较复杂的分析程序,我们可能需要多个Job或者多个Map或者Reduce进行计算。下面我们来说说多个Job或者多个MapReduce的编程形式 MapReduce的主要有以下几种编程形式 1、迭代式MapReduce MapRedu 阅读全文
posted @ 2016-06-11 12:09 刘超★ljc 阅读(1185) 评论(2) 推荐(2) 编辑
摘要:默认情况下,Map输出的结果会对Key进行默认的排序,但是有时候需要对Key排序的同时还需要对Value进行排序,这时候就要用到二次排序了。下面我们来说说二次排序 1、二次排序原理 我们把二次排序分为以下几个阶段 Map起始阶段 在Map阶段,使用job.setInputFormatClass()定 阅读全文
posted @ 2016-06-08 00:56 刘超★ljc 阅读(11657) 评论(3) 推荐(10) 编辑
摘要:前面我们介绍了MapReduce中的Join算法,我们提到了可以通过map端连接或reduce端连接实现join算法,在文章中,我们只给出了reduce端连接的例子,下面我们说说使用map端连接结合分布式缓存机制实现Join算法 1、介绍 我们使用频道类型数据集和机顶盒用户数据集,进行连接,统计出每 阅读全文
posted @ 2016-06-02 20:21 刘超★ljc 阅读(1285) 评论(0) 推荐(2) 编辑
摘要:前面我们学习了如何使用MapReduce计数器,那么我们通过下面这个项目巩固我们所学 1、介绍 本项目我们使用电视机顶盒数据,统计出无效用户数据记录,并解析出有效的用户数据以压缩格式输出 2、数据集 数据来源于“hadoop小文件合并”处理后的结果 3、分析 基于需求,我们通过以下几步完成: 1、首 阅读全文
posted @ 2016-05-29 10:31 刘超★ljc 阅读(1046) 评论(0) 推荐(2) 编辑
摘要:在关系型数据库中Join是非常常见的操作,各种优化手段已经到了极致。在海量数据的环境下,不可避免的也会碰到这种类型的需求,例如在数据分析时需要从不同的数据源中获取数据。不同于传统的单机模式,在分布式存储下采用MapReduce编程模型,也有相应的处理措施和优化方法。 我们先简要地描述待解决的问题。假 阅读全文
posted @ 2016-05-26 09:27 刘超★ljc 阅读(2854) 评论(3) 推荐(2) 编辑
摘要:1、MapReduce计数器是什么? 计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。 2、MapReduce计数器能做什么? MapReduce 计数器(Counter)为我们提供一个窗口,用于观察 MapReduc 阅读全文
posted @ 2016-05-23 22:12 刘超★ljc 阅读(9996) 评论(0) 推荐(3) 编辑
摘要:1、前言 我们使用hadoop2.6.0版本配置Hadoop集群,同时配置NameNode+HA、ResourceManager+HA,并使用zookeeper来管理Hadoop集群 2、规划 1、主机规划 hadoop1/ 192.168.56.131 hadoop2/ 192.168.56.13 阅读全文
posted @ 2016-05-20 16:37 刘超★ljc 阅读(5309) 评论(1) 推荐(1) 编辑
摘要:1、YARN 是什么? 从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性,内存消耗,线程模型,可靠性和性能上的缺陷。在过去的几年中,hadoop 开发团队做了一些 bug 的 阅读全文
posted @ 2016-05-15 09:16 刘超★ljc 阅读(9284) 评论(0) 推荐(1) 编辑
摘要:我们继续通过项目强化掌握Combiner和Partitioner优化Hadoop性能 1、项目介绍 本项目我们使用明星搜索指数数据,分别统计出搜索指数最高的男明星和女明星。 2、数据集 3、分析 基于项目的需求,我们通过以下几步完成: 1、编写Mapper类,按需求将数据集解析为key=gender 阅读全文
posted @ 2016-05-14 16:14 刘超★ljc 阅读(1434) 评论(0) 推荐(2) 编辑
摘要:上一篇文章我们了解了MapReduce优化方面的知识,现在我们通过简单的项目,学会如何优化MapReduce性能 1、项目介绍 我们使用简单的成绩数据集,统计出0~20、20~50、50~100这三个年龄段的男、女学生的最高分数 2、数据集 姓名 年龄 性别 成绩 Alice 23 female 4 阅读全文
posted @ 2016-05-12 23:00 刘超★ljc 阅读(3190) 评论(2) 推荐(5) 编辑
摘要:Combiner和Partitioner是用来优化MapReduce的,可以提高MapReduce的运行效率。下面我们来具体学习这两个组件 Combiner 我们以WordCount为例,首先通过下面的示意图直观的了解一下Combiner的位置和作用 从上图可以看出,Combiner介于 Mappe 阅读全文
posted @ 2016-05-09 09:30 刘超★ljc 阅读(1628) 评论(0) 推荐(2) 编辑
摘要:互联网时代的到来,使得名人的形象变得更加鲜活,也拉近了明星和粉丝之间的距离。歌星、影星、体育明星、作家等名人通过互联网能够轻易实现和粉丝的互动,赚钱也变得前所未有的简单。同时,互联网的飞速发展本身也造就了一批互联网明星,这些人借助新的手段,最大程度发挥了粉丝经济的能量和作用,在互联网时代赚得盆满钵满 阅读全文
posted @ 2016-05-07 15:17 刘超★ljc 阅读(2169) 评论(0) 推荐(3) 编辑
摘要:针对前面介绍的输入格式,MapReduce也有相应的输出格式。默认情况下只有一个 Reduce,输出只有一个文件,默认文件名为 part-r-00000,输出文件的个数与 Reduce 的个数一致。 如果有两个Reduce,输出结果就有两个文件,第一个为part-r-00000,第二个为part-r 阅读全文
posted @ 2016-05-07 08:59 刘超★ljc 阅读(3164) 评论(0) 推荐(1) 编辑
摘要:数据在HDFS和关系型数据库之间的迁移,主要有以下两种方式 1、按照数据库要求的文件格式生成文件,然后由数据库提供的导入工具进行导入 2、采用JDBC的方式进行导入 MapReduce默认提供了DBInputFormat和DBOutputFormat,分别用于数据库的读取和数据库的写入 1、需求 下 阅读全文
posted @ 2016-05-06 10:44 刘超★ljc 阅读(4597) 评论(0) 推荐(2) 编辑
摘要:MultipleOutputs 类可以将数据写到多个文件,这些文件的名称源于输出的键和值或者任意字符串。这允许每个 reducer(或者只有 map 作业的 mapper)创建多个文件。 采用name-m-nnnnn 形式的文件名用于 map 输出,name-r-nnnnn 形式的文件名用于 red 阅读全文
posted @ 2016-05-02 19:46 刘超★ljc 阅读(5423) 评论(1) 推荐(6) 编辑
摘要:1、需求 按学生的年龄段,将数据输出到不同的文件。这里我们分为三个年龄段:小于等于20岁、大于20岁小于等于50岁和大于50岁 2、实现 1、编写Partitioner,代码如下 2、编写mapper 3、编写reducer 4、一些运行代码 3、总结 Partitioner适用于事先知道分区数的情 阅读全文
posted @ 2016-05-02 11:16 刘超★ljc 阅读(877) 评论(0) 推荐(2) 编辑
摘要:前面我们所写mr程序的输入都是文本文件,但真正工作中我们难免会碰到需要处理其它格式的情况,下面以处理excel数据为例 1、项目需求 有刘超与家庭成员之间的通话记录一份,存储在Excel文件中,如下面的数据集所示。我们需要基于这份数据,统计每个月每个家庭成员给自己打电话的次数,并按月份输出到不同文件 阅读全文
posted @ 2016-04-28 19:40 刘超★ljc 阅读(2026) 评论(1) 推荐(2) 编辑
摘要:文件是 MapReduce 任务数据的初始存储地。正常情况下,输入文件一般是存储在 HDFS 里面。这些文件的格式可以是任意的:我们可以使用基于行的日志文件, 也可以使用二进制格式,多行输入记录或者其它一些格式。这些文件一般会很大,达到数十GB,甚至更大。那么 MapReduce 是如何读取这些数据 阅读全文
posted @ 2016-04-22 21:52 刘超★ljc 阅读(1569) 评论(0) 推荐(2) 编辑
摘要:随着 MapReduce 的流行,其开源实现 Hadoop 也变得越来越受推崇。在 Hadoop 系统中,有一个组件非常重要,那就是调度器。调度器是一个可插拔的模块,用户可以根据自己的实际应用要求设计调度器 1、调度器基本作用 Hadoop调度器的基本作用就是根据节点资源(slot)使用情况和作业的 阅读全文
posted @ 2016-04-21 20:07 刘超★ljc 阅读(6002) 评论(1) 推荐(2) 编辑
摘要:Hadoop中的MapReduce是一个使用简单的软件框架,基于它写出来的应用程序能够运行在由上千个机器组成的大型集群上,并且以一种可靠容错并行处理TB级别的数据集。 一个MapReduce作业(job)通常会把输入的数据集切分为若干独立的数据块,由Map任务并行处理它们。框架会对map函数的输出先 阅读全文
posted @ 2016-04-20 14:21 刘超★ljc 阅读(2022) 评论(0) 推荐(1) 编辑