java程序员的大数据之路(11):MapReduce的连接
Map端连接
在两个大规模输入数据集之间的map端连接会在数据到达map函数之前就执行连接操作。各个输入数据集必须被划分成相同数量的分区,并且均按相同的键排序。同一键的所有记录均会放在同一分区之中。
Reduce端连接
reduce端连接比map端连接更为常用,因为reduce端连接并不要求输入数据集符合特定结构。但是由于两个数据集均需经过MapReduce的shuffle过程,所以reduce端连接的效率要低一些。
边数据分布
“边数据”是作业所需的额外的只读数据,以辅助处理主数据集。为了使所有的map或reduce任务方便而高效的使用边数据,除了分布机制,还可以以静态字段的方式将边数据缓存在内存中。
分布式缓存
分布式缓拷贝机制能够在任务运行过程中及时的将文件和存档复制到任务节点以供使用。
工作机制
当用户启动一个作业,Hadoop将由-files和-archieves选项所指定的文件复制到jobtracker的文件系统。在运行任务前,tasktracker将文件从jobtracker的文件系统复制到本地磁盘,使任务能够访问文件。
tasktracker为缓存中的文件各维护一个计数器,用来统计文件被使用情况。任务即将运行时,被使用的文件的计数器加1,任务结束时,所有计数器减1.当计数器为0时,该文件可以从缓存中移出。缓存大小默认为10GB,可以通过local.cache.size属性设置,单位是字节。文件存放在tasktracker的${mapred.local.dir}/tackTracker/archive目录下。
java程序员的大数据之路(11):MapReduce的连接相关推荐
- java程序员的大数据之路(13):Pig入门
Pig简介 Pig为大型数据集的处理提供了更高层次的抽象. Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于运行Pig Latin程序的执行环境.当前有两个环境:单JVM中的本 ...
- java程序员的大数据之路(3):用maven构建Hadoop项目
背景 由于Hadoop项目多数是比较大的项目,因此我们选择使用构建工具来构建Hadoop项目,这里我们使用的是maven.当然也可以使用Gradle等比较流行的构建工具 构建过程 这里总结一下我使用I ...
- java程序员的大数据之路(1):Hadoop安装
Hadoop伪分布式安装 从今天开始我会在这里记录在大数据学习方面的方法和遇到的一些问题. 首先从最著名的开源平台Hadoop开始学习.参考安装教程,这个教程比较全面,按照步骤一步步安装即可. 安装时 ...
- java程序员的大数据之路(12):Hadoop的守护进程
关键属性 Hadoop守护进程的关键属性大多标记为final,使作业的配置无法覆盖. 典型的core-site.xml配置文件 <?xml version="1.0"> ...
- java程序员的大数据之路(9):MapReduce的类型
概述 Hadoop的MapReduce中,map和reduce函数遵循如下常规格式: map:(K1,V1) -> list(K2,V2) reduce:(K2,list(V2)) -> ...
- java程序员的大数据之路(2):创建第一个Hadoop程序
环境 Ubuntu 16.04 + Hadoop 2.7.4 + Intellij idea 2017.2 + jdk 1.8 创建过程 新建工程 新建一个工程 输入工程名 可以随便给工程起一个名字, ...
- java程序员的大数据之路(15):Pig Latin用户自定义函数
过滤函数 所有的过滤函数都要继承FilterFunc类,并且实现抽象方法exec(),该方法的返回类型为Boolean. 示例代码如下: package com.udf.filter;import o ...
- java程序员的大数据之路(14):Pig Latin
结构 一个Pig Latin程序由一组语句构成,一个语句可以理解为一个操作,或一个命令.语句必须以分号结束. Pig Latin有两种注释方法,双减号表示单行注释.多行注释可以使用/* 和 */表示. ...
- java程序员的大数据之路(8):MapReduce的工作机制
概述 Hadoop运行作业时的整个过程如果所示. 包含如下4个独立的实体. 客户端:提交MapReduce作业. jobtracker:协调作业的运行.它的主类是JobTracker. tasktra ...
- java程序员的大数据之路(7):基于文件的数据结构
SequenceFile 介绍 由于日志文件中每一条日志记录是一行文本.如果想记录二进制类型,纯文本是不合适的.这种情况下,Hadoop的SequenceFile类非常合适.SequenceFile可 ...
最新文章
- seaborn clustermap详解及绘制
- 深入理解JVM虚拟机(十一):线程安全与锁优化
- Matplotlib实例教程 | markers表
- java获取实体类的属性和值
- 大数据学习——免密登录配置
- 新松机器人刻蚀机_中国最大机器人产业基地新松智慧园在沈阳启用
- python没有main函数的概念吗_为什么Python没有main函数?
- linux之解决libipopt.so.1: Cannot open shared object file
- Docker教程:dokcer的配置和命令
- scope=“prototype”和scope=“session”
- 设计(二) | PS功能快捷键(全)
- GPU硬件加速原理 /转
- 12306脱库疑云:410万用户数据仅售20美元!
- UI 手势 点击
- automagica 调用windows画图以及登录qq
- 虚幻4渲染编程(环境模拟篇)【第五卷:可交互物理植被模拟 - 上】
- 【mmdetection小目标检测教程】三、使用sahi库切分高分辨率图片,一键生成coco格式数据集
- css样式换行缩进技巧
- 如何创建mysql分区表_mysql分区表创建思路
- 数据中心网络学习资料