Reduce join 原理 需求 缺点 解决方案: map端实现数据合并 案例 Map join 使用场景 解决方案 具体办法 案例 ...
分类:
其他好文 时间:
2019-10-29 23:53:35
阅读次数:
107
hive安装部署 hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为Mapreduce任务进行运行 在data目录下创建hive1目录用于存放相关文件 下载hive和mysql connector 解压hive到 ...
分类:
其他好文 时间:
2019-10-29 21:38:08
阅读次数:
99
一、数据压缩在hadoop中的意义1、基本概述?压缩技术可以减少底层hdfs的读写字节数。并且能够降低在数据传输过程中占用的网络带宽资源,以及降低占用的磁盘空间。而在MapReduce中,shuffle以及merge过程都面临着巨大的IO压力。但是要注意增加了压缩,另外一方面会增加cpu的负载。所以在要权衡好是否采用压缩,以及采用的压缩算法的特性。2、压缩应用基本原则运算密集型的job,少用压缩。
分类:
其他好文 时间:
2019-10-29 13:44:07
阅读次数:
84
[TOC]一、MapReduce跑得慢的原因1)计算机性能?CPU、内存、磁盘健康、网络。文件系统可以设置文件访问时,不更新atime2)I/O操作优化(1)数据倾斜(2)map和reduce数设置不合理(3)map运行时间太长,导致reduce等待过久(4)小文件过多(5)大量的不可分块的超大文件(6)spill次数过多(7)merge次数过多等。二、优化方案?MapReduce优化方法主要从几
分类:
其他好文 时间:
2019-10-26 21:01:31
阅读次数:
169
当reducetask执行完成后,就会将结果的KV写入到指定路径下。下面分析这个output过程。1、首先看ReduceTask.run()这个执行入口//--------------------------ReduceTask.javapublicvoidrun(JobConfjob,TaskUmbilicalProtocolumbilical)throwsIOException,Interru
分类:
其他好文 时间:
2019-10-25 10:25:21
阅读次数:
96
在“MapReduce--input之输入原理”中说到实现定义输入的方法,其实就是继承InputFormat以及RecordReader实现其中的方法。下面例子讲解操作。1、需求将多个文件合并成一个大文件(有点类似于combineInputFormat),并输出。大文件中包括小文件所在的路径,以及小文件的内容。2、源码inputFormatpublicclassSFileInputFormatex
分类:
其他好文 时间:
2019-10-25 10:12:07
阅读次数:
70
我们要自定义输出时,首先继承两个抽象类,一个是OutputFormat,一个是RecordWriter。前者是主要是创建RecordWriter,后者就是主要实现write方法来将kv写入文件。1、需求将reduce输出的KV中,如果key中包含特定字符串,则将其输出到一个文件中,剩下的KV则输出到另外的文件中。2、源码源数据http://cn.bing.comhttp://www.baidu.c
分类:
其他好文 时间:
2019-10-25 10:00:11
阅读次数:
80
一、基本原理?reduce执行完毕之后,每个reduce都会将KV输出到一个文件中。那么KV输出到文件中时是以什么格式输出的呢?这就涉及到两个抽象类:OutputFormat和RecordWriter。1、OutputFormatpublicabstractclassOutputFormat<K,V>{publicOutputFormat(){}publicabstractRecord
分类:
其他好文 时间:
2019-10-25 09:23:50
阅读次数:
108
一、mapjoin1、适用场景:一张表很大,一张表很小2、解决方案:在map端缓存多张表,提前处理业务逻辑,这样增加map端业务,减少reduce端的数据压力,尽可能减少数据倾斜。3、具体方法:采用分布式缓存(1)在mapper的setup阶段,将文件读取到缓存集合中(2)在driver中加载缓存,job.addCacheFile(newURI("file:/e:/mapjoincach
分类:
其他好文 时间:
2019-10-25 09:18:03
阅读次数:
61
一、基本原理?在map执行之前,需要将数据进行切片,每个切片对应一个map任务。而每个map任务并不是直接处理这些切片数据的,它是处理KV的。所以问题有两个:数据是如何切片的、切片是如何转为KV给map处理的。?这就涉及到两个抽象类,InputFormat以及RecordReader。具体为什么是这两个抽象类,请看之前input的源码分析1、InputFormatpublicabstractcla
分类:
其他好文 时间:
2019-10-25 09:16:26
阅读次数:
95