Hadoop面试题

Hadoop面试题
Hadoop面试题

1.Hadoop集群可以运行的3个模式?

单机(本地)模式

伪分布式模式

全分布式模式

2. 单机(本地)模式中的注意点?

在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM 上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。

3. 伪分布模式中的注意点?

伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。

4. VM是否可以称为Pseudo?

不是,两个事物,同时Pseudo只针对Hadoop。

5. 全分布模式又有什么注意点?

全分布模式通常被用于生产环境,这里我们使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及task tracker运行的主机。在分布式环境下,主节点和从节点会分开。

6. Hadoop是否遵循UNIX模式?

是的,在UNIX用例下,Hadoop还拥有“conf”目录。

7. Hadoop安装在什么目录下?

Cloudera和Apache使用相同的目录结构,Hadoop被安装在

cd/usr/lib/hadoop-0.20/。

8. Namenode、Job tracker和task tracker的端口号是?

Namenode,70;Job tracker,30;Task tracker,60。

9. Hadoop的核心配置是什么?

Hadoop的核心配置通过两个xml文件来完成:1,hadoop-default.xml;2,hadoop-site.xml。这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在。

10. 那当下又该如何配置?

Hadoop现在拥有3个配置文件:1,core-site.xml;2,hdfs-site.xml;3,mapred-site.xml。这些文件都保存在conf/子目录下。

11. RAM的溢出因子是?

溢出因子(Spill factor)是临时文件中储存文件的大小,也就是Hadoop-temp目录。

12. fs.mapr.working.dir只是单一的目录?

fs.mapr.working.dir只是一个目录。

13. hdfs-site.xml的3个主要属性?

https://www.360docs.net/doc/ac14683741.html,.dir决定的是元数据存储的路径以及DFS的存储方式(磁盘或是远端)dfs.data.dir决定的是数据存储的路径

fs.checkpoint.dir用于第二Namenode

14. 如何退出输入模式?

退出输入的方式有:1,按ESC;2,键入:q(如果你没有输入任何当下)或者键入:wq (如果你已经输入当下),并且按下Enter。

15. 当你输入hadoopfsck /造成“connection refused java exception’”时,系统究竟发生了什么?

这意味着Namenode没有运行在你的VM之上。

16. 我们使用Ubuntu及Cloudera,那么我们该去哪里下载Hadoop,或者是默认就与Ubuntu一起安装?

这个属于Hadoop的默认配置,你必须从Cloudera或者Edureka的dropbox下载,然后在你的系统上运行。当然,你也可以自己配置,但是你需要一个Linux box,Ubuntu或者是Red Hat。在Cloudera网站或者是Edureka的Dropbox中有安装步骤。

17. “jps”命令的用处?

这个命令可以检查Namenode、Datanode、Task Tracker、Job Tracker是否正常工作。

18. 如何重启Namenode?

点击stop-all.sh,再点击start-all.sh。

键入sudo hdfs(Enter),su-hdfs (Enter),/etc/init.d/ha(Enter),及

/etc/init.d/hadoop-0.20-namenode start(Enter)。

19. Fsck的全名?

全名是:File System Check。

20. 如何检查Namenode是否正常运行?

如果要检查Namenode是否正常工作,使用命令/etc/init.d/hadoop-0.20-namenode status或者就是简单的jps。

21. mapred.job.tracker命令的作用?

可以让你知道哪个节点是Job Tracker。

22. /etc /init.d命令的作用是?

/etc /init.d说明了守护进程(服务)的位置或状态,其实是LINUX特性,和Hadoop

关系不大。

23. 如何在浏览器中查找Namenode?

如果你确实需要在浏览器中查找Namenode,你不再需要localhost:8021,Namenode的端口号是50070。

24. 如何从SU转到Cloudera?

从SU转到Cloudera只需要键入exit。

25. 启动和关闭命令会用到哪些文件?

Slaves及Masters。

26. Slaves由什么组成?

Slaves由主机的列表组成,每台1行,用于说明数据节点。

27. Masters由什么组成?

Masters同样是主机的列表组成,每台一行,用于说明第二Namenode服务器。28. hadoop-env.sh是用于做什么的?

hadoop-env.sh提供了Hadoop中. JAVA_HOME的运行环境。

29. Master文件是否提供了多个入口?

是的你可以拥有多个Master文件接口。

30. Hadoop-env.sh文件当下的位置?

hadoop-env.sh现在位于conf。

31. 在Hadoop_PID_DIR中,PID代表了什么?

PID代表了“Process ID”。

32. /var/hadoop/pids用于做什么?

/var/hadoop/pids用来存储PID。

33. hadoop-metrics.properties文件的作用是?

hadoop-metrics.properties被用做“Reporting”,控制Hadoop报告,初始状态是“not to report”。

34. Hadoop需求什么样的网络?

Hadoop核心使用Shell(SSH)来驱动从节点上的服务器进程,并在主节点和从节点之间使用password-less SSH连接。

35. 全分布式环境下为什么需求password-less SSH?

这主要因为集群中通信过于频繁,Job Tracker需要尽可能快的给Task Tracker发布任务。

36. 这会导致安全问题吗?

完全不用担心。Hadoop集群是完全隔离的,通常情况下无法从互联网进行操作。与众不同的配置,因此我们完全不需要在意这种级别的安全漏洞,比如说通过互联网侵入等等。Hadoop为机器之间的连接提供了一个相对安全的方式。

37. SSH工作的端口号是?

SSH工作的端口号是NO.22,当然可以通过它来配置,22是默认的端口号。

38. SSH中的注意点还包括?

SSH只是个安全的shell通信,可以把它当做NO.22上的一种协议,只需要配置一个密码就可以安全的访问。

39. 为什么SSH本地主机需要密码?

在SSH中使用密码主要是增加安全性,在某些情况下也根本不会设置密码通信。40. 如果在SSH中添加key,是否还需要设置密码?

是的,即使在SSH中添加了key,还是需要设置密码。

41. 假如Namenode中没有数据会怎么样?

没有数据的Namenode就不能称之为Namenode,通常情况下,Namenode肯定会有数据。

42. 当Job Tracker宕掉时,Namenode会发生什么?

当Job Tracker失败时,集群仍然可以正常工作,只要Namenode没问题。

43. 是客户端还是Namenode决定输入的分片?

这并不是客户端决定的,在配置文件中以及决定分片细则。

44. 是否可以自行搭建Hadoop集群?

是的,只要对Hadoop环境足够熟悉,你完全可以这么做。

45. 是否可以在Windows上运行Hadoop?

你最好不要这么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系统。在Hadoop安装中,Windows通常不会被使用,因为会出现各种各样的问题。因此,Windows绝对不是Hadoop的推荐系统。

Hadoop就业面试宝典

1.0 简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤,列出具体步骤更好。答:1使用root账户登录 2 修改IP 3 修改host主机名 4 配置SSH 免密码登录5 关闭防火墙6 安装JDK 7 解压hadoop安装包8 配置hadoop的核心文件hadoop-env.sh,core-site.xml , mapred-site.xml ,hdfs-site.xml 9 配置hadoop环境变量10 格式化hadoop namenode-format 11 启动节点start-all.sh

2.0 请;列出正常的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别都是什么,请尽量列的详细一些。答:namenode:管理集群,存储数据的原信息,并管理记录datanode中的文件信息。Secondname:可以做冷备,对一定范围内数据做快照性备份。Datanode:存储数据Jobtracker :管理任务,并将任务分配给tasktracker。Tasktracker: 执行JobTracker分配的任务。

3.0请写出以下的shell命令(1)杀死一个job (2)删除hdfs上的/tmp/aaa目录(3)加入一个新的存储节点和删除一个节点需要执行的命令答:(1)hadoop job –list 得到job

(2)hadoop 的id,然后执行hadoop job -kill jobId就可以杀死一个指定jobId的job工作了。

fs -rmr /tmp/aaa (3) 增加一个新的节点在新的几点上执行Hadoop daemon.sh start datanode Hadooop daemon.sh start tasktracker 然后在主节点中执行hadoop dfsadmin -refreshnodes 删除一个节点的时候,只需要在主节点执行hadoop mradmin -refreshnodes

4.0 请列出你所知道的hadoop调度器,并简要说明其工作方法答:Fifo schedular :默认,先进先出的原则Capacity schedular :计算能力调度器,选择占用最小、优先级高的先执行,依此类推。Fair schedular:公平调度,所有的job 具有相同的资源。

5.0 请列出你在工作中使用过的开发mapreduce的语言答:java,hive

6.0 当前日志采样格式为 a , b , c , d b , b , f , e a ,

a , c , f 请你用最熟悉的语言编写mapreduce,计算第四列每个元素出现的个数Static final String

答:public class WordCount1 { public static final String INPUT_PATH = "hdfs://hadoop0:9000/in"; public static final String OUT_PATH = "hdfs://hadoop0:9000/out"; public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); FileSystem fileSystem = FileSystem.get(conf); if(fileSystem.exists(new Path(OUT_PATH))){} fileSystem.delete(new Path(OUT_PATH),true); Job job = new Job(conf,WordCount1.class.getSimpleName()); //1.0读取文件,解析成key,value对FileInputFormat.setInputPaths(job,new Path(INPUT_PATH)); //2.0写上自己的逻辑,对输入的可以,value进行处理,转换成新的key,value对进行输出job.setMapperClass(MyMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(LongWritable.class); //3.0对输出后的数据进行分区//4.0对分区后的数据进行排序,分组,相同key的value放到一个集合中//5.0对分组后的数据进行规约//6.0对通过网络将map输出的数据拷贝到reduce节点//7.0 写上自己的reduce函数逻辑,对map输出的数据进行处理job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(LongWritable.class); FileOutputFormat.setOutputPath(job, new Path(OUT_PATH)); job.waitForCompletion(true); } static class MyMapper extends Mapper{ @Override protected void map(LongWritable k1, Text v1,

org.apache.hadoop.mapreduce.Mapper.Context context) throws IOException, InterruptedException {

String[] split = v1.toString().split("\t"); for(String words :split){ context.write(split[3], 1); } } } static class MyReducer extends Reducer{ protected void reduce(Text k2, Iterable v2, org.apache.hadoop.mapreduce.Reducer.Context context) throws IOException, InterruptedException { Long count = 0L; for(LongWritable time : v2){ count += time.get(); } context.write(v2, new LongWritable(count)); } } }

7.0 你认为用java ,streaming ,pipe方式开发map/reduce ,各有哪些优点就用过java 和hiveQL。Java 写mapreduce 可以实现复杂的逻辑,如果需求简单,则显得繁琐。HiveQL 基本都是针对hive 中的表数据进行编写,但对复杂的逻辑很难进行实现。写起来简单。

8.0 hive有哪些方式保存元数据,各有哪些优点三种:内存数据库derby,挺小,不常用。本地mysql。。常用远程端mysql。。不常用上网上找了下专业名称:single user mode..multi user mode...remote user mode

9.0 请简述hadoop怎样实现二级排序第一种方法是,Reducer将给定key的所有值都缓存起来,然后对它们再做一个Reducer内排序。但是,由于Reducer需要保存给定key的所有值,可能会导致出现内存耗尽的错误。第二种方法是,将值的一部分或整个值加入原始key,生成一个合成key。这两种方法各有优势,第一种方法可能会更快一些(但有内存耗尽的危险),第二种方法则是将排序的任务交给MapReduce框架,更符合Hadoop/Reduce的设计思想。这篇文章里选择的是第二种。我们将编写一个Partitioner,确保拥有相同key(原始key,不包括添加的部分)的所有数据被发往同一个Reducer,还将编写一个Comparator,以便数据到达Reducer后即按原始key分组。

10.简述hadoop实现jion的几种方法

利用dataJoin来实现mapreduce的jion问题。

11.0 请用java实现非递归二分查询 1. public class BinarySearchClass 2. { 3. 4. public static int binary_search(int[] array, int value) 5. { 6. int beginIndex = 0;// 低位下标7. int endIndex = array.length - 1;// 高位下标8. int midIndex = -1; 9. while (beginIndex <= endIndex) { 10. midIndex = beginIndex + (endIndex - beginIndex) / 2;//防止溢出11. if (value == array[midIndex]) { 12. return midIndex; 13. } else if (value < array[midIndex]) { 14. endIndex = midIndex - 1;

15. } else { 16. beginIndex = midIndex + 1;

17. } 18. } 19. return -1; 20. //找到了,返回找到的数值的下标,没找到,返回-1 21. } 22. 23. 24. //start 提示:自动阅卷起始唯一标识,请勿删除或增加。25. public static void main(String[] args) 26. { 27. System.out.println("Start..."); 28. int[] myArray = new int[] { 1, 2, 3, 5, 6, 7, 8, 9 }; 29. System.out.println("查找数字8的下标:"); 30. System.out.println(binary_search(myArray, 8));

31. } 32. //end //提示:自动阅卷结束唯一标识,请勿删除或增加。33. } 12.0 请简述mapreduce中的combine和partion的作用答:combiner是发生在map的最后一个阶段,其原理也是一个小型的reducer,主要作用是减少输出到reduce的个数,减少

reducer的输入,提高reducer的执行效率。Partion的主要作用就是指定输出到reduce的个数的。

13.0 hive内部表和外部表的区别Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,

而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。

14. Hbase的rowKey怎么创建比较好?列簇怎么创建比较好?答:rowKey最好要创建有规则的rowKey,即最好是有序的。HBase中一张表最好只创建一到两个列族比较好,因为HBase 不能很好的处理多个列族。

15. 用mapreduce怎么处理数据倾斜问题

在mapreduce聚合key中所有values的时候,如果一个key对应了很多values,就会产生数据倾斜的问题。数据倾斜主要就是某个key下面对应的value太多,导致某个reduce节点执行的数据过多,然后产生某个或者某几个reduce节点的执行效率过低,导致整个集群中的任务执行效率较慢,可以使用partion对数据过多的节点进行再划分,划分成多个小的数据块,输入到reduce进行处理。

16. hadoop框架怎么来优化答:hadoop优化的范围太宽泛了,可以从某个方面具体来谈一谈,比如说HBase的rowKey和列族的创建的来进行数据存储的优化,可以从网络的拷贝对数据的优化,可以从mapreduce对数据的处理来谈优化,可以从参数方面来说优化等。17. hbase内部机制是什么答:内部机制更多的是借助nosql数据的关系模型,是建立的hdfs 之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。

18. 我们在开发分布式计算job的时候,是否可以去掉reduce阶段答:可以,例如我们的集群就是为了存储文件而设计的,不涉及到数据的计算,就可以将mapReduce都省掉。

19 hdfs的数据压缩算法答:可以使用sequenceFile和mapFile来对小文件进行压缩,压缩成大文件,然后存储,减轻namenode的内存压力。

20. mapreduce的调度模式答:公平调度模式和容量调度模式

21. hive底层与数据库交互原理答:hive有一套自己的sql解析引擎,称为metastore,存储在mysql或者derby数据库中,可以将sql语句转化为mapreducejob任务执行。

22. hbase过滤器实现原则答:过滤器必须实现HBase Jar包中的Filter接口,或者继承扩展一个实现了该接口的抽象类

23. reduce之后数据的输出量有多大

24. 现场出问题测试mapreduce掌握情况和hive的ql语言掌握情况

25.datanode在什么情况下不会备份数据答:在配置文件中设置文件副本数为1

https://www.360docs.net/doc/ac14683741.html,bine出现在哪个过程答:map阶段的最后一个过程。

27. hdfs的体系结构答:HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;集群中的DataNode管理存储的数据

100. 假设我们有其他的日志是不是可以对这个日志有其他的业务分析?这些业务分析都有什么?

101. job 的运行流程(提交一个job 的流程)?

102Hadoop 生态圈中各种框架的运用场景?

103. hive 中的压缩格式RCFile、TextFile、SequenceFile 各有什么区别?以上3 种格式一样大的文件哪个占用空间大小..等等

104假如:Flume 收集到的数据很多个小文件,我需要写MR 处理时将这些文件合并(是在MR 中进行优化,不让一个小文件一个MapReduce) 他们公司主要做的是中国电信的流量计费为主,专门写MR。

105. 解释“hadoop”和“hadoop 生态系统”两个概念

106. 说明Hadoop 2.0 的基本构成。

107. 相比于HDFS1.0, HDFS 2.0 最主要的改进在哪几方面?

108. 试使用“步骤1,步骤2,步骤3…..”说明YARN 中运行应用程序的基本流程。109. MapReduce 2.0”与“YARN”是否等同,尝试解释说明

110. MapReduce 2.0 中,MRAppMaster 主要作用是什么,MRAppMaster 如何实现任务容错的?

111. 为什么会产生yarn,它解决了什么问题,有什么优势?

112. 集群多少台,数据量多大,吞吐量是多大,每天处理多少G 的数据?

113. 自动化运维了解过吗,你们是否是自动化运维管理?

114. 数据备份,你们是多少份,如果数据超过存储容量,你们怎么处理?

115. 怎么提升多个JOB 同时执行带来的压力,如何优化,说说思路?

116. 你们用HBASE 存储什么数据?

117. 你们的hive 处理数据能达到的指标是多少?

118.hadoop中RecorderReader的作用是什么???

1、在hadoop中定义的主要公用InputFormat中,哪个是默认值?FileInputFormat

2、两个类TextInputFormat和KeyValueInputFormat的区别是什么?答:TextInputFormat主要是用来格式化输入的文本文件的,KeyValueInputFormat则主要是用来指定输入输出的key,value类型的

3、在一个运行的hadoop任务中,什么是InputSplit?InputSplit是InputFormat中的一个方法,主要是用来切割输入文件的,将输入文件切分成多个小文件,然后每个小文件对应一个map任务

4、Hadoop框架中文件拆分是怎么调用的?InputFormat --> TextInputFormat --> RecordReader --> LineRecordReader --> LineReader

5、参考下列M/R系统的场景:hdfs块大小为64MB,输入类为FileInputFormat,有3个文件的大小分别为64KB, 65MB, 127MB Hadoop框架会把这些文件拆分为多少块?5块

6、hadoop中RecordReader的作用是什么?RecorderReader是一个接口,主要是用来读取文件的输入键值对的,我们也可以自定义输入的key,value对的读取规则

7、Map阶段结束后,Hadoop框架会处理:Partitioning, Shuffle和Sort,在这个阶段都发生了什么?Partition是对输出的key,value进行分区,可以自定义分区,按照业务需求,将map的输出归分到多个不同的文件中将map的输出作为输入传给reducer 称为shuffle sort 是排序的过程,将map的输出,作为reduce的输入之前,我们可以自定义排序,按照key

来对map的输出进行排序

8、如果没有定义partitioner,那数据在被送达reducer前是如何被分区的?hadoop有一个默认的分区类,HashPartioer类,通过对输入的k2去hash值来确认map输出的k2,v2送到哪一个reduce中去执行。

9、什么是combiner?

combiner就是规约操作,通过对map输出的数量进行规约,可以减少reduce的数量,提高执行效率combiner的输入输出类型必须和mapper的输出以及reducer的输入类型一致10、分别举例什么情况要使用combiner,什么情况不使用?求平均数的时候就不需要用combiner,因为不会减少reduce执行数量。在其他的时候,可以依据情况,使用combiner,来减少map的输出数量,减少拷贝到reduce的文件,从而减轻reduce的压力,节省网络开销,提升执行效率

11、Hadoop中job和tasks之间的区别是什么?首先通过jobTracker接收到了用户的操作请求之后,就会产生job任务,job然后将任务分配给tasks分配给多个机器去并行的执行,通过将job任务分解为多个tasks任务并行的执行,提高了执行的效率。

12、hadoop中通过拆分任务到多个节点运行来实现并行计算,但某些节点运行较慢会拖慢整个任务的运行,hadoop采用全程机制应对这个情况?对于那些较慢的tasks任务,hadoop 13、流API中的什么特性带来可以使map/reduce任务可以以不同语言(如perl, ruby, awk等)实现的灵活性?

14、有可能使hadoop任务输出到多个目录中吗?如果可以,怎么做?可以,hadoop

15、如何为一个hadoop任务设置mappers的数量?1 map的数量map的数量通常是由hadoop集群的DFS块大小确定的,也就是输入文件的总块数,正常的map数量的并行规模大致是每一个Node是10~100个,对于CPU消耗较小的作业可以设置Map数量为300个左右,但是由于hadoop的没一个任务在初始化时需要一定的时间,因此比较合理的情况是每个map执行的时间至少超过1分钟。具体的数据分片是这样的,InputFormat在默认情况下会根据hadoop集群的DFS块大小进行分片,每一个分片会由一个map任务来进行处理,当然用户还是可以通过参数mapred.min.split.size参数在作业提交客户端进行自定义设置。还有一个重要参数就是mapred.map.tasks,这个参数设置的map数量仅仅是一个提示,只有当InputFormat 决定了map任务的个数比mapred.map.tasks值小时才起作用。同样,Map任务的个数也能通过使用JobConf 的conf.setNumMapTasks(int num)方法来手动地设置。这个方法能够用来增加map任务的个数,但是不能设定任务的个数小于

Hadoop系统通过分割输入数据得到的值。当然为了提高集群的并发效率,可以设置一个默认的map数量,当用户的map数量较小或者比本身自动分割的值还小时可以使用一个相对交大的默认值,从而提高整体hadoop集群的效率。

16、如何为一个hadoop任务设置要创建reduder的数量?2 reduece的数量reduce在运行时往往需要从相关map端复制数据到reduce节点来处理,因此相比于map任务。reduce 节点资源是相对比较缺少的,同时相对运行较慢,正确的reduce任务的个数应该是0.95或者1.75 *(节点数×mapred.tasktracker.tasks.maximum参数值)。如果任务数是节点个数的0.95倍,那么所有的reduce任务能够在map任务的输出传输结束后同时开始运行。如果任务数是节点个数的1.75倍,那么高速的节点会在完成他们第一批reduce任务计算之后开始计算第二批reduce任务,这样的情况更有利于负载均衡。同时需要注意增加reduce的数量虽然会增加系统的资源开销,但是可以改善负载匀衡,降低任务失败带来的负面影响。同样,Reduce任务也能够与map任务一样,通过设定JobConf 的conf.setNumReduceTasks(int num)方法来增加任务个数。

xxx信息技术有限公司1、你们的集群规模?开发集群:10台(8台可用)8核cpu 2、你们的数据是用什么导入到数据库的?导入到什么数据库?处理之前的导入:通过hadoop 命令导入到hdfs文件系统处理完成之后的导出:利用hive处理完成之后的数据,通过sqoop 导出到mysql数据库中,以供报表层使用3、你们业务数据量多大?有多少行数据?(面试了三家,都问这个问题) 开发时使用的是部分数据,不是全量数据,有将近一亿行(8、9千万,具体不详,一般开发中也没人会特别关心这个问题)4、你们处理数据是直接读数据库的数据还是读文本数据?将日志数据导入到hdfs之后进行处理5、你们写hive的hql语句,大概有多少条?不清楚,我自己写的时候也没有做过统计6、你们提交的job 任务大概有多少个?这些job执行完大概用多少时间?(面试了三家,都问这个问题) 没统计过,加上测试的,会与很多

7、hive跟hbase的区别是?这个可以百度8、你在项目中主要的工作任务是?利用hive 分析数据9、你在项目中遇到了哪些难题,是怎么解决的?某些任务执行时间过长,且失败率过高,检查日志后发现没有执行完就失败,原因出在hadoop的job的timeout过短(相对于集群的能力来说),设置长一点即可10、你自己写过udf函数么?写了哪些?这个我没有写过11、你的项目提交到job的时候数据量有多大?(面试了三家,都问这个问题) 不清楚是要问什么12、reduce后输出的数据量有多大?不清楚 1.一个网络商城1天大概产生多少G的日志?2.大概有多少条日志记录(在不清洗的情况下)?3.日访问量大概有多少个?4.注册数大概多少? 5.我们的日志是不是除了apache的访问日志是不是还有其他的日志? 6.假设我们有其他的日志是不是可以对这个日志有其他的业务分析?这些业务分析都有什么(*********) 1.问:你们的服务器有多少台?2.问:你们服务器的内存多大? 3.问:你们的服务器怎么分布的?(这里说地理位置分布,最好也从机架方面也谈谈)4.问:你平常在公司都干些什么(一些建议)下面是HBASE我非常不懂的地方:1.hbase 怎么预分区? 2.hbase怎么给web前台提供接口来访问(HTABLE可以提供对HTABLE的访问,但是怎么查询同一条记录的多个版本数据)? 3.htable API有没有线程安全问题,在程序中是单例还是多例? 4.我们的hbase大概在公司业务中(主要是网上商城)大概都几个表,几个表簇,大概都存什么样的数据? 5.hbase的并发问题?

1、将现有逻辑在Spark上面实现。

2、数据倾斜怎么处理?

数据倾斜有很多解决方案,本例子简要介绍一种实现方式,假设表A 和表B连接,表A 数据倾斜,只有一个key倾斜,首先对A进行采样,统计出最倾斜的key,将A 表分隔为A1 只有倾斜key,A2 不包含倾斜key,然后分别与表B 连接。

最后将结果合并,union

3 、各完成一个awk和sed的例子,最简单的应用即可,并说明。

cat /etc/passwd |awk -F ':' '{print $1}' 读取文件,指定文本分隔符,然后打印第一个域

cat test.sh | sed '2,50d' 读取文件的每一行,然后对每一行进行处理后打印在控制台,有很多模式,很多方法。还可以直接修改文件

4、简要描述你知道的数据挖掘算法和使用场景

(一)基于分类模型的案例

(1)垃圾邮件的判别通常会采用朴素贝叶斯的方法进行判别

(2)医学上的肿瘤判断通过分类模型识别

(二)基于预测模型的案例

(1)红酒品质的判断分类回归树模型进行预测和判断红酒的品质

(2)搜索引擎的搜索量和股价波动

(三)基于关联分析的案例:沃尔玛的啤酒尿布

(四)基于聚类分析的案例:零售客户细分

(五)基于异常值分析的案例:支付中的交易欺诈侦测

(六)基于协同过滤的案例:电商猜你喜欢和推荐引擎

(七)基于社会网络分析的案例:电信中的种子客户

(八)基于文本分析的案例

(1)字符识别:扫描王APP

(2)文学著作与统计:红楼梦归属

5、列举你知道的常用的Hadoop管理和监控的命令、比如hdfs dfs -mkdir /usr

-ls -cat -text -cp -put -chmod -chown

-du -get -copyFromLocal -copyToLocal

-mv -rm - tail -chgrp

6、评述hadoop运行原理

站在高处,大的方面讲解

1、有hdfs 负责数据存放是Hadoop的分布式文件存储系统

将大文件分解为多个Block,每个Block保存多个副本。提供容错机制,副本丢失或者宕机时自动恢复。

默认每个Block保存3个副本,64M为1个Block。

将Block按照key-value映射到内存当中。

2、有mapreduce负责计算,Map(映射)和Reduce(归约)

7、讲述mapreduce的原理

ApplicationMaster 是一个详细的框架库,它结合从ResourceManager 获得的资源和NodeManager 协同工作来运行和监控任务。

ResourceManager 支持分层级的应用队列,这些队列享有集群一定比例的资源。从某种意义上讲它就是一个纯粹的调度器,

ApplicationMaster 的职责有:向调度器索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。

输入分片(input split)

map阶段:

combiner阶段:

8、JVM&垃圾回收机制

三个代:年轻代(Young Generation)、年老代(Old Generation)和持久代(Permanent Generation)。

9、找出公共好友:

https://www.360docs.net/doc/ac14683741.html,/lucius/p/3483494.html

https://www.360docs.net/doc/ac14683741.html,/thread-18826-1-1.html

原理:A 有好友B ,C,D F 有好友D E F

其实A 的好友也是他好友的好友

其实F 的好友也是他的好友的好友

那么D 的共同好友就是 A F

10、combiner作用

Combiner最基本是实现本地key的聚合,对map输出的key排序、value进行迭代。Combiner还有本地reduce功能(其本质上就是一个reduce):

使用Combiner先完成在map端的本地聚合,可以减少网络传输数据量,提高性能。

平均数的归约算法不能多次调用。

11、在mr环节中,那些环节需要优化,如何优化,请详细说明。

1、setNumReduceTasks 适当的设置reduce的数量,如果数据量比较大,那么可以增加reduce的数量

2、适当的时候使用combine 函数,减少网络传输数据量

3、压缩map和reduce的输出数据

4、使用SequenceFile二进制文件。

5、通过application 的ui页面观察job的运行参数

6、太多小文件,造成map任务过多的问题,应该可以先合并小文件,或者有一个特定的map作为处理小文件的输入

7、map端效率低原因分析

源文件的大小远小于HDFS的块的大小。这意味着任务的开启和停止要耗费更多的时间,就没有足够的时间来读取并处理输入数据。

源文件无法分块。这导致需要通过网络IO从其他节点读取文件块。

一个节点的本地磁盘或磁盘控制器运行在降级模式中,读取写入性能都很差。这会影响某个节点,而不是全部节点。

源文件不来自于HDFS。则可能是Hadoop节点和数据源之间的延迟导致了性能低下。

Map任务从其他数据节点读取数据。可以从JobTracker的map任务细节信息和任务运行尝试中找到输入块的位置。如果输入块的位置不是任务执行的节点,那就不是本地数据了。技术33 Reduce实例不足或过多

技术34 诊断reduce段的数据倾斜的问题

技术35 确定reduce任务是否存在整体吞吐量过低

技术36 缓慢的洗牌(shuffle)和排序

技术37 作业竞争和调度器限制

1.查找硬件的失效

CPU竞争

3 内存交换

4 磁盘健康

网络

技术46 规避使用reduce

技术48 使用combine

技术50 收集倾斜数据

减小Reduce端数据倾斜的性能损失

抽样和范围分区

方法2:自定义分区

方法3:Combine

方法4:Map端连接和半连接

数据大小倾斜的自定义策略

1.正则表达式(少用)

2.字符串令牌化(TOKENIZATION)Apache commons中的StringUtils类效率要更好

3.对象重用

4字符串连接

5对象的内存资源消耗

6.4.6 优化数据序列化

压缩

二进制文件格式使用二进制文件格式,如Avro和SequenceFile,可以使数据的表达更为紧凑,并提高编组(marshalling)和逆编组的效率,相比文本格式要更为高效。

确保精确的度量,理解如何获得MapReduce和系统的性能指标

使用性能指标来减少潜在的性能问题

通过检查MapRecue/HDFS配置,优化MapReduce洗牌/排序阶段,优化用户JAVA代码,来修复常见的性能问题

spark通信模块

1、spark的cluster manager可以有local , standalone, mesos , yarn等部署方式,为了

集中通信方式

1、rpc remote produce call

spark的通信机制:

akka的优势和特性如下:

1、并行和分布式:akka在设计时采用了异步通信和分布式架构

2、可靠性:在本地、远程都有监控和恢复机制

3、高性能:在单机环境中美妙可以发送50000000 个消息,1GB内存中可以创建和保存2500000个actor对象

4、去中心,区别于master-slave模式,采取无中心节点的架构

5、可拓展性:可以在分布式环境下记性scala out ,线性扩充计算能力。

可以看到akka具有强大的并发处理能力。

4.5容错机制

4.5.1 lineage机制rdd的依赖

有宽依赖,还有窄依赖

宽依赖的:lineage 根据分区,来进行恢复,很简单

窄依赖:一个子的rdd有多个父亲,比较麻烦一点,所以增加了checkpoin ,检查点机制,其实就是备份的意思,来做容错处理

可以通过sparkcontext.setcheckpointdir()设置检查点数据的存储路径,进而将数据存储备份,然后spark删除所有已经做检查点的rdd的祖先rdd依赖。这个操作需要在所有需要对这个rdd所做的操作完成之后再做。

官方建议:做检查点的rdd最好是在内存中已经缓存的rdd,否则这个rdd在持久化的文件中需要重新计算,产生io开销。

4.6shuffler机制

shufffler write

shuffler fetch

shuffler aggenr

spark在执行过程中中driver控制应用生命周期,在调度中,spark采用了经典的fifo 和fair 等调度算法对内部的资源实现不同级别的调度。在spark的io中,将数据抽象为以快为单位进行管理,rdd中的一个分区就是需要处理的一个快,集群中的通信对于命令和状态的传递极为重要,spark通过akka框架进行集群消息通信,spark通过lineage和checkpoint机制进行容错性保证,lineage进行重算操作,checkpoint进行数据冗余备份,最后介绍了spark中的shuffle机制,spark也借鉴了mapreduce模型,但是其shuffle 机制进行了创新与优化,第五章:spark 开发环境配置和流程

Hadoop题库

1. 以下哪一项不属于Hadoop可以运行的模式___C___。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 2. Hadoop的作者是下面哪一位__B____。 A. Martin Fowler B. Doug cutting C. Kent Beck D. Grace Hopper 3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。 A. TaskTracker B. DataNode C. SecondaryNameNode D. Jobtracker 4. HDFS 默认 Block Size的大小是___B___。 5. 下列哪项通常是集群的最主要瓶颈____C__。 A. CPU B. 网络

C. 磁盘IO D. 内存 6. 下列关于MapReduce说法不正确的是_____C_。 A. MapReduce是一种计算框架 B. MapReduce来源于google的学术论文 C. MapReduce程序只能用java语言编写 D. MapReduce隐藏了并行计算的细节,方便使用 8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。 A.一次写入,少次读 B.多次写入,少次读 C.多次写入,多次读 D.一次写入,多次读 9. HBase依靠__A____存储底层数据。 A. HDFS B. Hadoop C. Memory D. MapReduce 10. HBase依赖___D___提供强大的计算能力。 A. Zookeeper B. Chubby C. RPC D. MapReduce

运维面试题 含答案

运维工程师面试题 姓名: 答题时间: 1.新安装MYSQL后怎样提升MYSQL的安全级别? A.修改mysql默认端口 下可以通过iptables来限制访问mysql端口的IP地址 C.对所有用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址) 特权账号的处理(建议给root账号设置强密码,并指定只允许本地登录) E.开启二进制查询日志和慢查询日志 安装目录及数据存储目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限 G.删除无用mysql账号和删除无用的数据库(安装好的mysql默认会有个test库,可将其删除) 2.MYSQL的主从原理,怎么配置文件? 整体上来说,复制有3个步骤: 将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events); 将master的binary log events拷贝到它的中继日志(relay log); 重做中继日志中的事件,将改变反映它自己的数据。 3.mysql主从复制的优点 <1> 如果主服务器出现问题,可以快速切换到从服务器提供的服务; <2> 可以在从服务器上执行查询操作,降低主服务器的访问压力;

<3> 可以在从服务器上执行备份,以避免备份期间影响主服务器的服务。 4.Mysql复制的基本原理过程 (1)Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; (2)Master接收到来自Slave的IO线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave端的IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在Master端binary log文件的名称以及在Binary log中的位置; (3)Slave的IO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog 文件()的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我” (4)Slave的SQL线程检测到Relay Log中新增加了内容后,会马上解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查询或操作语句,这样,实际上就是在master端和Slave端执行了同样的查询或操作语句,所以两端的数据是完全一样的。 5.为MYSQL添加一个用户? mysql> grant select,insert,update,delete on book.* to test2@localhost identified by “abc”;? ? #增加test2用户,密码为abc。并只能在localhost这台主机上登录,并且只能访问book这个库中的表,具有查询,插入,更新,删除权限; 语法:mysql> GRANT <权限> ON <库>.<表> TO ‘用户’@’主机名’ identified by “密码”; 6.写一个脚本将数据库备份并打包至远程服务器/backup目录下。 mount /mnt cd /mnt /usr/local/mysql/bin/mysqldump -hlocalhost -uroot test > tar czf rm -f

Hadoop试题题库

精品文档 1. 以下哪一项不属于Hadoop可以运行的模式___C___。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 2. Hadoop的作者是下面哪一位__B____。 A. Martin Fowler B. Doug cutting C. Kent Beck D. Grace Hopper 3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。 A. TaskTracker B. DataNode C. SecondaryNameNode D. Jobtracker 4. HDFS 默认 Block Size的大小是___B___。 A.32MB B.64MB C.128MB D.256M 5. 下列哪项通常是集群的最主要瓶颈____C__。 A. CPU B. 网络 C. 磁盘IO D. 内存 6. 下列关于MapReduce说法不正确的是_____C_。 A. MapReduce是一种计算框架 B. MapReduce来源于google的学术论文 C. MapReduce程序只能用java语言编写 D. MapReduce隐藏了并行计算的细节,方便使用 8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、 高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。 A.一次写入,少次读 B.多次写入,少次读 C.多次写入,多次读 D.一次写入,多次读

9. HBase依靠__A____存储底层数据。 A. HDFS B. Hadoop C. Memory D. MapReduce 10. HBase依赖___D___提供强大的计算能力。 A. Zookeeper B. Chubby C. RPC D. MapReduce 11. HBase依赖___A___提供消息通信机制 A. Zookeeper B. Chubby C. RPC D. Socket 12. 下面与HDFS类似的框架是___C____? A. NTFS B. FAT32 C. GFS D. EXT3 13. 关于 SecondaryNameNode 下面哪项是正确的___C___。 A. 它是 NameNode 的热备 B. 它对内存没有要求 C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间 D. SecondaryNameNode 应与 NameNode 部署到一个节点 14. 大数据的特点不包括下面哪一项___D___。 A. 巨大的数据量 B. 多结构化数据 C. 增长速度快 D. 价值密度高 HBase测试题 1. HBase来源于哪一项? C

大数据工程师面试题

大数据工程师面试题 大数据工程师面试,对于很多人来说应该都不陌生了吧,虽说大数据就业前景很好,但想要成功进入名企,并不是一件容易的事情,不仅仅需要专业的技能,还需要你在面试的时候认真准备一下。面试的时候,我们会遇到各种各样的问题,千锋讲师今天就先讲解一下面试经常会遇到的问题,Hadoop是如何工作的? Hadoop是一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop是一个能够对大量数据进行分布式处理的软件框架,以一种可靠、高效、可伸缩的方式进行数据处理。所以说Hadoop解决了大数据如何存储的问题,因而在大数据培训机构中是必须学习的课程,也是面试中面试官非常注重的一个技术点。 Hadoop是如何工作的? Hadoop是从Google文件系统发源而来,并且他是一个用Java开发的跨平台的应用。核心组件有: Hadoop Common,拥有其他模块所依赖的库和基础

工具,Hadoop分布式文件系统(HDFS),负责存储,Hadoop YARN,管理计算资源,和Hadoop MapReduce,负责处理的过程。 Hadoop把文件拆成小块并且把他们分发给集群中的节点。然后,它使用打包的代码分发到节点上并行处理数据。这意味着可以处理数据的速度会比使用传统的体系结构的更快。 一个典型的Hadoop集群都会有主节点和从节点或者叫工作节点。主节点有一个任务跟踪器,任务调度,名字节点和数据节点组成。从节点通常作为一个数据节点和任务调度器,不过特殊的场景下程序可能只有数据节点然后在其他的从节点进行处理计算。 在大的Hadoop集群中,通常会使用一个专用的名字节点来管理HDFS节点的文件系统索引信息,这防止了文件系统的数据丢失和损坏。 千锋教育拥有一支的强师队伍,在教学研究方面,我们老师不断的推陈出新,探索更新的教学方式,结合时代所需不断更新课程大纲,加强学生对于知识的理解和运用。千锋讲师对于大数据行业时刻保持一定的敏感性和前瞻性,定期与各大企业的技术官交流分析,掌握大数据的发展动向,不仅仅可以帮助同学们更好的学习大数据技术,还会预测一些大数据工程师面试题,为同学们的就业之路披荆斩棘。 关键词:大数据工程师面试题

hadoop练习题--带答案资料

h a d o o p练习题--带 答案

Hadoop 练习题姓名:分数: 单项选择题 1.下面哪个程序负责HDFS数据存储。 a)NameNode b)Jobtracker c)Datanode √ d)secondaryNameNode e)tasktracker 2.HDfS中的block默认保存几份? a)3份√ b)2份 c)1份 d)不确定 3.下列哪个程序通常与NameNode在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker√ 4.Hadoop作者 a)Martin Fowler b)Kent Beck c)Doug cutting√ 5.HDFS默认Block Size a)32MB b)64MB√ c)128MB 6.下列哪项通常是集群的最主要的性能瓶颈 a)CPU b)网络 c)磁盘√ d)内存

7.关于SecondaryNameNode哪项是正确的? a)它是NameNode的热备 b)它对内存没有要求 c)它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间√ d)SecondaryNameNode应与NameNode部署到一个节点 8.一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block? a) 1 b)2√ c) 3 d) 4 9.HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce 任务读取该文件时input split大小为? a)64MB b)75MB√ c)一个map读取64MB,另外一个map读取11MB 10.HDFS有一个LZO(with index)文件大小75MB,客户端设置Block大小为64MB。当运 行mapreduce任务读取该文件时input split大小为? a)64MB b)75MB c)一个map读取64MB,另外一个map读取11MB√ 多选题: 11.下列哪项可以作为集群的管理工具 a)Puppet√ b)Pdsh√ c)Cloudera Manager√ d)Rsync + ssh + scp√ 12.配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写√ b)写入数据的时候会写到不同机架的DataNode中√ c)MapReduce会根据机架获取离自己比较近的网络数据√ 13.Client端上传文件的时候下列哪项正确 a)数据经过NameNode传递给DataNode b)Client端将文件以Block为单位,管道方式依次传到DataNode√ c)Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作 d)当某个DataNode失败,客户端会继续传给其它DataNode √

(完整版)hadoop常见笔试题答案

Hadoop测试题 一.填空题,1分(41空),2分(42空)共125分 1.(每空1分) datanode 负责HDFS数据存储。 2.(每空1分)HDFS中的block默认保存 3 份。 3.(每空1分)ResourceManager 程序通常与NameNode 在一个节点启动。 4.(每空1分)hadoop运行的模式有:单机模式、伪分布模式、完全分布式。 5.(每空1分)Hadoop集群搭建中常用的4个配置文件为:core-site.xml 、hdfs-site.xml 、mapred-site.xml 、yarn-site.xml 。 6.(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块 中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求。 7.(每空2分)一个HDFS集群包括两大部分,即namenode 与datanode 。一般来说,一 个集群中会有一个namenode 和多个datanode 共同工作。 8.(每空2分) namenode 是集群的主服务器,主要是用于对HDFS中所有的文件及内容 数据进行维护,并不断读取记录集群中datanode 主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。 9.(每空2分) datanode 在HDFS集群中担任任务具体执行角色,是集群的工作节点。文 件被分成若干个相同大小的数据块,分别存储在若干个datanode 上,datanode 会定期向集群内namenode 发送自己的运行状态与存储内容,并根据namnode 发送的指令进行工作。 10.(每空2分) namenode 负责接受客户端发送过来的信息,然后将文件存储位置信息发 送给client ,由client 直接与datanode 进行联系,从而进行部分文件的运算与操作。 11.(每空1分) block 是HDFS的基本存储单元,默认大小是128M 。 12.(每空1分)HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到 3 个相互独立的硬件上,这样可以快速恢复损坏的数据。 13.(每空2分)当客户端的读取操作发生错误的时候,客户端会向namenode 报告错误,并 请求namenode 排除错误的datanode 后,重新根据距离排序,从而获得一个新的的读取路径。如果所有的datanode 都报告读取失败,那么整个任务就读取失败。14.(每空2分)对于写出操作过程中出现的问题,FSDataOutputStream 并不会立即关闭。 客户端向Namenode报告错误信息,并直接向提供备份的datanode 中写入数据。备份datanode 被升级为首选datanode ,并在其余2个datanode 中备份复制数据。 NameNode对错误的DataNode进行标记以便后续对其进行处理。 15.(每空1分)格式化HDFS系统的命令为:hdfs namenode –format 。 16.(每空1分)启动hdfs的shell脚本为:start-dfs.sh 。 17.(每空1分)启动yarn的shell脚本为:start-yarn.sh 。 18.(每空1分)停止hdfs的shell脚本为:stop-dfs.sh 。 19.(每空1分)hadoop创建多级目录(如:/a/b/c)的命令为:hadoop fs –mkdir –p /a/b/c 。 20.(每空1分)hadoop显示根目录命令为:hadoop fs –lsr 。 21.(每空1分)hadoop包含的四大模块分别是:Hadoop common 、HDFS 、

Hadoop最全面试题整理(附目录)

Hadoop面试题目及答案(附目录) 选择题 1.下面哪个程序负责HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案C datanode 2. HDfS 中的block 默认保存几份? a)3 份b)2 份c)1 份d)不确定 答案A 默认3 份 3.下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 答案D 分析:hadoop 的集群是基于master/slave 模式,namenode 和jobtracker 属于master,datanode 和tasktracker 属于slave,master 只有一个,而slave 有多个SecondaryNameNode 内存需求和NameNode 在一个数量级上,所以通常secondaryNameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。 JobTracker 和TaskTracker JobTracker 对应于NameNode,TaskTracker 对应于DataNode,DataNode 和NameNode 是针对数据存放来而言的,JobTracker 和TaskTracker 是对于MapReduce 执行而言的。mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:jobclient,JobTracker 与TaskTracker。 1、JobClient 会在用户端通过JobClient 类将应用已经配置参数打包成jar 文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker 创建每一个Task(即MapTask 和ReduceTask)并将它们分发到各个TaskTracker 服务中去执行。 2、JobTracker 是一个master 服务,软件启动之后JobTracker 接收Job,负责调度Job 的每一个子任务task 运行于TaskTracker 上,并监控它们,如果发现有失败的task 就重新运行它。一般情况应该把JobTracker 部署在单独的机器上。 3、TaskTracker 是运行在多个节点上的slaver 服务。TaskTracker 主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在HDFS 的DataNode 上。 4. Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 答案C Doug cutting 5. HDFS 默认Block Size a)32MB b)64MB c)128MB 答案:B 6. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络c)磁盘IO d)内存 答案:C 磁盘 首先集群的目的是为了节省成本,用廉价的pc 机,取代小型机及大型机。小型机和大型机

大数据技术Hadoop面试题

大数据技术Hadoop面试题,看看你能答对多少? 单项选择题 1. 下面哪个程序负责HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 4. Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 5. HDFS 默认Block Size a)32MB b)64MB c)128MB 6. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络 c)磁盘 d)内存 7. 关于SecondaryNameNode 哪项是正确的? a)它是NameNode 的热备 b)它对内存没有要求 c)它的目的是帮助NameNode 合并编辑日志,减少NameNode 启动时间 d)SecondaryNameNode 应与NameNode 部署到一个节点 多选题: 8. 下列哪项可以作为集群的管理工具 a)Puppet b)Pdsh c)Cloudera Manager d)d)Zookeeper

9. 配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写 b)写入数据的时候会写到不同机架的DataNode 中 c)MapReduce 会根据机架获取离自己比较近的网络数据 10. Client 端上传文件的时候下列哪项正确 a)数据经过NameNode 传递给DataNode b)Client 端将文件切分为Block,依次上传 c)Client 只上传数据到一台DataNode,然后由NameNode 负责Block 复制工作 11. 下列哪个是Hadoop 运行的模式 a)单机版 b)伪分布式 c)分布式 12. Cloudera 提供哪几种安装CDH 的方法 a)Cloudera manager b)Tar ball c)Yum d)Rpm 判断题: 13. Ganglia 不仅可以进行监控,也可以进行告警。() 14. Block Size 是不可以修改的。() 15. Nagios 不可以监控Hadoop 集群,因为它不提供Hadoop 支持。() 16. 如果NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。() 17. Cloudera CDH 是需要付费使用的。() 18. Hadoop 是Java 开发的,所以MapReduce 只支持Java 语言编写。() 19. Hadoop 支持数据的随机读写。() 20. NameNode 负责管理metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入metadata 信息并反馈client 端。() 21. NameNode 本地磁盘保存了Block 的位置信息。() 22. DataNode 通过长连接与NameNode 保持通信。() 23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。() 24. Slave 节点要存储数据,所以它的磁盘越大越好。() 25. hadoop dfsadmin –report 命令用于检测HDFS 损坏块。() 26. Hadoop 默认调度器策略为FIFO() 27. 集群内每个节点都应该配RAID,这样避免单磁盘损坏,影响整个节点运行。() 28. 因为HDFS 有多个副本,所以NameNode 是不存在单点问题的。() 29. 每个map 槽就是一个线程。() 30. Mapreduce 的input split 就是一个block。() 31. NameNode 的Web UI 端口是50030,它通过jetty 启动的Web 服务。() 32. Hadoop 环境变量中的HADOOP_HEAPSIZE 用于设置所有Hadoop 守护线程的内存。它默认是200 GB。() 33. DataNode 首次加入cluster 的时候,如果log 中报告不兼容文件版本,那需要NameNode执行“Hadoop namenode -format”操作格式化磁盘。() 【编辑推荐】 没有数据分析大数据什么也不是...... 大数据告诉你,真正的白富美的生活是怎样的呢?

(完整版)hadoop习题册

第一章大数据概述 1.互联网的发展分为______个阶段。 A.一 B.三 C.二 D.四 2.下列不属于大数据特点的是()。 A.种类和来源多样化 B.数据量巨大 C.分析处理速度快 D.价值密度高 3.互联网发展的第_____个时代为智能互联网。 A.3.0 B.4.0 C.1.0 D.2.0 4.关于大数据叙述不正确的一项是()。 A.大数据=“海量数据”+“复杂类型的数据” B.大数据是指在一定时间对内容抓取、管理和处理的数据集合 C.大数据可以及时有效的分析海量的数据 D.数据包括结构化数据、半结构化数据、结构化数据。 5.下列数据换算正确的一项为()。 A.1YB=1024EB B.1TB=1024MB C.1PB==1024EB D.1024ZB=1EB 6.结构化数据的表现形式为______。 A.文本 B.视图 C.二维表 D.查询 7.结构化的数据,先有________,再有_________. A.数据结构 B.结构数据 C.内容结构 D.结构内容 8.结构化的数据,先有________,再有_________. A.数据结构 B.结构数据 C.内容结构 D.结构内容 9.软件是大数据的_________。 A.核心 B.部件 C.引擎 D.集合 10.大数据技术不包括( )。 A.数据计算 B.数据存储 C.数据冗余 D.数据采集 11.大数据的特点不包括()。 A.数量大 B.类型少 C.速度快 D.价值高 第二章Hadoop简介 1.下列对云栈架构层数不正确的一项为________。 A.三层云栈架构 B.四层云栈架构 C.五层云栈架构 D.六层云栈架构 2.下列______不是云计算三层架构的概括。

Hadoop试题题库

1.以下哪一项不属于H a d o o p可以运行的模式___C___。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 2. Hadoop的作者是下面哪一位__B____。 A. Martin Fowler B. Doug cutting C. Kent Beck D. Grace Hopper 3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。 A. TaskTracker B. DataNode C. SecondaryNameNode D. Jobtracker 4. HDFS 默认 Block Size的大小是___B___。 5. 下列哪项通常是集群的最主要瓶颈____C__。 A. CPU B. 网络 C. 磁盘IO D. 内存 6. 下列关于MapReduce说法不正确的是_____C_。 A. MapReduce是一种计算框架 B. MapReduce来源于google的学术论文 C. MapReduce程序只能用java语言编写 D. MapReduce隐藏了并行计算的细节,方便使用 8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。 A.一次写入,少次读 B.多次写入,少次读 C.多次写入,多次读 D.一次写入,多次读 9. HBase依靠__A____存储底层数据。 A. HDFS B. Hadoop C. Memory D. MapReduce 10. HBase依赖___D___提供强大的计算能力。 A. Zookeeper

Hadoop 100道面试题及答案解析

3.6 误) 3.7Hadoop支持数据的随机读写。(错) (8) NameNode负责管理metadata,client端每次读写请求,它都会从磁盘中3.8 读取或则会写入metadata信息并反馈client端。(错误) (8) NameNode本地磁盘保存了Block的位置信息。(个人认为正确,欢迎提出其它意见) (9) 3.9 3.10 3.11DataNode通过长连接与NameNode保持通信。(有分歧) (9) Hadoop自身具有严格的权限管理和安全措施保障集群正常运行。(错误)9 3.12 3.13 3.14Slave节点要存储数据,所以它的磁盘越大越好。(错误) (9) hadoop dfsadmin–report命令用于检测HDFS损坏块。(错误) (9) Hadoop默认调度器策略为FIFO(正确) (9) 100道常见Hadoop面试题及答案解析 目录 1单选题 (5) 1.1 1.2 1.3 1.4 1.5 1.6 1.7下面哪个程序负责HDFS数据存储。 (5) HDfS中的block默认保存几份? (5) 下列哪个程序通常与NameNode在一个节点启动? (5) Hadoop作者 (6) HDFS默认Block Size (6) 下列哪项通常是集群的最主要瓶颈: (6) 关于SecondaryNameNode哪项是正确的? (6) 2 3多选题 (7) 2.1 2.2 2.3 2.4 2.5 下列哪项可以作为集群的管理? (7) 配置机架感知的下面哪项正确: (7) Client端上传文件的时候下列哪项正确? (7) 下列哪个是Hadoop运行的模式: (7) Cloudera提供哪几种安装CDH的方法? (7) 判断题 (8) 3.1 3.2 3.3 Ganglia不仅可以进行监控,也可以进行告警。(正确) (8) Block Size是不可以修改的。(错误) (8) Nagios不可以监控Hadoop集群,因为它不提供Hadoop支持。(错误) 8 3.4如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作。(错误) (8) 3.5Cloudera CDH是需要付费使用的。(错误) (8) Hadoop是Java开发的,所以MapReduce只支持Java语言编写。(错 8

hadoop练习题--带答案

Hadoop 练习题姓名:分数: 单项选择题 1.下面哪个程序负责HDFS数据存储。 a)NameNode b)Jobtracker c)Datanode √ d)secondaryNameNode e)tasktracker 2.HDfS中的block默认保存几份? a)3份√ b)2份 c)1份 d)不确定 3.下列哪个程序通常与NameNode在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker√ 4.Hadoop作者 a)Martin Fowler b)Kent Beck c)Doug cutting√ 5.HDFS默认Block Size a)32MB b)64MB√ c)128MB 6.下列哪项通常是集群的最主要的性能瓶颈 a)CPU b)网络 c)磁盘√ d)内存

7.关于SecondaryNameNode哪项是正确的? a)它是NameNode的热备 b)它对内存没有要求 c)它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间√ d)SecondaryNameNode应与NameNode部署到一个节点 8.一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block? a) 1 b)2√ c) 3 d) 4 9.HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce 任务读取该文件时input split大小为? a)64MB b)75MB√ c)一个map读取64MB,另外一个map读取11MB 10.HDFS有一个LZO(with index)文件大小75MB,客户端设置Block大小为64MB。当运 行mapreduce任务读取该文件时input split大小为? a)64MB b)75MB c)一个map读取64MB,另外一个map读取11MB√ 多选题: 11.下列哪项可以作为集群的管理工具 a)Puppet√ b)Pdsh√ c)Cloudera Manager√ d)Rsync + ssh + scp√ 12.配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写√ b)写入数据的时候会写到不同机架的DataNode中√ c)MapReduce会根据机架获取离自己比较近的网络数据√ 13.Client端上传文件的时候下列哪项正确 a)数据经过NameNode传递给DataNode b)Client端将文件以Block为单位,管道方式依次传到DataNode√ c)Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作 d)当某个DataNode失败,客户端会继续传给其它DataNode √

Hadoop基础知识面试题大汇总

1.Hadoop集群可以运行的3个模式分别是什么, 都有哪些注意点? ?单机(本地)模式:这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。 ?伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点 (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。 ?全分布式模式:全分布模式通常被用于生产环境,使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode 运行的主机,Datanode运行的主机,以及task tracker运行的主机。 在分布式环境下,主节点和从节点会分开。 2. VM是否可以称为Pseudo? 不是,两个事物,同时Pseudo只针对Hadoop。 3. 当Job Tracker宕掉时,Namenode会发生什么? 当Job Tracker失败时,集群仍然可以正常工作,只要Namenode没问题。 4. 是客户端还是Namenode决定输入的分片? 这并不是客户端决定的,在配置文件中以及决定分片细则。 5. 是否可以在Windows上运行Hadoop? 可以,但是最好不要这么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系统。 6. Hadoop是否遵循UNIX模式? 是的,在UNIX用例下,Hadoop还拥有“conf”目录。 7. Hadoop安装在什么目录下? Cloudera和Apache使用相同的目录结构,Hadoop被安装在 cd/usr/lib/hadoop-0.20/。 8. Namenode、Job tracker和task tracker的端口号是? Namenode,70;Job tracker,30;Task tracker,60。

hadoop面试题

Hadoop就业面试宝典 1.0简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤, 列出具体步骤更好。 答:1使用root账户登录 2 修改IP 3 修改host主机名 4 配置SSH免密码登录 5 关闭防火墙 6 安装JDK 7 解压hadoop安装包 8 配置hadoop的核心文件hadoop-env.sh,core-site.xml , mapred-site.xml ,hdfs-site.xml 9 配置hadoop环境变量 10 格式化hadoop namenode-format 11 启动节点start-all.sh 2.0 请;列出正常的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别都是什么,请尽量列的详细一些。 答:namenode:管理集群,存储数据的原信息,并管理记录datanode中的文件信息。 Secondname:可以做冷备,对一定范围内数据做快照性备份。 Datanode:存储数据 Jobtracker :管理任务,并将任务分配给tasktracker。 Tasktracker: 执行JobTracker分配的任务。 3.0请写出以下的shell命令 (1)杀死一个job (2)删除hdfs上的/tmp/aaa目录 (3)加入一个新的存储节点和删除一个节点需要执行的命令 答:(1)hadoop job –list 得到job的id,然后执行hadoop job -kill jobId就可以杀死一个指定jobId的job工作了。 (2)hadoop fs -rmr /tmp/aaa (3) 增加一个新的节点在新的几点上执行 Hadoop daemon.sh start datanode Hadooop daemon.sh start tasktracker 然后在主节点中执行hadoop dfsadmin -refreshnodes 删除一个节点的时候,只需要在主节点执行hadoop mradmin -refreshnodes 4.0请列出你所知道的hadoop调度器,并简要说明其工作方法 答:Fifo schedular :默认,先进先出的原则 Capacity schedular :计算能力调度器,选择占用最小、优先级高的先执行,依此类推。 Fair schedular:公平调度,所有的job 具有相同的资源。

Hadoop试题试题库

1.以下哪一项不属于Hadoop 可以运行的模式___C___。 A.单机(本地)模式 B.伪分布式模式 C.互联模式 D.分布式模式 2.Hadoop 的作者是下面哪一位__B ___ 。 A.Martin Fowler B.Doug cutting C.Kent Beck D.Grace Hopper 3.下列哪个程序通常与NameNode 在同一个节点启动__D___。 A.TaskTracker B.DataNode C.SecondaryNameNode D.Jobtracker 4.HDFS 默认Block Size 的大小是___B___。 A.32MB B.64MB C.128MB D.256M 5.下列哪项通常是集群的最主要瓶颈__ C__。 A.CPU B.网络 C.磁盘IO D.内存 6.下列关于MapReduce 说法不正确的是___ C_。 A.MapReduce 是一种计算框架 B.MapReduce 来源于google 的学术论文 C.MapReduce 程序只能用java 语言编写 D.MapReduce 隐藏了并行计算的细节,方便使用 8. HDFS 是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是__D 。 A.一次写入,少次读 B.多次写入,少次读

C.多次写入,多次读 D.一次写入,多次读 7.HBase 依靠__A ___ 存储底层数据。 A.HDFS B.Hadoop C.Memory D.MapReduce 8.HBase 依赖___D___提供强大的计算能力。 A.Zookeeper B.Chubby C.RPC D.MapReduce 9.HBase 依赖___A___提供消息通信机制 A.Zookeeper B.Chubby C.RPC D.Socket 10.下面与HDFS 类似的框架是___C___ ? A.NTFS B.FAT32 C.GFS D.EXT3 11.关于SecondaryNameNode 下面哪项是正确的___C___。 A.它是NameNode 的热备 B.它对内存没有要求 C.它的目的是帮助NameNode 合并编辑日志,减少NameNode 启动时间 D.SecondaryNameNode 应与NameNode 部署到一个节点 12.大数据的特点不包括下面哪一项___D___。 A.巨大的数据量 B.多结构化数据 C.增长速度快 D.价值密度高

hadoop面试题总结1讲课讲稿

hadoop面试题总结1 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案C datanode a)3 份 b)2 份c)1 份d)不确定 答案A默认3分 a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 答案D 分析: hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个 SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)NameNode运行在不同的机器上。 JobTracker和TaskTracker JobTracker 对应于 NameNode TaskTracker 对应于 DataNode DataNode 和NameNode 是针对数据存放来而言的JobTracker和TaskTracker是对于MapReduce执行而言的mapreduce中几个主要概念,mapreduce整体上可以分为这

么几条执行线索:jobclient,JobTracker与TaskTracker。 并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask) 并将它们分发到各个TaskTracker服务中去执行 并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。 TaskTracker都需要运行在HDFS的DataNode上 a)Martin Fowler b)Kent Beck c)Doug cutting 答案C Doug cutting a)32MB b)64MB c)128MB 答案:B (因为版本更换较快,这里答案只供参考) a)CPU b)网络 c)磁盘IO d)内存 答案:C磁盘 处理能力强 2.内存够大 所以集群的瓶颈不可能是a和d 3.网络是一种稀缺资源,但是并不是瓶颈。 4.由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。 同样可以参考下面内容(磁盘IO:磁盘输出输出)

相关文档
最新文档