Hadoop数据类型
为了让键/值对可以在集群上移动,MapReduce框架提供了一种序列化键/值对的方法。因此,只有那些支持这种序列化的类能够在框架中充当键/值。
实现Writable接口的类可以是值;
实现WritableComparable<T>接口的类可以是键/值。
键/值对经常使用的数据类型列表。这些类均用于实现WritableComparable接口。
BooleanWritable
|
标准布尔变量的封装
|
ByteWritable
|
单字节数的封装
|
DoubleWritable
|
双字节数的封装
|
FloatWritable
|
浮点数的封装
|
IntWritable
|
整数的封装
|
LongWritable
|
Long的封装
|
TextWritable
|
使用UTF8格式的文本
|
NullWritable
|
无键值的占位符
|
Mapper
一个类要作为mapper,需继承MapReduceBase积累并实现Mapper接口。mapper接口负责数据处理阶段,它采用的形式为Mapper<k1,v1,k2,v2>Java泛型,这里的键/值分别实现了WritableComparable和Writable接口,mapper只有一个方法——map,用于处理一个单独的键/值对。
Reducer
reducer的实现和mapper一样必须首先在Reduce基类上扩展。还必须实现reducer方法。
Partition
重定向Mapper输出。将mapper的结果输出给不同的reducer。默认的做法是对键进行散列来确定reducer,hadoop通过HashPartitioner类强制执行这个策略。但有时会出错,需定制。一个定制的partitioner只需实现configure()和getPartition()两个函数。前者将hadoop对作业的配置应用在Partitioner上,而后者返回一个介于0和reduce任务数之间的整数,指向键/值对将要发送到的reducer。
Shuffing
在map和reduce阶段之间,一个MapReducer应用必然从MapReducer任务得到输出结果,并把这些结果发布给reducer任务。该过程通常称为洗牌,因为在单节点上的mapper输出可能被送往分布在集群多个节点上的reducer。
读和写
MapReduce处理的基本原则之一是将输入数据分割成块。这些块可以在多台计算机上并行处理。这些块被称为分片(Input Spilt)。每个分片应该足够小以实现更细粒度的并行,但也不能太小,否则启动与停止分片处理就占很大的开销。
InputFormat
hadoop分割与读取输入文件的方式被定义在InputFormat接口的一个实现中。TextFormat是其默认实现。
OutputFormat
当MapReduce输出数据到文件时,使用的是OutputFormat类。
普通的MapReduce数据流。输入数据被分配到不同节点之后,节点间通信的唯一时间是在“洗牌”阶段,这个通信约束对可扩展性有极大帮助。
分享到:
相关推荐
本文将根据提供的Hadoop学习笔记,深入解析Hadoop的关键概念和实战技巧,帮助读者构建扎实的Hadoop知识体系。 一、Hadoop简介 Hadoop的核心思想源于Google的两篇论文——“GFS”(Google File System)和...
### Talend学习笔记2——mysql文件导入到HDFS #### 关键知识点概览 - **Talend Data Integration** - **MySQL 数据库** - **Hadoop 和 HDFS(Hadoop Distributed File System)** #### 详细知识点说明 ##### 1. ...
Spark 基础知识点总结 Spark 是一个快速的集群运算平台,以及一系列处理大型数据集的工具包。它最显著的特点就是处理大型数据的能力。 一、Spark 的安装和配置 Spark 的安装和配置其实可以是异常简单的。只需要...
《走近大数据》读书笔记模板是对大数据技术与应用的详细介绍,涵盖大数据的基本概念、发展历程、技术架构、应用场景、安全性、运维管理等方面的知识点。本笔记模板共分八章,分别介绍了大数据的基本概念、技术架构、...
Hadoop学习资料(一)包含了从第一周到第十六周的课程笔记,是作者在深入学习Hadoop过程中积累的知识结晶。这份资料对于那些想要踏入大数据处理领域的初学者或者是正在提升Hadoop技能的人来说,无疑是一份宝贵的资源...
内容概要:让初学者能高效、快捷掌握Hadoop必备知识,大大缩短Hadoop离线阶段学习时间。 适合人群:具备一定编程基础人员 能学到什么: HDFS+MapReduce+Hive 基于数据仓库实现离线数据分析的可视化报表开发。 Hadoop...
1. **基础知识准备**:学习Hive之前,建议先了解Hadoop的基本概念和技术原理,因为Hive是建立在Hadoop之上的。 2. **官方文档阅读**:Apache官网提供了丰富的Hive文档资源,包括最新的功能介绍、使用指南等,是学习...
本笔记基于林子雨老师在MOOC上的《大数据技术原理》课程,旨在为IT从业者和大学生提供一个全面了解大数据的基础框架。 首先,我们要认识到大数据的发展背景。随着互联网的普及,以及物联网、社交媒体、移动设备等...
【传智博客大数据三阶段笔记】是一份详细记录了大数据技术学习进程的资源集合,主要集中在第三阶段——实时处理。这份笔记涵盖了大数据领域的核心概念、工具和技术,旨在帮助读者深入理解并掌握大数据实时处理的各个...
【描述】描述中的信息与标题相同,再次强调了这是一个关于大数据四班在特定日期——11月9日的课堂笔记压缩包。通常,这样的压缩文件会包含文字笔记、课件、代码示例或其他教学辅助材料,便于学习者回顾课程重点和...
《大数据技术精要——以BigData-Notes-master为线索》 大数据,作为21世纪信息技术领域的重要里程碑,正引领着一场深刻的科技革命。在我们所探讨的“BigData-Notes-master”项目中,包含了对大数据处理、分析及应用...
这本书详细介绍了大数据的基础知识,包括大数据的概念、存储、处理、分析和实际应用,非常适合本科或专科层次的大数据技术入门学习。 大数据技术的发展伴随着计算模式和软件技术的演变,从早期的C/S模式到互联网的B...
以上知识点构成了大数据处理的基础框架,通过学习和实践,可以有效提升对大数据架构的理解和应用能力。实时大数据标签提示我们,这组资料可能还涉及了实时数据处理技术,如Spark Streaming或Flink,这些技术能够对...
VLSM允许在有类的IP地址基础上进行更细粒度的子网划分。 **详细解析:** - **定义**:VLSM(Variable Length Subnet Mask)即变长子网掩码,允许在一个IP地址范围内使用不同长度的子网掩码进行子网划分,从而提高IP...
2. Database:数据库是数据存储和管理的核心工具,无论是关系型数据库(如MySQL、PostgreSQL)还是非关系型数据库(NoSQL,如MongoDB、Cassandra),都是数据工程师需要熟悉的基础设施。 3. NoSQL:非关系型数据库...
综上所述,"Scalable-Data"项目可能涵盖的内容广泛,从分布式系统的基础知识到实际的数据处理技巧,再到利用Jupyter Notebook进行交互式分析。对于想要深入了解和实践可伸缩数据处理的人来说,这些文档将是一份宝贵...
### Storm 从零到精通知识点解析 #### 一、Storm简介 **1.1 什么是Storm** Apache Storm 是一个开源的分布式实时计算系统,能够处理大量...以上总结了从零开始学习 Storm 的基础知识和技术要点,希望对你有所帮助。