![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 88 阅读 · 0 评论 -
【Hadoop学习之Yarn】_27Yarn资源调度器
文章目录一、Yarn基本架构二、Yarn工作机制三、job提交全过程四、资源调度器五、任务的推测执行Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。一、Yarn基本架构Yarn主要由ResourceManager、NodeManager、ApplicationMaster、Con...原创 2020-02-14 15:31:23 · 131 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_25MR之数据清洗案例(ETL)
数据清洗(ETL):提取-转换-装载(Extract-Transform-Load)在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。一、数据清洗案例实操——简单案例需求去除网站日志中字段长度小于等于11的日志信息。输入数据58.177.135.108 - - ...原创 2020-02-12 12:24:59 · 819 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_24MR之计数器应用
Hadoop为每个作业维护若干内置计数器,以描述多项指标。例如,某些计数器记录已处理的字节数和记录数,使用户可监控已处理的输入数据量和已产生的输出数据量。一、计数器API采用枚举的方式统计计数enum MyCounter{MALFORORMED,NORMAL}//对枚举定义的自定义计数器加1context.getCounter(MyCounter.MALFORORMED).inc...原创 2020-02-12 12:23:34 · 110 阅读 · 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 · 134 阅读 · 1 评论 -
【Hadoop学习之MapReduce】_22MR之OutputFormat数据输出
一、OutputFormat接口实现类OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。文本输出TextOutputFormat默认的输出格式是TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为TextOutputFormat调用toString()方法把它们转换为字符串。...原创 2020-02-11 14:12:53 · 106 阅读 · 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 · 177 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_20MR之分区和排序
一、Shuffle机制Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle(多称为洗牌)二、Partition分区(一)Partition分区详解默认Partition分区为HashPartitionerpublic class HashPartitioner<K, V> extends Partitioner<K, V> { pub...原创 2020-02-10 17:48:24 · 254 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_19MR工作流程
流程详解:上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下:1)MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件3)多个溢出文件会被合并成大的溢出文件4)在溢出过程及合并的过程中,都要调用Partitioner进行分区和...原创 2020-02-09 16:14:41 · 180 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_18MR之InputFormat数据输入
文章目录一、切片与MapTask并行度决定机制二、Job提交流程源码三、FileInputFormat切片机制(一)FileInputFormat切片机制(二)FileInputFormat切片源码解析(input.getSplits(job))(三)案例分析(四)FileInputFormat切片大小的参数配置四、CombineTextInputFormat切片机制五、CombineTextIn...原创 2020-02-09 15:10:18 · 1621 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_17Hadoop序列化
文章目录一、序列化概述(一)什么是序列化(二)为什么要序列化(三)为什么不用Java的序列化(四)Hadoop序列化特点二、自定义bean对象实现序列化接口(Writable)三、序列化案例实操(一)序列化案例分析(二)编写程序(三)运行程序一、序列化概述(一)什么是序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 反序列...原创 2020-02-07 16:13:16 · 251 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_16MR之WordCount案例实操
文章目录一、需求分析二、环境准备三、编写程序四、本地测试五、集群测试一、需求分析需求在给定的文本文件中统计输出每一个单词出现的总次数按照MapReduce编程规范,编写Mapper(1)将MapTask传给我们的文本内容先转换成String(2)根据空格将这一行切分成单词(3)将单词输出为<k,v>格式按照MapReduce编程规范,编写Reducer(1...原创 2020-02-07 12:41:30 · 355 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_15MR常用数据序列化类型和编程规范
一、MapReduce常用数据序列化类型Java类型Hadoop Writable类型booleanBooleanWritablebyteByteWritableintIntWritablefloatFloatWritablelongLongWritabledoubleDoubleWritableStringTextma...原创 2020-02-06 16:16:37 · 311 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_14MR的核心思想
一、MapReduce核心思想分布式的运算程序往往需要分成至少2个阶段第一个阶段的MapTask并发实例,完全并行运行,互不相干第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行...原创 2020-02-06 15:00:56 · 203 阅读 · 0 评论 -
【Hadoop学习之MapReduce】_13MR的优缺点
一、MapReduce的核心功能MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce的核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。二、MapReduce的优点易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大...原创 2020-02-06 12:57:00 · 527 阅读 · 0 评论 -
【Hadoop学习之HDFS】_12HDFS之DataNode
文章目录一、DataNode工作机制二、数据完整性三、掉线时限参数设置四、服役新数据节点五、退役旧数据节点(一)设置退役白名单(二)设置退役黑名单六、DataNode多目录配置(同NameNode配置)一、DataNode工作机制一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳DataNode启动...原创 2020-02-04 15:44:01 · 124 阅读 · 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 · 390 阅读 · 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 · 126 阅读 · 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 · 125 阅读 · 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 · 83 阅读 · 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 · 272 阅读 · 2 评论 -
【Hadoop学习之HDFS】_06HDFS的shell操作
一、基本语法bin/hadoop fs 具体命令#或者bin/hdfs dfs 具体命令注意:其中dfs是fs的实现类二、命令大全[hadoop@SZMaster01 hadoop-2.8.3]$ bin/hadoop fsUsage: hadoop fs [generic options] [-appendToFile <localsrc> ... &...原创 2020-02-01 15:52:26 · 148 阅读 · 1 评论 -
【Hadoop学习之HDFS】_05HDFS文件块大小
一、HDFS文件块大小HDFS中的文件在物理上是分块(Block)存储的,块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在Hadoop2.x版本中为128M,老版本中是64M寻址时间为传输时间的1%时,为最佳状态二、为什么块大小不能设置太小,也不能设置太大?若HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;若HDFS的块设置太大,从磁盘传输数...原创 2020-02-01 12:31:09 · 200 阅读 · 0 评论 -
【Hadoop学习之HDFS】_04HDFS的优缺点
一、HDFS的优点高容错性数据自动保存多个副本,它通过增加副本的形式,提高容错性;某一个副本丢失以后,它可以自动回复,始终保持副本的数量。适合处理大数据数据规模:能够处理数据规模达到GB、TB、甚至PB级别的数据;文件规模:能够处理百万规模以上的文件数量,数量相当之大。可构建在廉价机器上,通过多副本机制,提高可靠性二、HDFS的缺点不适合低延时数据访问,比如毫...原创 2020-02-01 11:35:54 · 94 阅读 · 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 · 123 阅读 · 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 · 77 阅读 · 0 评论 -
【Hadoop学习】_02Hadoop运行环境搭建
一、虚拟机环境准备新建虚拟机修改虚拟机的静态IPVmware虚拟机下三种网络模式配置:https://blog.csdn.net/collection4u/article/details/14127671配置静态IP:https://www.codercto.com/a/52805.html修改主机名:https://blog.csdn.net/musicenchante...原创 2020-01-31 14:04:36 · 61 阅读 · 0 评论 -
【Hadoop学习】_01Hadoop的组成
一、Hadoop主要组件HDFS是Hadoop分布式文件系统,主要用于数据存储YARN是一种资源管理器,主要用于资源调度MapReduce主要用于计算Common是辅助工具二、HDFS架构概述NameNode(nn):存储文件的元数据,如文件名、目录结构、属性,以及每个文件的块列表和块所在的DataNode等DataNode(dn):存储文件块数据以及其校验和Secondry...原创 2020-01-31 11:31:12 · 177 阅读 · 0 评论 -
【Hadoop学习】_00Hadoop的优势(4高)
一、高可靠性 Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。二、高可扩展性 在集群间分配任务数据,可方便的扩展数以千计的节点。三、高效性 在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。四、高容错性 能够自动将失败的任务重新分配。...原创 2020-01-31 10:56:21 · 341 阅读 · 0 评论