hadoop
雾幻
种一棵树最好的时间是十年前,而后是现在
展开
-
HDFS副本存放策略
数据分块存储和副本的存放,是保证可靠性和高性能的关键 将每个文件的数据进行分块存储,每一个数据块又保存有多个副本。这些数据块副本分布在不同的机器节点上设置备份数方法一:配置文件hdfs-site.xml <property> <name>dfs.replication</name> <value>3&...原创 2017-12-04 20:28:52 · 2957 阅读 · 0 评论 -
MapReduce中Shuffle机制详解——Map端Shuffle
相关链接 MapReduce运行机制 MapReduce中Shuffle机制详解——Reduce端Shuffle链接Shuffle阶段是指从Map的输出开始,包括系统执行排序以及传送Map输出到Reduce作为输入的过程。Sort阶段是指对Map端输出的Key进行排序的过程。不同的Map可能输出相同的Key,相同的Key必须发送到同一个Reduce端处理。Shuffle阶段...原创 2018-04-11 17:07:05 · 6099 阅读 · 0 评论 -
Mapreduce中Map与Reduce任务的个数
1、Map任务的个数读取数据产生多少个Mapper?? Mapper数据过大的话,会产生大量的小文件,过多的Mapper创建和初始化都会消耗大量的硬件资源 Mapper数太小,并发度过小,Job执行时间过长,无法充分利用分布式硬件资源Mapper数量由什么决定?? (1)输入文件数目(2)输入文件的大小(3)配置参数 这三个因素决定的。 输入的目录中文件的数量决定多少个map会...原创 2018-04-11 16:30:11 · 17900 阅读 · 0 评论 -
MapReduce运行机制
相关链接 MapReduce中Shuffle机制详解——Map端Shuffle链接 MapReduce中Shuffle机制详解——Reduce端Shuffle链接MapReduce将作业job的整个运行过程分为两个阶段:Map阶段和Reduce阶段。按照时间顺序包括:输入分片(input split)、map阶段、combiner阶段、shuffle阶段和reduce阶段。...原创 2018-04-11 16:27:51 · 1146 阅读 · 0 评论 -
Hadoop YARN容错机制
在现实情况中,用户代码错误不断,进程崩溃,机器故障等情况均容易造成任务失败。hadoop最主要的好处之一就是它能处理此类故障并能够成功完成作业。1、任务失败 首先应考虑任务的失败,最常见的情况是map任务或reduce任务中代码运行异常。遇到此情况任务JVM会在退出之前向其父application master发送错误报告,并将此次任务尝试标记为failed(失败),然后释放容器以便资源可以...原创 2018-04-11 15:59:42 · 3380 阅读 · 0 评论 -
Hadoop作业运行机制
hadoop会为每个分片构建一个map任务,map和reduce每个阶段都以键值对作为输入和输出。键是某一行起始位置相对于文件起始位置的偏移量(行偏移量)。1.为什么要将MapReduce计算转移到存储有部分数据的各台机器上 这样可以获得最佳性能,因为它无需使用宝贵的集群【网络带宽资源】,这就是所谓的.数据本地化优化(移动计算而不移动数据)。2.为什么最佳分片的大小应该与块大小相同 因...原创 2018-04-11 15:49:48 · 3336 阅读 · 2 评论 -
Hadoop MapReduce编程开发
用户编写完MapReduce程序后,按照一定的规则指定程序的输入和输出目录,并提交到Hadoop集群中。 Hadoop将输入数据切分成若干个输入分片(input split),并将每个split交给一个Map Task处理;Map Task不断的从对应的split中解析出一个个key/value,并调用map()函数处理。处理完之后根据Reduce Task个数将结果分成若干个分片(partit...原创 2018-04-11 15:25:02 · 317 阅读 · 0 评论 -
Hadoop MapReduce简介
MapReduce分布式并行计算框架是一种可用于数据处理的编程模型,可运行由个中语言编写的MapReduce程序:java、Ruby、Python、R、C++等语言。它用于处理超大规模数据的计算,同时具有可并行计算的特性,因此可以将大规模的数据分析任务交给任何一个拥有足够多机器的集群。并采用函数式编程的思想,在各函数之间串行计算(Map执行完毕,才会开始执行Reduce任务)。简单来说Map将...原创 2018-04-11 14:57:45 · 917 阅读 · 0 评论 -
Hadoop Federation联邦机制
Hadoop1.0 单namenode架构局限性NameSpace(命名空间的限制) 由于Namenode在内存中存储所有的元数据(metadata)。NN在管理大规模的命名空间时,单个Namenode所能存储的对象(文件+块)数目受到Namenode所在JVM的堆【内存大小的限制】。 随着数据的飞速增长,存储的需求也随之增长。50G的heap能够存储20亿个对象—>4000个d...原创 2018-03-27 20:55:01 · 5255 阅读 · 1 评论 -
MapReduce优化——Combiner与Partitioner
相关链接: MapReduce优化——配置调优Combiner和Partitioner是用来优化MapReduce的。可以提高MapReduce的运行效率。Combiner集群上的可用带宽限制了MapReduce作业的数量,因此尽量避免map和reduce任务之间的数据传输是有利的。Hadoop允许用户针对map任务的输出指定一个combiner(就像mapper,redu...原创 2018-04-11 17:34:53 · 5221 阅读 · 1 评论 -
解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
在Windows环境下使用IDEA、eclipse运行hadoop、spark程序时产生如下异常:1、java.io.IOException: Could not locate executablenull\bin\winutils.exe in the Hadoop binaries.2、java.io.IOException: Failed to locate the winutils ...原创 2018-10-12 10:03:45 · 5123 阅读 · 0 评论 -
集群硬件规划
1. 总体规划的考虑Hadoop集群的瓶颈:IO(Disk,Net) Spark集群的瓶颈:CPU,内存hadoop可以在一台机器上运行,该方式主要用于测试,显然不适合大量的数据。许多人从一个小的集群开始,并根据需要增长它最初可能只有4到6个节点。随着数据量的增长,可以很容易地添加更多的节点。决定集群何时需要增长的方法: 需要增加计算能力,增加需要存储的数据量,增加处理任务所需的内...原创 2018-04-13 00:48:13 · 4285 阅读 · 0 评论 -
Hadoop3.0版本新特性
Hadoop 2.0是基于JDK 1.7开发的,而JDK 1.7在2015年4月已停止更新,这直接迫使Hadoop社区基于JDK 1.8重新发布一个新的Hadoop版本,而这正是hadoop 3.0。Hadoop 3.0中引入了一些重要的功能和优化,包括HDFS 可擦除编码、多Namenode支持、MR Native Task优化、YARN基于cgroup的内存和磁盘IO隔离、YARN con...转载 2018-04-12 23:25:14 · 2348 阅读 · 0 评论 -
Hadoop yarn中Scheduler资源调度器
理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。双层调度框架:RM将资源分配给AM,AM...原创 2018-04-12 23:17:07 · 1656 阅读 · 0 评论 -
Hadoop Yarn工作机制
在yarn上写应用程序并不同于我们熟知的MapReduce应用程序,必须牢记yarn只是一个资源管理的框架,并不是一个计算框架,计算框架可以运行在yarn上。我们所能做的就是向RM申请container,然后配合NM一起来启动container。就像MRv2一样,jobclient请求用于MR AM运行的container,设置环境变量和启动命令,然后交由NM去启动MR AM,随后map/re...原创 2018-04-12 22:59:32 · 346 阅读 · 0 评论 -
Hadoop Yarn资源管理——核心组件详解
相关链接: Hadoop Yarn资源管理——Hadoop1.0与Hadoop2.0对比YARN是Hadoop 2.0的一个通用的资源管理系统,可为上层应用提供统一的资源管理和调度。在整个资源管理框架中ResourceManager为Master,NodeManager为Slave ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提...原创 2018-04-12 21:41:55 · 3063 阅读 · 0 评论 -
Hadoop Yarn资源管理——Hadoop1.0与Hadoop2.0对比
相关链接: Hadoop Yarn资源管理——核心组件详解Yarn(Yet Another Resource Negotiator)是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率(内存、IO、网络、磁盘等)。它仍可认为采用了master/slave结构,总体上采用了双层调度架构。1、Hadoop1.0缺陷JobTracker是Map-reduce的集中处理...原创 2018-04-12 20:45:32 · 2230 阅读 · 0 评论 -
MapReduce优化——配置调优
相关链接: MapReduce优化——Combiner与Partitioner1、配置调优调优总的原则给shuffle过程尽量多提供内存空间,在map端,可以通过避免多次溢出写磁盘来获得最佳性能(相关配置io.sort.*,io.sort.mb),在reduce端,中间数据全部驻留在内存时,就能获得最佳性能,但是默认情况下,这是不可能发生的,因为一般情况所有内存都预留给reduc...原创 2018-04-11 17:43:18 · 8712 阅读 · 0 评论 -
Hadoop HA机制
Hadoop1.0版本容易引发单点故障HDFS:Hadoop1.x版本中单NameNode设计,其单点处理能力成为HDFS的主要瓶颈 单点故障、内存受限,制约集群扩展性和缺乏隔离机制(不同业务使用同一个NameNode导致业务相互影响)等因为客户端对HDFS的读、写操作之前都要访问NameNode服务器。存在【单点故障问题】计划内的软件或硬件升级,将导致集群在短时间范围内不可用。...原创 2018-03-27 20:34:06 · 893 阅读 · 1 评论 -
Hadoop数据完整性与CheckSum校验原理
一、HDFS数据完整性用户肯定都希望系统在存储和处理数据时,数据不会有任何丢失或损坏。但是,受网络不稳定、硬件损坏等因素,IO操作过程中难免会出现数据丢失或脏数据,难免会出现数据丢失或脏数据,数据传输的量越大,出现错误的概率就越高。检测数据是否损坏的常见措施是,在数据第一次引入系统时计算校验和(checksum)并存储,在数据进行传输后再次计算校验和进行对比,如果计算所得的新校验和和原来的...原创 2018-03-27 19:57:54 · 10575 阅读 · 2 评论 -
hadoop负载均衡
理想情况下,在一个集群汇总,我们希望每台机器都发挥自己最大的价值,磁盘的利用率均衡化。 往往因为网络,硬件,程序的原因,导致磁盘利用率出现严重的不均衡现象。 尤其是在DataNode节点出现故障或在现有的集群上新增、删除节点,或者某个节点机器内硬盘存储达到饱和值。会出现严重的磁盘利用率不均衡当HDFS出现不平衡状况的时候,将引发很多问题MR程序无法很好地利用本地计算的优势 Ma...原创 2017-12-04 20:32:10 · 2512 阅读 · 0 评论 -
搭建hadoop完全分布式集群VM+CentOS+hadoop2.7
转载自:http://blog.csdn.net/gamer_gythadoop伪分布部署参考:点击打开链接hadoop单机版部署参考:点击打开链接zookeeper,hive,hbase的分布式部署参考:点击链接Spark,Sqoop,Mahout的分布式部署参考:点击链接hadop高可用部署:点击连接一:安装VM 12.x 下载地址:链接:http://pan.baidu.com/s/1转载 2017-09-20 20:03:24 · 613 阅读 · 0 评论 -
Hadoop NameNode详解
NameNode在内存中保存着整个文件系统的名字空间和文件数据块的地址映射(Blockmap)。如果NameNode宕机,那么整个集群就瘫痪了 整个HDFS可存储的文件数受限于NameNode的内存大小 这个关键的元数据结构设计得很紧凑,因而一个有4G内存的Namenode就足够支撑大量的文件和目录。一般情况下,单namenode集群的最大集群规模为4000台NameNode负责:文件...原创 2017-12-04 20:46:04 · 19466 阅读 · 1 评论 -
hadoop block数据块
block数据块是HDFS文件系统基本的存储单位 block(块)128M 小于一个块的文件,不会占据整个块的空间block数据块大小设置较大的原因: 1)减少文件寻址时间 2)减少管理块的数据开销,每个块都需要在NameNode上有对应的记录 3)对数据块进行读写,减少建立网络的连接成本 一个文件可以划分成多个块进行存储,并保存三个副本以...原创 2017-12-04 20:41:46 · 3427 阅读 · 2 评论 -
hadoop机架感知
HDFS集群由分布在多个机架上的大量DataNode组成,不同机架之间节点通过交换机通信,HDFS通过机架感知策略,使NameNode能够确定每个DataNode所属的机架ID,使用副本存放策略来改进数据的可靠性、可用性和网带宽的利用率。机架感知的由来:1、希望不同节点之间的通信能够尽量发生在同一个机架之内,而不是跨机架。2、为了提高容错能力,master节点会尽可能把数据块的副本放到不...原创 2017-12-04 20:36:18 · 337 阅读 · 0 评论 -
hadoop心跳机制
主节点和从节点之间的通信是通过心跳机制(心跳实际上是一个RPC函数)实现的 所谓“心跳”是一种形象化描述,指的是持续的按照一定频率在运行,类似于心脏在永无休止的跳动。心跳机制:1) master启动的时候,会开启一个RPC server2) slave启动时进行连接master,并每隔3秒钟主动向master发送一个“心跳” 将自己的状态信息告诉master,然后master通过这个心跳的原创 2017-12-04 20:33:54 · 3568 阅读 · 0 评论 -
hadoop安全模式
安全模式是Hadoop集群的一种保护模式,用以保证集群中数据块的安全性。当集群处于安全模式时,不对外提供写的服务,为只读状态。此时会检查数据块的完整性,对集群中的所有数据块进行校验。自动进入安全模式(配置文件hdfs-default.xml中定义) 启动HDFS集群会首先自动进入安全模式,只有当DataNode上报的block个数达到了元数据记录的block个数的0.999倍才可以离...原创 2017-12-04 20:30:05 · 433 阅读 · 0 评论 -
NameNode元数据持久化
NameNode在内存中保存着整个文件系统的名字空间和文件数据块映射(Blockmap)的映像。 如果NameNode宕机,那么整个集群就瘫痪了因而则出现了元数据的存储问题,接下来请看如下几个问题如果元数据仅以文件的形式存储在namenode本地硬盘行不行呢? 因为大批量的客户端同时在进行上传、下载等各种操作时,都要对元数据进行读写及修改操作 仅仅以文件的形式来存储元数据...原创 2017-12-04 20:58:40 · 2539 阅读 · 1 评论 -
HDFS文件读写操作
HDFS读文件客户端首先调用FileSystem对象的open方法打开文件,其实获取的是一个DistributedFileSystem的实例。DistributedFileSystem通过调用RPC(远程过程调用)向namenode发起请求,获得文件的第一批block的位置信息。同一block按照备份数会返回多个DataNode的位置信息,并根据集群的网络拓扑结构排序,距离客户端近的排在前...原创 2018-03-27 19:17:03 · 12957 阅读 · 0 评论 -
Hadoop元数据存储、加载、恢复
1. 元数据加载 为了保证交互速度,HDFS文件系统的metadata是被load到namenode机器的内存中的。并会将内存中的这些数据保存到磁盘进行持久化存储,但对块的位置信息不进行持久化存储,在DataNode向namenode进行注册时动态加载。当NameNode启动时,它从硬盘中读取Editlog和FsImage。将所有Editlog中的事务作用在内存中的FsImage上,以恢...原创 2018-03-27 19:01:06 · 5211 阅读 · 0 评论 -
Hadoop中SecondaryNameNode工作机制
SecondaryNameNode是一个用来监控HDFS状态的辅助后台程序,部署在一个单独的服务器上。与NameNode进行通信,以便定期地保存HDFS元数据的快照(周期性将Edits日志文件与fsimage进行合并)。由于NameNode是单点的,通过SecondaryNameNode快照功能,可将NameNode宕机时间和数据损失降低到最小。SecondaryNameNode产生原因 H...原创 2018-03-27 18:54:06 · 916 阅读 · 0 评论 -
Hadoop DataNode详解
一个集群可能包含上千个DataNode节点,这些DataNode定时和NameNode进行通信,接受NameNode的指令 为了减轻NameNode的负担,NameNode上并不永久保存哪个DataNode上有哪些数据块的信息,而是通过DataNode启动时的上报来更新NameNode上的映射表。根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送所存储的块...原创 2018-03-27 18:48:45 · 10818 阅读 · 0 评论 -
HDFS分布式文件系统简介
HDFS(Hadoop Distributed File System)Hadoop 分布式文件系统基于流数据模式访问 就是可以字节序列化的数据,java.io.Serializable接口 分布式文件系统处理的数据必须是流数据,可以写IO操作的数据以128MB的数据块存储文件 其中每一个存储节点上都有一个DataNode进程,由NameNode来进行协调。1...原创 2018-03-27 14:18:36 · 3807 阅读 · 0 评论 -
Hadoop运行模式
单机模式(standalone) 在单机模式(standalone)适用于学习与测试环境,在单机模式中不会存在守护进程,所有东西都运行在一个 JVM 上,Hadoop会完全运行在本地。伪分布模式(Pseudo-Distributed Mode) 伪分布式(Pseudo)适用于学习与测试环境,在这个模式中,所有守护进程都在同一台机器上运行。通常用来用作实验、开发和调试用。完全分布式模式 ...原创 2018-03-27 14:04:21 · 818 阅读 · 0 评论 -
Hadoop RPC简介
RPC(Remote Procedure Call)————远程过程调用协议 Hadoop RPC在Hadoop中应用非常广泛,Client、DataNode、NameNode之间的通讯全依赖于它(1)它允许一台计算机程序远程调用另外一台计算机的子程序,而不用去关心底层的网络通信细节。对我们来说是透明的。因此,它经常用于分布式网络通信中。RPC协议假定某些传输协议的存在,如TCP或UDP,为...原创 2018-03-31 13:18:38 · 632 阅读 · 0 评论 -
Hadoop2.0 HA高可用机制
单点故障HDFS:Hadoop1.x版本中单NameNode设计,其单点处理能力成为HDFS的主要瓶颈 单点故障、内存受限,制约集群扩展性和缺乏隔离机制(不同业务使用同一个NameNode导致业务相互影响)等 因为客户端对HDFS的读、写操作之前都要访问NameNode服务器。存在【单点故障问题】 1.计划内的软件或硬件升级,将导致集群在短时间范围内不可用。 ...原创 2018-10-17 09:19:39 · 1880 阅读 · 1 评论