0%

OutputFormat数据输出

OutputFormat概述

OutputFormatMapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。

MR中默认的使用的OutputFormat子类是TextOutputFormat

源码分析

打开IDEA,双击两下Shift键搜索OutputFormat查看源码,然后将光标防放在OutputFormat类名上按Ctrl + H查看层次结构。

阅读全文 »

MapReduce的构成

image-20230718113427534

从流的角度

Input ---> InputFormat --->Mapper--->Shuffle--->Reducer--->OutputFormat--->Output

从不同的阶段

Map阶段---->Reduce阶段

Map阶段 ---> Shuffle(Map后半段+Reduce前半段)--->Reduce阶段

从源码的角度

MapTaskmap ---> sort

1
2
mapPhase = getProgress().addPhase("map", 0.667f);
sortPhase = getProgress().addPhase("sort", 0.333f);

ReduceTask : copy ---> sort ---> reduce

1
2
3
copyPhase = getProgress().addPhase("copy");
sortPhase = getProgress().addPhase("sort");
reducePhase = getProgress().addPhase("reduce");
阅读全文 »

序列化概述

什么是序列化

序列化:就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。

反序列化:就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。

为什么要序列化

一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。

阅读全文 »

MapReduce定义

MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。

MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

阅读全文 »

HDFS读写流程

写数据流程

写数据流程如图所示:

image-20230714221240059

阅读全文 »

HDFS概述

HDFS产生的背景

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统HDFS只是分布式文件管理系统中的一种。

HDFS定义

HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

阅读全文 »

Hadoop的运行模式包括:本地模式伪分布式以及完全分布式

  • 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
  • 伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
  • 完全分布式模式:多台服务器组成分布式环境。生产环境使用。
阅读全文 »

参考此文章按照以下内容去克隆3个节点。

  • 节点102,IP地址:192.168.128.102,hostname:hadoop102
  • 节点103,IP地址:192.168.128.103,hostname:hadoop103
  • 节点104,IP地址:192.168.128.104,hostname:hadoop104
阅读全文 »

什么是大数据

大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

大数据主要解决,海量数据的采集、存储和分析计算问题。

大数据4V特征:

  1. Volume(量大):存储量大,计算量大
  2. Variety(多样):来源多,格式多
  3. Velocity(快速):数据增长速度快,处理速度要求快
  4. Value(价值):价值密度低,和数据总量的大小成反比
阅读全文 »