Hadoop
程序员学习圈
值得去的地方,没有捷径;难走的路,才更值得开始!
展开
-
集群数据存储
1.HDFS相关 HDFS服务器存储文件的路径: cd /opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-389705695-10.211.55.102-1525228873329/current/finalized/subdir0/subdir0/ namenode被格式化之后所在路径:cd /opt/module/h...原创 2020-04-29 16:58:13 · 584 阅读 · 0 评论 -
Hadoop 集群性能测试
1.测试HDFS写性能 测试内容:向HDFS集群写10个128M的文件[luomk@hadoop102 hadoop-2.7.2]$ hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -write...原创 2020-04-29 16:56:26 · 632 阅读 · 0 评论 -
hadoop fs、hadoop dfs与hdfs dfs命令的区别
1.stackoverflow的解释 Hadoop fs:使用面最广,可以操作任何文件系统。 hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者。 ...原创 2018-07-09 20:38:11 · 3695 阅读 · 0 评论 -
HDFS HA 高可用
1.概述(1) 所谓HA(high available),即高可用(7*24小时不中断服务)。(2) 实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。(3) Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。(4) NameNode主要在以下两个方面影响HDFS集群 NameNode机器发生...原创 2018-07-09 19:32:38 · 333 阅读 · 0 评论 -
Hadoop 优化
1.MapReduce 跑的慢的原因 Mapreduce 程序效率的瓶颈在于两点:(1) 计算机性能 CPU、内存、磁盘健康、网络(2) I/O 操作优化 ① 数据倾斜 ② map和reduce数设置不合理 ③ map运行时间太长,导致reduce等待过久 ④ 小文件过多 ⑤ 大量的不可分块的超大文件 ⑥ spill次数过多 ⑦ mer...原创 2018-07-09 19:20:15 · 335 阅读 · 0 评论 -
Hadoop 推测执行
1.作业完成时间取决于最慢的任务完成时间 一个作业由若干个Map任务和Reduce任务构成。因硬件老化、软件Bug等,某些任务可能运行非常慢。 典型案例:系统中有99%的Map任务都完成了,只有少数几个Map老是进度很慢,完不成,怎么办?2.推测执行机制: 发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度。为拖后腿任务启动一个备份任务,同时运行。谁先运行完,则采用谁的结果...原创 2018-07-09 18:02:04 · 630 阅读 · 0 评论 -
Hadoop资源调度器
目前,Hadoop作业调度器主要有三种:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。具体设置详见:yarn-default.xml文件<property> <description>The class to use as the resource s...原创 2018-07-09 16:39:50 · 1402 阅读 · 0 评论 -
Hadoop Yarn 原理及运作机制
1.Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。2.Yarn基本架构 YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。 ...原创 2018-07-08 23:00:40 · 1225 阅读 · 0 评论 -
Hadoop 数据压缩
1.概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。在Hadoop下,尤其是数据规模很大和工作负载密集的情况下,使用数据压缩显得非常重要。在这种情况下,I/O操作和网络数据传输要花大量的时间。还有,Shuffle与Merge过程同样也面临着巨大的I/O压力。 鉴于磁盘I/O和网络带宽是Hadoop的宝贵资源,数据压缩对于节省资源、最小化...原创 2018-07-08 14:27:07 · 276 阅读 · 0 评论 -
MapReduce 开发总结
在编写mapreduce程序时,需要考虑的几个方面:1)输入数据接口:InputFormat 默认使用的实现类是:TextInputFormat TextInputFormat的功能逻辑是:一次读一行文本,然后将该行的起始偏移量作为key,行内容作为value返回。KeyValueTextInputFormat每一行均为一条记录,被分隔符分割为key,value。默认分隔符是tab(\t)...原创 2018-07-08 13:21:36 · 299 阅读 · 0 评论 -
MapReduce 之数据清洗(ETL)
1.概述 在运行核心业务Mapreduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行mapper程序,不需要运行reduce程序。2.数据清洗案例实操 ...原创 2018-07-08 13:06:07 · 3310 阅读 · 0 评论 -
MapReduce 之计数器
Hadoop为每个作业维护若干内置计数器,以描述多项指标。例如,某些计数器记录已处理的字节数和记录数,使用户可监控已处理的输入数据量和已产生的输出数据量。1.API(1) 采用枚举的方式统计计数 enum MyCounter{MALFORORMED,NORMAL} //对枚举定义的自定义计数器加1 context.getCounter(MyCounter.MALFOROR...原创 2018-07-08 12:02:37 · 208 阅读 · 0 评论 -
MapReduce 之Join应用
1.Reduce join(1) 原理: Map端的主要工作:为来自不同表(文件)的key/value对打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在map阶段已经打标志)分开,最后进行合并就ok了。(...原创 2018-07-08 11:30:29 · 217 阅读 · 0 评论 -
MapReduce 之OutputFormat数据输出
1.OutputFormat接口实现类 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了 OutputFormat接口。下面我们介绍几种常见的OutputFormat实现类。(1) 文本输出TextOutputFormat 默认的输出格式是TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为TextOut...原创 2018-07-07 14:55:00 · 597 阅读 · 0 评论 -
MapReduce原理之ReduceTask工作机制
1.设置ReduceTask并行度(个数) reducetask的并行度同样影响整个job的执行并发度和执行效率,但与maptask的并发数由切片数决定不同,Reducetask数量的决定是可以直接手动设置: //默认值是1,手动设置为4 job.setNumReduceTasks(4);2.注意(1)reducetask=0 ,表示没有reduce阶段,输出文件个数和map个...原创 2018-07-07 13:54:02 · 3123 阅读 · 1 评论 -
MapReduce 原理之Shuffle机制
1.Shuffle机制 Mapreduce确保每个reducer的输入都是按键排序的。系统执行排序的过程(即将map输出作为输入传给reducer)称为shuffle。2.Partition分区(1) 问题引出:要求将统计结果按照条件输出到不同文件中(分区)。比如:将统计结果按照手机归属地不同省份输出到不同文件中(分区)(2) 默认partition分区public class HashPa...原创 2018-07-07 12:58:58 · 413 阅读 · 0 评论 -
MapReduce 原理之 MapTask工作机制
1.并行度决定机制(1) 问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度。那么,mapTask并行任务是否越多越好呢?(2) MapTask并行度决定机制 一个job的map阶段MapTask并行度(个数),由客户端提交job时的切片个数决定。2.MapTask工作机制(1) Read阶段:Map Task通过用户编写的RecordRea...原创 2018-07-07 11:55:09 · 829 阅读 · 0 评论 -
MapReduce 之 InputFormat数据输入
1.Job提交流程和切片源码详解(1) job提交流程源码详解waitForCompletion()submit();// 1建立连接 connect(); // 1)创建提交job的代理 new Cluster(getConfiguration()); // (1)判断是本地yarn还是远程...原创 2018-07-07 11:34:43 · 1635 阅读 · 0 评论 -
MapReduce 原理之工作流程
1.流程示意图2.流程详解 上面的流程是整个mapreduce最全工作流程,但是shuffle过程只是从第7步开始到第16步结束,具体shuffle过程详解,如下:1)maptask收集我们的map()方法输出的kv对,放到内存缓冲区中2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件3)多个溢出文件会被合并成大的溢出文件4)在溢出过程中,及合并的过程中,都要调用partitioner...原创 2018-07-07 10:32:20 · 258 阅读 · 0 评论 -
Hadoop 序列化
1.序列化概述(1) 什么是序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。 反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。(2) 为什么要序列化 一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 ...原创 2018-07-07 10:02:16 · 296 阅读 · 1 评论 -
MapReduce 基础入门
1.MapReduce定义 Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架。 Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。2.MapReduce优缺点(1) 优点 ① MapReduce 易于编程。它简单的实现一些接口,就可以完成一个分...原创 2018-07-07 09:50:11 · 301 阅读 · 0 评论 -
HDFS 2.X新特性
1.集群间数据拷贝1)scp实现两个远程主机之间的文件复制 scp -r hello.txt root@hadoop103:/user/atguigu/hello.txt // 推 push scp -r root@hadoop103:/user/atguigu/hello.txt hello.txt // 拉 pull scp ...原创 2018-06-30 22:43:30 · 395 阅读 · 0 评论 -
Hadoop 机架感知
1.背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群。机架内的机器之间的网络速度通常都会高于跨机架机器之间的网络速度,并且机架之间机器的网络通信通常受到上层交换机间网络带宽的限制。 具体到Hadoop集群,由于hadoop的HDFS对数据文件的分布式存放是按照分块block存储,每...原创 2018-06-29 18:52:09 · 311 阅读 · 0 评论 -
Hadoop 集群安全模式
1.概述 NameNode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。此时,NameNode开始监听DataNode请求。但是此刻,NameNode运行在安全模式,即NameNode的文件系统对于客户端来说是只读的。 系统中的数据块的位置并不是由...原创 2018-06-29 18:26:47 · 846 阅读 · 0 评论 -
HDFS 之 DataNode 详解
DataNode工作机制1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个...原创 2018-06-29 15:58:31 · 2821 阅读 · 0 评论 -
HDFS 之 NameNode 和 SecondaryNameNode 关系解析
1.NN和2NN工作机制(1)第一阶段:NameNode启动(1)第一次启动的NameNode格式化后,创建的FsImage和编辑文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。(2)客户端对元数据进行增删改的请求。(3)的NameNode记录操作日志,更新滚动日志。(4)的NameNode在内存中对数据进行增删改查。(2)第二阶段:Secondary NameNode工作(1)Se...原创 2018-06-28 10:50:07 · 1037 阅读 · 1 评论 -
HDFS 读写文件流程详解
第一,对大数据的处理分析正成为新一代信息技术融合应用的结点。移动互联网,物联网,社交网络,数字家庭,电子商务等是新一代信息技术的应用形态,这些应用不断产生大数据。云计算为这些海量,多样化的大数据提供存储和运算平台。通过对不同来源数据的管理,处理,分析与优化,将结果反馈到上述应用中,将创造出巨大的经济和社会价值。大数据具有催生社会变革的能量。但释放这种能量,需要严谨的数据治理,富有洞见的数据分析和激...原创 2018-06-28 08:31:39 · 854 阅读 · 0 评论 -
HDFS 客户端操作
1.HDFS写数据流程 1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 2)NameNode返回是否可以上传。 3)客户端请求第一个 block上传到哪几个datanode服务器上。 4)NameNode返回3个datanode节点,分别为dn1、dn2、dn3。 ...原创 2018-05-18 23:39:00 · 971 阅读 · 0 评论 -
HDFS 之 Shell 操作
1.基本语法 bin/hadoop fs 具体命令 2.命令大全 [luomk@hadoop102 hadoop-2.7.2]$ bin/hadoop fs 3.常用命令实操(0)启动的Hadoop集群(方便后续的测试)[luomk @ hadoop102 hadoop-2.7.2] $ sbin / start-dfs.sh[luomk @ had...原创 2018-05-16 17:04:23 · 416 阅读 · 0 评论 -
HDFS 概述
1.基本语法bin/hadoop fs 具体命令2.命令大全[luomk@hadoop102 hadoop-2.7.2]$ bin/hadoop fs[-appendToFile <localsrc> ... <dst>][-cat [-ignoreCrc] <src> ...][-checksum <src> ...][-chgrp [-R...原创 2018-05-15 23:30:15 · 402 阅读 · 0 评论 -
Hadoop 编译源码
1.前期准备工作2. jar包安装3.编译源码原创 2018-05-15 20:59:37 · 580 阅读 · 0 评论 -
配置hadoop支持LZO压缩和创建索引
1.项目经验之支持LZO压缩配置2.项目经验之LZO创建索引原创 2018-05-15 15:33:48 · 654 阅读 · 0 评论 -
Hadoop 集群部署安装
1.分析2.编写集群分发脚本xsync3.SSH无密登录配置4.集群配置5.集群单点启动6.集群测试7.集群启动/停止方式原创 2018-05-15 12:58:47 · 932 阅读 · 0 评论 -
Hadoop 单机部署安装
1.前置准备2.安装JDK3.安装Hadoop原创 2018-05-15 09:59:15 · 400 阅读 · 0 评论 -
Hadoop的介绍以及发展历史
1.Hadoop介绍2.Hadoop是什么3.Hadoop起源4.Hadoop的四大特性5.hadoop的历史版本介绍6.hadoop三大公司发型版本介绍原创 2018-05-15 08:52:54 · 2513 阅读 · 0 评论 -
大数据概述
1.大数据概念大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。主要解决海量数据的存储和海量数据的分析计算问题。 按顺序的数据存储单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB。原创 2017-11-03 15:55:54 · 623 阅读 · 0 评论