自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谦卑t

十年生死两茫茫,写程序,到天亮

  • 博客(94)
  • 收藏
  • 关注

转载 教你如何迅速秒杀掉:99%的海量数据处理面试题

作者:July出处:结构之法算法之道blog前言一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。    毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/...

2018-11-30 09:03:39 131 1

原创 【图文详细 】HDFS面试题:hdfs的回收站(防止误删)

默认是关闭的,需要手动打开,修改配置 core-site.xml                   添加:         <property>             <name>fs.trash.interval</name>                       <value>1440</value>  ...

2018-11-30 08:43:50 578

原创 【图文详细 】HDFS面试题:如何快速杀死一个job

1、执行 hadoop job -list 拿到 job-id2、hadoop job -kill job-id

2018-11-30 08:42:22 1564

原创 【图文详细 】HDFS面试题:如何离开安全模式

hadoop dfsadmin -safemode leave

2018-11-30 08:41:39 375 1

原创 【图文详细 】HDFS面试题:用命令显示所有datanode的健康状态

hadoop dfsadmin -report

2018-11-30 08:40:53 3387

原创 【图文详细 】HDFS面试题:写出你在工作中用过的hdfs的命令

         hadoop fs -put localpath hdfspath    上传文件         hadoop fs -get hdfspath localpath    下载文件         hadoop fs -getmerge hdfspath localpath             hadoop fs -rm -r hdfspath    删除 ...

2018-11-30 08:38:49 596

原创 【图文详细 】HDFS面试题:hadoop1.x和2.x架构上的区别

(1)Hadoop 1.0Hadoop 1.0即第一代Hadoop,由分布式存储系统HDFS和分布式计算框架MapReduce组成,其中,HDFS由一个NameNode和多个DataNode组成,MapReduce由一个JobTracker和多个TaskTracker组成,对应Hadoop版本为Apache Hadoop 0.20.x、1.x、0.21.X、0.22.x和CDH3。(2)H...

2018-11-30 08:34:58 408 1

原创 【图文详细 】HDFS面试题:hadoop的守护线程以及Namenode的职责是什么

五个守护进程:SecondaryNameNodeResourceManagerNodeManagerNameNodeDataNodeNamenode:主节点,存储文件的元数据(文件名,文件目录结构,文件属性——生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等。周期性的接受心跳和块的状态报告信息(包含该DataNode上所有数据块的列表)若接...

2018-11-30 08:33:23 2711

原创 【图文详细 】HDFS面试题:hadoop出现文件块丢失怎么处理

首先需要定位到哪的数据块丢失,可以通过查看日志进行检查和排除,找到文件块丢失的位置后,如果文件不是很重要可以直接删除,然后重新复制到集群上一份即可,如果删除不了,每一个集群都会有备份,需要恢复备份...

2018-11-30 08:32:22 1875

原创 【图文详细 】HDFS面试题:介绍Hadoop中RPC协议,以及底层用什么框架封装的

用于将用户请求中的参数或者应答转换成字节流以便跨机传输。函数调用层:函数调用层主要功能是:定位要调用的函数,并执行该函数,Hadoop采用了java的反射机制和动态代理实现了函数的调用。网络传输层:网络传输层描述了Client和Server之间消息的传输方式,Hadoop采用了基于TCP/IP的socket机制。服务端处理框架:服务端处理框架可被抽象为网络I/O处理模型,她描述了客户端...

2018-11-30 08:31:39 605 1

原创 【图文详细 】HDFS面试题:当小文件数量过多时,如何合并小文件

当每个小文件数据量比较小的时候,可以通过命令的方式进行小文件的合并如:hadoop fs -cat hdfs://cdh5/tmp/lxw1234/*.txt | hadoop fs -appendToFile - hdfs://cdh5/tmp/hdfs_largefile.txt,当数据量比较大的时候建议使用MR进行小文件的合并...

2018-11-29 20:07:37 4099 1

原创 【图文详细 】HDFS面试题:hdfs里的 edits和 fsimage作用

1)、fsimage文件其实是Hadoop文件系统元数据的一个永久性的检查点,其中包含Hadoop文件系统中的所有目录和文件idnode的序列化信息;2)、edits文件存放的是Hadoop文件系统的所有更新操作的路径,文件系统客户端执行的所以写操作首先会被记录到edits文件中。  fsimage和edits文件都是经过序列化的,在NameNode启动的时候,它会将fsimage文件...

2018-11-29 20:06:48 2210

原创 【图文详细 】HDFS面试题:有200M的文件 写入HDFS是先写128M 复制完之后再写72M 还是全部写完再复制

HDFS上在写入数据的时候,首先会对数据切块,然后从客户端到datanode形成一个管道,在至少将一个文件写入hdfs上后,表示文件写入成功,然后进行复制备份操作,所以是全部写完再复制。...

2018-11-29 20:05:56 1655 5

原创 【图文详细 】HDFS面试题:三个 datanode 当有一个 datanode 出现错误会怎样

缓存jar包到执行任务的节点的classpath中,缓存普通文件到task运行节点的classpath中环形缓存区,map阶段后会往本地溢写文件,他们之间会有一个环形缓存区,可以提高效率...

2018-11-29 20:04:43 2796

原创 【图文详细 】HDFS面试题:datanode在什么情况下不会备份

如果设置备份数为1,就不会再去备份

2018-11-29 20:03:39 1419

原创 【图文详细 】HDFS面试题:hdfs 的数据压缩算法?

(1) Gzip 压缩优点:压缩率比较高,而且压缩/解压速度也比较快; hadoop 本身支持,在应用中处理gzip 格式的文件就和直接处理文本一样;大部分 linux 系统都自带 gzip 命令,使用方便.缺点:不支持 split。应用场景: 当每个文件压缩之后在 130M 以内的(1 个块大小内),都可以考虑用 gzip压缩格式。 例如说一天或者一个小时的日志压缩成一个 gzip ...

2018-11-29 20:02:28 1312

原创 【图文详细 】HDFS面试题:有一个很大的文件,内存装不下,如何实现去重?

对文件的每一行计算hash值,按照hash值把该行内容放到某个小文件中,假设需要分成100个小文件,则可以按照(hash % 100)来分发文件内容,然后在小文件中实现去重就可以了。...

2018-11-29 20:00:08 961

原创 【图文详细 】HDFS面试题:hadoop集群的安装过程

1、基础集群环境准备包括修改主机名、设置系统默认启动级别、配置普通用户 sudoer 权限、配置IP、关闭防火墙/关闭 Selinux、添加内网域名映射、安装JDK、同步服务器时间、配置免密登录2、上传安装包,并解压到相关目录3、配置文件的配置4、分发安装包到各个节点,Hadoop 集群的每个节点都需要安装Hadoop 安装包5、在HDFS 主节点上执行命令进行初始化namenod...

2018-11-29 18:52:03 295

原创 【图文详细 】HDFS面试题:什么是大数据

可以从数据的“5V”特性来进行阐述:一、Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。二、Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。三、Value:数据价值密度相...

2018-11-29 18:48:10 480 1

原创 HDFS面试题:hdfs写数据的流程

1、使用HDFS提供的客户端Client,向远程的Namenode发起RPC请求2、Namenode会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;3、当客户端开始写入文件的时候,客户端会将文件切分成多个packets,并在内部以数据队列“data queue(数据队列)”的形式管理这些packets,并向Namenode申请b...

2018-11-29 18:45:53 432

原创 MapReducer面试题:编写MapReduce作业时,如何做到在Reduce阶段,先对key排序,再对value排序?

该问题通常称为“二次排序”,最常用的方法是将value放到key中,实现一个组合Key,然后自定义key排序规则(为key实现一个WritableComparable)。

2018-11-28 19:09:53 787 1

原创 Yarn面试题:Yarn作业执行流程

1.用户向 YARN 中提交应用程序,其中包括 MRAppMaster 程序,启动 MRAppMaster 的命令,用户程序等。2.ResourceManager 为该程序分配第一个 Container,并与对应的 NodeManager 通讯,要求它在这个 Container 中启动应用程序 MRAppMaster。3.MRAppMaster 首先向 ResourceManager 注册...

2018-11-28 19:07:58 2474 1

原创 MepReduce面试题:Yarn支持的调度器和硬件资源种类?

Yarn自带的三种资源调度器,分辨是FIFO、Capacity Scheduler 和Fair Scheduler,其中,,FIFO是默认调度器,属于批量处理调度器,而后两个属于多租户调度器,它采用树形多队列的形式组织资源,更适合公司应用场景YARN支持内存和CPU两种资源类型的管理和分配:YARN对内存资源和CPU资源采用了不同的资源隔离方案。对于内存资源,为了能够更灵活的控制内存使用量,YA...

2018-11-28 19:01:01 983 6

原创 MepReduce面试题:MepReduce数据倾斜

利用combiner提前进行reduce,把一个mapper中的相同key进行了聚合,减少shuffle过程中数据量,以及reduce端的计算量。这种方法可以有效的缓解数据倾斜问题,但是如果导致数据倾斜的key大量分布在不同的mapper的时候,这种方法就不是很有效了。局部聚合加全局聚合。即进行两次mapreduce,第一次在map阶段对那些导致了数据倾斜的key 加上1-n的随机前缀,这样之...

2018-11-28 18:55:48 314 1

原创 MepReduce面试题:MapReduce join

1.map join缺点:只适合大小表join优点:不会出现数据倾斜实现:将小表数据加入缓存分发到各个计算节点,按连接关键字建立索引job.addCacheFile(new URI(“xxxxxxx”));job.setNumReduceTasks(0);2.reduce join缺点:会出现数据倾斜...

2018-11-28 18:54:29 222

原创 MepReduce面试题:MapReduce中排序发生在哪几个阶段?这些排序是否可以避免?为什么?

1.map最后阶段进行partition分区,一般使用job.setPartitionerClass设置的类,如果没有自定义Key的hashCode()方法进行分区。在map阶段写出到环形缓冲区,在环形缓冲区溢写时会进行一次排序,每个分区内部调用job.setSortComparatorClass设置的key的比较函数类进行排序,如果没有则使用Key的实现的compareTo方法。 2.在...

2018-11-28 18:43:20 4421

原创 MepReduce面试题:我们在开发分布式计算 job 时,是否可以去掉 reduce()阶段?为什么?

可以,例如我们的集群就是为了存储文件而设计的,不涉及到数据的计算,就可以将mapReduce都省掉。去掉之后就不排序了,不进行shuffle操作了。比如,流量运营项目中的行为轨迹增强功能部分。...

2018-11-28 18:36:57 819

原创 MapReduce面试题:MapReduce如何实现数据的去重?

在map阶段,map方法的输出key也应该是数据,value 任意值都可以。而map的输入key和value 是已知的,key为每行文本首地址相对于整个文本首地址的偏移量,value 是每行文本,因此在map方法从输入到输出的过程中,只需要将输入的value 赋给输出的key即可。 在mapreduce整个框架下,在map输出和reduce输入之间还有一个shuffule过程,这个是系统自...

2018-11-28 18:34:30 922

原创 MapReduc面试题:MapReduce的流程

Map端:1:读取输入文件的内容,并解析成键值对(<key, value>)的形式,输入文件中的每一行被解析成一个<key, value>对,每个<key, value>对调用一次map()函数。2:用户写map()函数,对输入的<key,value>对进行处理,并输出新的<key,value&a

2018-11-28 17:30:47 530 1

原创 MepReduce面试题:如何决定一个job中需要多少个maptask和reducetask?

如何决定一个job中需要多少个maptask和reducetask?一、影响map个数,即split个数的因素主要有:1)HDFS块的大小,即HDFS中dfs.block.size的值。如果有一个输入文件为1024m,当块为256m时,会被划分为4个split;当块为128m时,会被划分为8个split。2)文件的大小。当块为128m时,如果输入文件为128m,会被划分为1个split;当块...

2018-11-28 15:54:05 3138 1

转载 MapReduce编程案例系列篇(1-9)

MapReduce编程案例系列篇(1-9)由于本人最开始接触大数据工作,主要以写MapReduce程序为主,虽然现在有流行的言论称MapReduce这种运行很慢的分布式计算编程框架将要被各种内存计算框架取代。但是MapRedcue也会吸收很多流行的内存计算的各种优点,我相信,将来,MapReduce绝对不会沦落到要淘汰的地步。甚至会后来居上。在此,本人总结一篇关于MapReduce编程的各种典...

2018-11-27 20:55:27 428

转载 MapReduce--9--求变动版本

MapReduce面试题3–求变动版本1、数据现在有如下一份数据:20170308,黄渤,光环斗地主,8,360手机助手,0.1版本,北京20170308,黄渤,光环斗地主,5,360手机助手,0.1版本,北京20170308,黄渤,光环斗地主,7,360手机助手,0.1版本,北京20170308,黄渤,光环斗地主,10,360手机助手,0.2版本,北京20170308,黄渤,光环斗...

2018-11-27 20:39:12 231

转载 MapReduce--8--求互为好友的好友对

1、数据格式现在有一份如下这种格式的数据:A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E,FH:A,C,D,E,OI:A,OJ:B,OK:A,C,DL:D,E,FM:E,F,GO:A,H,I,J,K数据的格式以“:”分割成两部分,前面是用户,后面是该用户的好友,以...

2018-11-27 20:33:15 334

转载 MapReduce--7--求共同好友--改进版JobControl

MapReduce–7--求共同好友–改进版JobControl在上一节链接: MapReduce–6--共同好友.中,我们发现,一个需求得出解,需要有两个MapReduce程序,那么如果碰到类似的需要运行多个有依赖关系的Job时,我们可以使用JobControl这个工具类,来管理多个具有依赖关系的job的运行, 所以上一MapReduce案例,我做了如下改写:请看具体的代码实现:pac...

2018-11-27 20:26:09 158

转载 MapReduce--6--共同好友

MapReduce面试题1--求共同好友1、数据格式现在有一份数据如下:A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E,FH:A,C,D,E,OI:A,OJ:B,OK:A,C,DL:D,E,FM:E,F,GO:A,H,I,J,K数据以“:”为分割符,分隔...

2018-11-27 20:12:00 181

转载 MapReduce--5--单词去重WordDistinctMR

MapReduce编程之单词去重在MR编程中,最典型的业务就是求sum,max,min,avg,distinct, group by 还有 join 等操作的实现了。事实上,无论是那种业务。 MapReduce的编程框架已经决定了要把mapper阶段计算出来的key-value会按照key做组划分。所以reduceTask当中的reduce方法,其实接收到的参数就是key相同的一组key-va...

2018-11-27 15:46:12 1116

转载 MapReduce--4--Combiner做MapTask局部合并

MapReduce中的Combiner详解 1、什么是CombinerCombiner是MapReduce程序中Mapper和Reducer之外的一种组件,它的作用是在maptask之后给maptask的结果进行局部汇总,以减轻reducetask的计算负载,减少网络传输2、Combiner的编写方式Combiner和Reducer一样,编写一个类,然后继承Reducer,re...

2018-11-27 15:42:42 227

转载 MapReduce--3--常用计数器详解

在本帖中,我想解释Hadoop计数器的含义(在作业完成后通常可以看到的那些计数器)。我一直在分析我们相对较小的集群中长时间运行的作业的匮乏,Hadoop计数器在这个调查中极其重要。不幸的是,我找不到任何能详细解释这些含义的资源。在下面的表格中,我试图清楚地描述Hadoop 2.6版本中每个计数器的含义。信息来源:https://www.mapr.com/blog/management-....

2018-11-27 15:36:19 212

转载 MapReduce--2--MapReduce全局计数器

MapReduce的全局计数器1.1、介绍计数器是用来记录job的执行进度和状态的。它的作用可以理解为日志。我们可以在程序的某个位置插入计数器,记录数据或者进度的变化情况。MapReduce 计数器(Counter)为我们提供一个窗口,用于观察 MapReduce Job 运行期的各种细节数据。对MapReduce性能调优很有帮助,MapReduce性能优化的评估大部分都是基于这些 Co...

2018-11-27 13:26:40 199

转载 MapReduce--1--入门程序WordCount

MapReduce界的helloworld程序就是WordCount程序。所谓WordCount,就是单词计数,就是用来统计一篇或者一堆文本文件中的各单词的出现次数。 按照我们普通的编写代码的逻辑,单词计数程序应该是这样的:1、逐行读取文本内容2、把读取到的一行文本内容切割为一个一个的单词3、把每个单词出现一次的信息记录为一个key-value,也就是“单词-1”4、收集所...

2018-11-27 13:21:54 340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除