
hadoop
近来
这个作者很懒,什么都没留下…
展开
-
mapredcue-Redcuejoin
图片加载不了看这 Reducejoin与Mapjoin相同,不是一种具体的类接口等需要实现的东西,而是一种思想,根据mapreduce的工作流程与原理,来间接完成自己的工作,看下面的案例实操。join基本思路 Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同原创 2020-11-12 11:26:42 · 246 阅读 · 0 评论 -
mapreduce-自定义outputformat
图片加载不了看这常见的outputformat实现类使用场景:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPyRQCi4-1605151404282)(https://s1.ax1x.com/2020/11/02/BrGyK1.png)]实例操作:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmT3uXeL-1605151404284)(https://s1.ax1x.com/2020/11/02/BrGqVf.png)]M原创 2020-11-12 11:23:50 · 375 阅读 · 0 评论 -
mapreducr-分组GroupingComparator
图片加载不了看这分组操作排序又称辅助排序,是在reducer操作之前对mapper传出的kv值进行shuffle操作并归并排序之后,对kv值进行的一系列操作,比如对key中相同的一项或者两项相同的数据归为一组,以分组好的一个key值传入values。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXkpGQTL-1605151279150)(https://s1.ax1x.com/2020/10/28/B8CrRJ.png)]需求:[外链图片转存失败,源站可能有防盗原创 2020-11-12 11:21:57 · 207 阅读 · 0 评论 -
maprecude-combiner合并及实例
看这combinner是mapreduce程序中为了减小网络传输量而设置的一个组件,其父类其实就是reducer,combinner在每一个maptask后面进行数据的汇总,从而减少在map之后reduce之前的shuffle机制一系列的数据读写的io操作。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NpXpolg1-1603713044018)(https://s1.ax1x.com/2020/10/26/BuxnI0.png)]注意能够应用的前提不要影响到业务逻辑原创 2020-10-26 19:51:05 · 256 阅读 · 0 评论 -
mapreduce-排序与分区内排序及实例
在排序的时候,对每一次排序都是默认的按照key进行字典排序的,要实现自定义排序的方式,就是自定对象实现writablecomparable接口实现compareto方法,从而实现自定义排序。如:@Overridepublic int compareTo(FlowBean o) { int result; // 按照总流量大小,倒序排列 if (sumFlow > bean.getSumFlow()) { result = -1; }else if (sumFlow <原创 2020-10-26 19:50:04 · 623 阅读 · 0 评论 -
mapreduce-排序的介绍
看这排序是mapreudce框架中最为重要的操作之一,排序属于mapreduce的默认操作,在maptask和reducetask中都会对数据按照key进行排序,也就是说任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认是按照字典顺序排序,实现方法为快排。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQr4Sb7f-1603712933723)(https://s1.ax1x.com/2020/10/21/BPJ2xP.png)]对于排序亦有四种分类:[原创 2020-10-26 19:49:29 · 241 阅读 · 0 评论 -
在IDEA中如何使用debug调试
https://www.linuxidc.com/Linux/2017-09/146772.htm转载 2020-10-26 19:48:34 · 180 阅读 · 0 评论 -
mapreduce-partition分区及实操
了解到,在Mapper之后Reducer之前mapreduce会有一个叫做shuffle机制的流程,这个流程会将Mapper输出的键值对进行分区,每一个分区开启一个reducetask来处理这些数据,而最后输出的文件则为一个reducetask对应输出一个文件。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQNvk1qA-1603712853630)(https://s1.ax1x.com/2020/10/20/BpIsBD.png)][外链图片转存失败,源站可能有防盗原创 2020-10-26 19:47:46 · 354 阅读 · 0 评论 -
shuffle机制图解
原创 2020-10-26 19:47:09 · 281 阅读 · 0 评论 -
mapreduce工作流程(详细)
原创 2020-10-26 19:46:37 · 378 阅读 · 0 评论 -
maperduce自定义inputformat
MapReduce提供的inputformat输入类型并不能满足我们的使用需求,因此,mapreduce可以由用户自定义inputformat逻辑来处理各类数据。步骤:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-naJgpogf-1603113808497)(https://s1.ax1x.com/2020/10/19/0xiCKH.png)]自定义InputFormat方案解决处理大量小文件的问题需求:将多个小文件合并成一个SequenceFile文件(Sequ原创 2020-10-26 19:34:32 · 116 阅读 · 0 评论 -
mapreduce几种常见的inputformat实现类
我们在使用mapreudce来处理数据的时候会遇到许多类型的数据,如文本数据,二进制数据,数据库表等文件,mapreduce中对应其中常用的数据格式有许多输入类来对应实现这些输入格式数据的输入。注意这几种输入格式实现类的切片**TextInputFormat:**按文件切片,一个文件大了切片,但是再小也是一个切片**KeyValue:**同TextInputFormat**NLineInputformat:**按文件行数切片,N行切一片。**CombineTextInputFormat:**设置文原创 2020-10-19 21:23:18 · 817 阅读 · 1 评论 -
Mapreduce-fileinputformat切片流程
fileinputformat切片机制本地运行时为切片32m,Hadoop1.x集群切片为64m,Hadoop2.x集群切片为128m要注意的事情是在计算切片大小的时候我们如果要改动切片的大小blocksize,那么就要在这个公式上面下手:Math.max(minSize,Math.min(maxsize,blocksize)) 一般值为128m,而且maxSize默认为long的最大值,minSize默认为1。如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-原创 2020-10-19 21:22:38 · 137 阅读 · 0 评论 -
Mapreduce-CombineTextinputformat切片机制
CombineTextInputFormat切片机制框架默认的TextInputFormat切片机制是对任务按文件规划切片,不管文件多小,都会是一个单独的切片,都会交给一个MapTask,这样如果有大量小文件,就会产生大量的MapTask,处理效率极其低下。1、应用场景:CombineTextInputFormat用于小文件过多的场景,它可以将多个小文件从逻辑上规划到一个切片中,这样,多个小文件就可以交给一个MapTask处理。2、虚拟存储切片最大值设置CombineTextInputFormat原创 2020-10-19 21:22:03 · 128 阅读 · 0 评论 -
mapreduce-job提交源码流程
job提交任务源码流程waitForCompletion()submit();// 1建立连接 connect(); // 1)创建提交Job的代理 new Cluster(getConfiguration()); // (1)判断是本地yarn还是远程 initialize(jobTrackAddr, conf); // 2 提交jobsubmitter.submitJobInternal(Job.this, cluster) // 1)创建给集群提交数据的Sta原创 2020-10-19 21:21:29 · 154 阅读 · 0 评论 -
切片和maptask并行度决定机制
maptask指的是在mapreduce运行过程中为每一个数据切片分配的数据运算实例任务。maptask的并行度也就指的是运算任务实例的数量,影响整个job的处理速度。切片与maptask并行度的决定机制**数据块:**Block是HDFS物理上把数据分成一块一块。**数据切片:**数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。对于一个要处理的文件数据map框架有默认的切片大小,一般默认为blocksize的大小,在分配maptask运算任务实例的时候对每一个数据切片分配一原创 2020-10-19 21:20:59 · 231 阅读 · 0 评论 -
Hadoop序列化
当然准确的来说是Hadoop的序列化机制。常用的数据序列化类型Java****类型Hadoop Writable****类型booleanBooleanWritablebyteByteWritableintIntWritablefloatFloatWritablelongLongWritabledoubleDoubleWritableStringTextmapMapWritablearrayArrayWritable原创 2020-10-19 21:20:15 · 140 阅读 · 0 评论 -
zookeeper-JAVA-API操作基础
借鉴于:https://blog.youkuaiyun.com/qq_16146103/article/details/105799545创建maven工程并修改相应的pom.xml文件,添加相应的依赖。<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</原创 2020-10-19 21:19:08 · 326 阅读 · 0 评论 -
mapreduce编程流程
Mapreduce的编程流程主要分八个阶段:两个MAP阶段,四个shuffle阶段,两个reduce阶段。Map两个阶段:1:设置inputformat类,将数据分为key-value对(k1 v1),并将其输入到第二步。2:自定义Map逻辑将第一步的结果转换为另外的键值对(k2,v2),并输出。shuffle四个阶段:3:对输出的键值对进行分区。4:对不同分区的数据按照相同的key排序。5:(可选),对分组后的数据进行初步规约,降低数据的网络拷贝。6:对数据进行分组,将相同key的valu原创 2020-10-19 21:17:34 · 1155 阅读 · 0 评论 -
hdfs的高可用机制
在Hadoop集群中,namenode管理整个hdfs系统的元数据信息,直接决定hdfs文件系统的可用性,那么在一个典型的Hadoop集群中,有两台机器被配置为namenode,一台为active,另一台为standy状态。工作中active负责工作,standy保持足够的状态来提供快速故障切换。hdfs和zookeeper实现高可用机制[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W0nV0eA8-1603113366622)(https://s1.ax1x.com/2原创 2020-10-19 21:16:17 · 374 阅读 · 0 评论 -
hdfs元数据管理
hdfs的元数据辅助管理元数据就是文件的创建时间、大小、权限、块列表等信息。在Hadoop集群中namenode的元数据信息都保存在了Fslmage和Eidts文件中,这两个文件的目录信息就配置在hdfs-site.xml文件中。**fsimage:HDFS文件系统存于硬盘中的元数据检查点,里面记录了自最后一次检查点之前HDFS文件系统中所有目录和文件的序列化信息edits:**保存了自最后一次检查点之后所有针对HDFS文件系统的操作,比如:增加文件、重命名文件、删除目录等等。两个文件一旦损坏或丢失原创 2020-10-19 21:15:45 · 442 阅读 · 0 评论 -
hdfs文件写入与读取过程
文件的写入过程:client向namenode请求上传a.txtnamenode检测client的上传权限namenode回答client是否可以上传client将文件按照block_size大小将文件分为几份,并向namenode请求上传一个blocknamenode根据datanode上的block信息和机架感知选择三个主机放置三个副本(hadoop默认三个),并生成可以上传的datanode的列表。将生成的可以上传的datanode的列表,这时client就可以直接通过pipeline与原创 2020-09-12 13:02:49 · 336 阅读 · 0 评论 -
zookeeper概述
作用zookeeper是一个开源的分布式协调服务器框架,主要用来解决集群中应用系统的一致性和数据管理问题。比如说在一个主机的上有多个进程同时对一个进程之间共享的资源或者说文件进行操作,那么这时就需要调度分配操作权限,资源或者文件是不能同时被多个进程操作的,当一个资源被使用的时候需要对其上锁以免被其他进程操作(类似多线程中的线程锁),而多个主机中的多个进程同时对共享资源进行操作又涉及到了网络问题,zookeeper就是用来解决这些问题的。一致性问题:比如说两个共享资源是保持同步不的时候的不同进程之间的读原创 2020-09-12 13:01:26 · 572 阅读 · 0 评论 -
hdfs高级命令
对文件进行限额主要在多人使用hdfs文件系统的时候,为了避免有的用户一个人就要占用整个文件系统所有的存储空间等情况,hdfs 的限额配置允许我们以文件个数或者文件大小进行对某个目录的限制。文件限额配置操作查看某个目录的配置信息:hdfs dfs -count -q -h URLoutput: 2 0 none inf 1 1 1.4原创 2020-09-11 09:42:10 · 247 阅读 · 0 评论