Hadoop
情深不仅李义山
路漫漫其修远兮,吾将上下而求索.
展开
-
YARN的Job任务提交流程和任务调度
在Hadoop体系中,YARN的主要作用是资源管理和任务调度,其主要组合包括ResourceManager和NodeManager,下面来聊聊它的job任务提交流程和任务调度算法。job任务提交流程job任务的提交流程如下图:1 客户端向ResourceManager提交任务,ResourceManager会根据权限和当前集群的负载情况执行Job任务2 ResourceManager就会启动ApplicationManager来启动AppMaster,一个AppMaster对应一个Job任务原创 2020-09-27 12:50:20 · 550 阅读 · 0 评论 -
自定义·InputFormat实现小文件合并
我们在使用MapReduce读取文件时,一般使用的都是TextInputFormat进行读取文件,TextInputFormat是以行来读取的,读取出来的key是偏移量,value就是每一行文本。我们都知道在Hadoop中,小文件不仅影响NameNode性能,同时也影响MapReduce性能,所以我们正好可以通过自定义InputFormat来实现一下小文件的合并,同时也可以以此来了解InputFormat的某些底层原理。我们要实现文件读取的功能,不妨先看看TextInputFormat是怎么实现的。走!我原创 2020-09-26 20:37:07 · 164 阅读 · 0 评论 -
Hadoop HA原理
Hadoop HA集群的工作机制如下图:Hadoop HA集群总体上可以分为三部分:NameNode集群、JournalNode集群和Zookeeper集群。NameNode在某一时刻只有一个处于活跃状态,其他的都处于standby状态;JournalNode负责把edits文件传到standby的NameNode上;Zookeeper负责监控NameNode宕机情况,ZKFC(ZookeeperFailoverController)是专门监控NameNode健康的。为了同步NameNode的元数据一原创 2020-09-26 11:07:07 · 260 阅读 · 0 评论 -
SecondaryNameNode工作原理
fsimage和edits详解editsedits存放的是HDFS最近一段时间的修改日志,客户端对HDFS的操作首先会被记录到edits,然后namenode的元数据也会更新。fsimagefsimage是namenode元数据的备份,可以理解为是namenode的checkpoint。因为NameNode的元数据是存储在内存中的,所以每次NameNode重启或者是启动的时候都会先导入fsimage然后按照edits执行一遍,得到目前的文件系统的元数据信息。注意:上述过程中HDFS会进原创 2020-09-26 09:54:59 · 418 阅读 · 0 评论 -
HDFS读写文件详细过程
HDFS写文件写文件的大致过程如下图所示:HDFS写文件过程详解:1.客户端首先会向NameNode提交写文件申请2.NameNode检查用户权限和是否存在该目录文件等问题,决定是否可以上传3.NameNode返回是否可以上传4.如果NameNode返回可以上传,客户端就会向NameNode申请上传第一个block5.NameNode根据机架感知机制和DataNode空间大小等问题,返回三个(默认)DataNode地址6.客户端和返回的三台DataNode建立通信管道,本质是RPC调用,D原创 2020-09-26 09:53:02 · 557 阅读 · 0 评论 -
HDFS压力测试
实际生产环境当中,hadoop的环境搭建完成之后,第一件事情就是进行压力测试,测试我们 的集群的读取和写入速度,测试我们的网络带宽是否足够等一些基准测试。写入速度测试# 向HDFS文件系统中写入数据,10个文件,每个文件10MBhadoop jar /HadoopPath/share/hadoop/mapreduce/hadoopmapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 fileSize 10MB# 测试原创 2020-09-26 09:43:18 · 669 阅读 · 0 评论 -
HDFS文件限额配置
HDFS上的配额管理针对的是某个目录而不是某个用户,添加配额管理可以更好地管理文件系统。配额管理可分为文件数量限额和目录空间大小限额,可以通过以下命令查看耨个目录的配额信息。#查看配额信息hdfs dfs -count -q -h /dir0none inf none inf 1 0 0 /dir0QUOTA REMAINING_QUATA SPACE_QUOTA SPACE_QUOTA原创 2020-09-26 09:42:30 · 822 阅读 · 1 评论 -
编译Hadoop源码包
为什么要自己编译源码包?为什么要编译源码包而不直接已经编译好的Apache安装包?因为已经编译好的Apache安装包不可以做压缩,所以要自己下载源码包编译。编译环境jdk1.7(注意:编译hadoop-2.7.x必须使用jdk1.7,否则会报错)maven3.xfindbug在线安装依赖包yum install autoconf automake libtool cmakeyum install ncurses-develyum install openssl-devel原创 2020-09-26 09:41:34 · 68 阅读 · 0 评论 -
MapReduce的MapJoin和ReduceJoin
先看元数据格式,有两张表商品表和订单表p开头的列代表商品ID,我们要通过商品ID实现Join操作,在MapReduce有两种方式,MapJoin和ReduceJoin:product.txtp0001,小米5,1000,2000p0002,锤子T1,1000,3000order.txt1001,20150710,p0001,21002,20150710,p0002,31003,20150710,p0001,3ReduceJoin先来看看ReduceJoin操作,数据的大致过程如下图:原创 2020-09-25 17:07:34 · 289 阅读 · 0 评论 -
Mapreduce的shuffle过程详解
MapReduce的shuffle过程可细分为两个过程:Map端:客户端提交Job任务后,经过一系列资源分配启动MapTask后,各个MapTask就会去HDFS通过InPutFormat拿到数据,进入MapTask任务。数据经过MapTask后会先根据Partitioner进行分区。数据经过分区后就会进入环形缓冲区,环形缓冲区大小默认为100M,也可以通过mapred-site.xml文件进行配置,当数据达到80%的时候,环形缓冲区的数据就会发生溢出,溢出的同时也会对key进行快速排序。原创 2020-09-25 00:13:14 · 1151 阅读 · 0 评论 -
MapReduce Shuffle过程
以下1、2、3点是map端的shuffle,4、5、6是reduce端的shuffle:map任务出来的数据会先写到环形缓冲区,数据在进入缓冲区之前是(k,v)类型,进入缓冲区之后就会变成(k,v,p)p是分区号。当写入的数据达到设定的阈值时,系统将会启动一个线程将缓冲区的数据写到磁盘,每写一次磁盘就会生成一个文件,这个过程叫spill。写入磁盘之前会先发生分区和排序,分区默认是根据哈希算法排序,也可以自定义;排序默认是按照key进行排序,同样也可以自定义。把之前所有的写磁盘文件合并起来,使得最后原创 2020-07-16 02:36:26 · 133 阅读 · 0 评论 -
HDFS读写数据流程
HDFS写数据流程client向namenode申请写数据namenode检查权限、是否存在该文件等,返回是否可以上传如果namenode返回可以上传,client申请上传第一个block,请求返回datanodenamenode返回三个datanode地址client请求向dn1,dn2,dn3建立通道dn3,dn2,dn1响应上传block到dn1,再由dn1复制到dn2,然后dn2复制到dn3重复3-7直至所有block上传完为止HDFS读数据流程client请求下载某个HD原创 2020-07-16 02:30:06 · 76 阅读 · 0 评论 -
windows上传文件到虚拟机的hdfs上
org.apache.hadoop.security.AccessControlException: Permission denied: user=ASUS, access=WRITE, inode今天在windows连接虚拟机的hdfs,通过IDEA上传文件到虚拟机的hdfs上,出现了权限不足问题,原因是以windows的用户上传文件,所以出错,原代码如下:package cn.edu.l...原创 2020-02-14 12:29:41 · 1649 阅读 · 0 评论 -
MapReduce对数据进行二次排序
今天做了个用MapReduce对数据进行二次排序,这里的重点在于排序,所以要重写WritableComparator的排序方法compare方法,这里要注意一下的返回值如果返回-1就是升序排序,返回1就是降序排序。谨以此文章来记录自己的学习之路及希望能帮助到有需要的朋友。题目要求:|1. 综合设计题假设有两个文件代表两个班级的成绩,扩展名为.csv,文件中有两列数据,代表学号及数学成绩。具体...原创 2019-11-11 22:08:38 · 578 阅读 · 0 评论