C++

MR案例:小文件合并SequeceFile

SequeceFile是HadoopAPI提供的一种二进制文件支持。这种二进制文件直接将<key,value>对序列化到文件中。可以使用这种文件对小文件合并,即将文件名作为key,文件内容作为value序列化到大文件中。这种文件格式有以下好处:1).支持压缩,且可定制为基于Record或Block压缩(Bl...

MR案例:CombineFileInputFormat

CombineFileInputFormat是一个抽象类。Hadoop提供了两个实现类CombineTextInputFormat和CombineSequenceFileInputFormat。此案例让我明白了三点:详见解读:MR多路径输入和解读:CombineFileInputFormat类对于单一输入路径情况://...

解读:Hadoop Archive

hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode中占用150byte内存。如果存储大量的小文件,它们会吃掉NameNode节点的大量内存。MR案例:小文件处理方案HadoopArchive或者HAR,是一个高效地将小文件放入HDFS块中的文件存档工具。它能将多个小...
代码星球·2020-03-30

解读:CombineFileInputFormat类

MR-Job默认的输入格式FileInputFormat为每一个小文件生成一个切片。CombineFileInputFormat通过将多个“小文件”合并为一个"切片"(在形成切片的过程中也考虑同一节点、同一机架的数据本地性),让每一个Mapper任务可以处理更多的数据,从而提高MR任务的执行速度...
代码星球·2020-03-30

hadoop2对应的eclipse插件使用

1.eclipse插件安装步骤:a).把插件复制到eclipse安装目录plugins文件夹下b).打开eclipse的Window---Preference---HadoopM/R---指向hadoop-2.2.0安装目录:只要在Windows上将hadoop-2.2.0.tar.gz解压即可c).Window---...

分布式缓存DistributedCache

本文是对MR案例:Map-Join的解读。在hadoop中,共享全局变量或全局文件的几种方法使用Configuration的set()方法,只适合数据内容比较小的场景将缓存文件放在HDFS上,每次都去读取,效率比较低将缓存文件放在DistributedCache里,在setup()初始化一次后,即可多次使用,缺点是不支...

MR案例:Reduce-Join

问题描述:两种类型输入文件:address(地址)和company(公司)进行一对多的关联查询,得到地址名(例如:Beijing)与公司名(例如:BeijingJD、BeijingRedStar)的关联信息。可参考MR案例:Map-Join1.map阶段:对比之前的单表关联可知,reduce阶段的key必须为关联两表的...
代码星球·2020-03-30

HDFS并行复制Distcp

1)Distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。2)distcp命令是以MR作业(没有R任务)的形式实现的,把文件和目录的列表作为M任务的输入。每一个文件是由一个M任务来拷贝的,distcp尽量把大小之和相同的各个文件导入到同一个M任务中。这样可以每个M任务拷贝的数据量大致相同。3)集群之间的拷...
代码星球·2020-03-30

解读:计数器Counter

Counters:44FileSystemCountersFILE:Numberofbytesread=655771325FILE:Numberofbyteswritten=984244425FILE:Numberofreadoperations=0FILE:Numberoflargereadoperations=0F...
代码星球·2020-03-29

MR案例:链式ChainMapper

类似于Linux管道重定向机制,前一个Map的输出直接作为下一个Map的输入,形成一个流水线。设想这样一个场景:在Map阶段,数据经过mapper01和mapper02处理;在Reduce阶段,数据经过sort和shuffle后,交给对应的reducer处理。reducer处理后并没有直接写入到Hdfs, 而...
代码星球·2020-03-29

TCP协议三次握手过程分析(改)

TCP(TransmissionControlProtocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous---同步的---建立联机)ACK(acknowledgement---确认)PSH(push...

【CUDA学习】GPU硬件结构

GPU的硬件结构,也不是具体的硬件结构,就是与CUDA相关的几个概念:thread,block,grid,warp,sp,sm。sp:最基本的处理单元,streamingprocessor 最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时做处理sm:多个sp加上其他的一些资源组...

【CUDA学习】全局存储器

全局存储器,即普通的显存,整个网格中的任意线程都能读写全局存储器的任意位置。存取延时为400-600clockcycles 非常容易成为性能瓶颈。访问显存时,读取和存储必须对齐,宽度为4Byte。如果没有正确的对齐,读写将被编译器拆分为多次操作,降低访存性能。多个half-warp的读写操作如果能够满足合并访...
代码星球·2020-03-29

【CUDA学习】共享存储器

下面简单介绍一些cuda中的共享存储器和全局存储器 共享存储器,sharedmemory,可以被同一块中的所有线程访问的可读写存储器,生存期是块的生命期。Tesla的每个SM拥有16KB共享存储器。在编程过程中,有静态的sharedmemory动态的sharedmemory静态的sharedmemory在程序中定义  ...
代码星球·2020-03-29

【OpenCV学习】计算两幅图像的重叠区域

问题描述:已知两幅图像Image1和Image2,计算出两幅图像的重叠区域,并在Image1和Image2标识出重叠区域。算法思想:若两幅图像存在重叠区域,则进行图像匹配后,会得到一张完整的全景图,因而可以转换成图像匹配问题。图像匹配问题,可以融合两幅图像,得到全景图,但无法标识出在原图像的重叠区域。将两幅图像都理解为...