
Hadoop学习笔记
easy_sir
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Hadoop学习】_28Haoop企业优化
文章目录一、MapReduce跑得慢的原因二、MapReduce优化方法(一)数据输入(二)Map阶段(三)Reduce阶段(四)I/O阶段(五)数据倾斜问题**(六)常用的调优参数**三、HDFS小文件优化方法 一、MapReduce跑得慢的原因 MapReduce程序效率的瓶颈在于两点: 计算机性能 CPU、内存、磁盘健康、网络。 I/O操作优化 (1)数据倾斜 (2)Map和Redu...原创 2020-02-14 16:10:52 · 149 阅读 · 0 评论 -
【Hadoop学习之Yarn】_27Yarn资源调度器
文章目录一、Yarn基本架构二、Yarn工作机制三、job提交全过程四、资源调度器五、任务的推测执行 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。 一、Yarn基本架构 Yarn主要由ResourceManager、NodeManager、ApplicationMaster、Con...原创 2020-02-14 15:31:23 · 186 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_25MR之数据清洗案例(ETL)
数据清洗(ETL):提取-转换-装载(Extract-Transform-Load) 在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。 一、数据清洗案例实操——简单案例 需求 去除网站日志中字段长度小于等于11的日志信息。 输入数据 58.177.135.108 - - ...原创 2020-02-12 12:24:59 · 907 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_24MR之计数器应用
Hadoop为每个作业维护若干内置计数器,以描述多项指标。例如,某些计数器记录已处理的字节数和记录数,使用户可监控已处理的输入数据量和已产生的输出数据量。 一、计数器API 采用枚举的方式统计计数 enum MyCounter{MALFORORMED,NORMAL} //对枚举定义的自定义计数器加1 context.getCounter(MyCounter.MALFORORMED).inc...原创 2020-02-12 12:23:34 · 168 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_23MR之join的应用
文章目录一、Reduce join的应用(一)join的主要工作(二)Reduce join案例实操(三)总结二、Map join的应用(一)Map join详解(二)Map join案例实操 一、Reduce join的应用 (一)join的主要工作 Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为va...原创 2020-02-12 11:18:19 · 345 阅读 · 1 评论 -
【Hadoop学习之MapReduce】_22MR之OutputFormat数据输出
一、OutputFormat接口实现类 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。 文本输出TextOutputFormat 默认的输出格式是TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为TextOutputFormat调用toString()方法把它们转换为字符串。...原创 2020-02-11 14:12:53 · 144 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_21MR之MapTask和ReduceTask工作机制
MapTask和ReduceTask工作机制合起来即为MapReduce工作机制 一、MapTask工作机制 Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value; Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value; Collect收集阶...原创 2020-02-11 11:41:39 · 234 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_20MR之分区和排序
一、Shuffle机制 Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle(多称为洗牌) 二、Partition分区 (一)Partition分区详解 默认Partition分区为HashPartitioner public class HashPartitioner<K, V> extends Partitioner<K, V> { pub...原创 2020-02-10 17:48:24 · 305 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_19MR工作流程
流程详解: 上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下: 1)MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中 2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件 3)多个溢出文件会被合并成大的溢出文件 4)在溢出过程及合并的过程中,都要调用Partitioner进行分区和...原创 2020-02-09 16:14:41 · 246 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_18MR之InputFormat数据输入
文章目录一、切片与MapTask并行度决定机制二、Job提交流程源码三、FileInputFormat切片机制(一)FileInputFormat切片机制(二)FileInputFormat切片源码解析(input.getSplits(job))(三)案例分析(四)FileInputFormat切片大小的参数配置四、CombineTextInputFormat切片机制五、CombineTextIn...原创 2020-02-09 15:10:18 · 2049 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_17Hadoop序列化
文章目录一、序列化概述(一)什么是序列化(二)为什么要序列化(三)为什么不用Java的序列化(四)Hadoop序列化特点二、自定义bean对象实现序列化接口(Writable)三、序列化案例实操(一)序列化案例分析(二)编写程序(三)运行程序 一、序列化概述 (一)什么是序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 反序列...原创 2020-02-07 16:13:16 · 489 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_16MR之WordCount案例实操
文章目录一、需求分析二、环境准备三、编写程序四、本地测试五、集群测试 一、需求分析 需求 在给定的文本文件中统计输出每一个单词出现的总次数 按照MapReduce编程规范,编写Mapper (1)将MapTask传给我们的文本内容先转换成String (2)根据空格将这一行切分成单词 (3)将单词输出为<k,v>格式 按照MapReduce编程规范,编写Reducer (1...原创 2020-02-07 12:41:30 · 546 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_15MR常用数据序列化类型和编程规范
一、MapReduce常用数据序列化类型 Java类型 Hadoop Writable类型 boolean BooleanWritable byte ByteWritable int IntWritable float FloatWritable long LongWritable double DoubleWritable String Text ma...原创 2020-02-06 16:16:37 · 386 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_14MR的核心思想
一、MapReduce核心思想 分布式的运算程序往往需要分成至少2个阶段 第一个阶段的MapTask并发实例,完全并行运行,互不相干 第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出 MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行 ...原创 2020-02-06 15:00:56 · 250 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_13MR的优缺点
一、MapReduce的核心功能 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce的核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 二、MapReduce的优点 易于编程 它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大...原创 2020-02-06 12:57:00 · 599 阅读 · 0 评论 -
【Hadoop学习之HDFS】_12HDFS之DataNode
文章目录一、DataNode工作机制二、数据完整性三、掉线时限参数设置四、服役新数据节点五、退役旧数据节点(一)设置退役白名单(二)设置退役黑名单六、DataNode多目录配置(同NameNode配置) 一、DataNode工作机制 一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳 DataNode启动...原创 2020-02-04 15:44:01 · 190 阅读 · 0 评论 -
【Hadoop学习之HDFS】_11HDFS之NN和2NN
文章目录一、NN与2NN的工作机制二、FsImage和Edits解析三、CheckPoint时间设置四、NameNode故障处理五、集群安全模式六、NameNode多目录配置 一、NN与2NN的工作机制 Fsimage:NameNode内存中元数据序列化后形成的文件。 Edits:记录客户端更新元数据信息的每一步操作(可通过Edits运算出元数据)。 NameNode启动时,先滚动Edits并生...原创 2020-02-04 12:20:23 · 443 阅读 · 0 评论 -
【Hadoop学习之HDFS】_10HDFS的数据流
一、HDFS写数据流程 1. 文件写入流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在; NameNode返回是否可以上传; 客户端请求第一个 Block上传到哪几个DataNode服务器上; NameNode返回3个DataNode节点,分别为dn1、dn2、dn3;; 客户端通过FSDat...原创 2020-02-03 12:03:47 · 175 阅读 · 0 评论 -
【Hadoop学习之HDFS】_09HDFS的I/O流操作
文章目录一、HDFS文件上传二、HDFS文件下载三、HDFS定位文件读取 一、HDFS文件上传 @Test public void putFileToHDFS() throws IOException, InterruptedException, URISyntaxException { // 1 获取文件系统 Configuration conf = ...原创 2020-02-02 16:17:20 · 213 阅读 · 0 评论 -
【Hadoop学习之HDFS】_08HDFS的API操作
文章目录一、HDFS文件上传1. 编写源代码,在`HdfsClient`类中添加方法2. 将`hdfs-site.xml`拷贝到项目的根目录下,验证参数的优先级3. 参数优先级二、HDFS文件下载三、HDFS文件夹删除四、HDFS文件名更改五、HDFS文件详情查看六、HDFS文件和文件夹判断 一、HDFS文件上传 1. 编写源代码,在HdfsClient类中添加方法 @Test p...原创 2020-02-02 15:10:08 · 126 阅读 · 0 评论 -
【Hadoop学习之HDFS】_07HDFS客户端环境准备
文章目录一、下载Hadoop jar包至非中文路径二、配置Hadoop环境变量三、创建一个Maven工程 一、下载Hadoop jar包至非中文路径 下载链接:https://hadoop.apache.org/releases.html 解压至非中文路径 二、配置Hadoop环境变量 配置HADOOP_HOME环境变量 配置Path环境变量 三、创建一个Maven工程 ...原创 2020-02-02 11:35:55 · 419 阅读 · 2 评论 -
【Hadoop学习之HDFS】_06HDFS的shell操作
一、基本语法 bin/hadoop fs 具体命令 #或者 bin/hdfs dfs 具体命令 注意:其中dfs是fs的实现类 二、命令大全 [hadoop@SZMaster01 hadoop-2.8.3]$ bin/hadoop fs Usage: hadoop fs [generic options] [-appendToFile <localsrc> ... &...原创 2020-02-01 15:52:26 · 232 阅读 · 1 评论 -
【Hadoop学习之HDFS】_05HDFS文件块大小
一、HDFS文件块大小 HDFS中的文件在物理上是分块(Block)存储的,块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x版本中为128M,老版本中是64M 寻址时间为传输时间的1%时,为最佳状态 二、为什么块大小不能设置太小,也不能设置太大? 若HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置; 若HDFS的块设置太大,从磁盘传输数...原创 2020-02-01 12:31:09 · 270 阅读 · 0 评论 -
【Hadoop学习之HDFS】_04HDFS的优缺点
一、HDFS的优点 高容错性 数据自动保存多个副本,它通过增加副本的形式,提高容错性; 某一个副本丢失以后,它可以自动回复,始终保持副本的数量。 适合处理大数据 数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据; 文件规模:能够处理百万规模以上的文件数量,数量相当之大。 可构建在廉价机器上,通过多副本机制,提高可靠性 二、HDFS的缺点 不适合低延时数据访问,比如毫...原创 2020-02-01 11:35:54 · 137 阅读 · 0 评论 -
【Hadoop学习】Hadoop集群分发脚本
一、scp(secure copy)安全拷贝 scp定义: scp可以实现服务器与服务器之间的数据拷贝。 基本语法: scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname 命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称 二、rsync远程同步工具 rsync主要用于备份和镜像。具有速度快、...原创 2020-01-31 14:25:27 · 193 阅读 · 0 评论 -
【Hadoop学习】_03Hadoop运行模式
一、本地运行模式 参考:http://dblab.xmu.edu.cn/blog/install-hadoop/ 二、伪分布运行模式 参考:http://dblab.xmu.edu.cn/blog/install-hadoop/ 三、完全分布式运行模式 准备3台客户机(关闭防火墙、设置静态IP、设置主机名称) 安装JDK并配置环境变量 安装Hadoop并配置环境变量 配置集...原创 2020-01-31 14:22:30 · 112 阅读 · 0 评论 -
【Hadoop学习】_02Hadoop运行环境搭建
一、虚拟机环境准备 新建虚拟机 修改虚拟机的静态IP Vmware虚拟机下三种网络模式配置:https://blog.youkuaiyun.com/collection4u/article/details/14127671 配置静态IP:https://www.codercto.com/a/52805.html 修改主机名:https://blog.youkuaiyun.com/musicenchante...原创 2020-01-31 14:04:36 · 115 阅读 · 0 评论 -
【Hadoop学习】_01Hadoop的组成
一、Hadoop主要组件 HDFS是Hadoop分布式文件系统,主要用于数据存储 YARN是一种资源管理器,主要用于资源调度 MapReduce主要用于计算 Common是辅助工具 二、HDFS架构概述 NameNode(nn):存储文件的元数据,如文件名、目录结构、属性,以及每个文件的块列表和块所在的DataNode等 DataNode(dn):存储文件块数据以及其校验和 Secondry...原创 2020-01-31 11:31:12 · 237 阅读 · 0 评论 -
【Hadoop学习】_00Hadoop的优势(4高)
一、高可靠性 Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 二、高可扩展性 在集群间分配任务数据,可方便的扩展数以千计的节点。 三、高效性 在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。 四、高容错性 能够自动将失败的任务重新分配。 ...原创 2020-01-31 10:56:21 · 406 阅读 · 0 评论