动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Java面试中的hadoop面试题及答案整理

06-15 17:15 369浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。Hadoop具有很多的特性和应用,所以今天这篇文章为各位java程序员整理了java面试中的Hadoop可能涉及到的知识点,对Hadoop的面试题做了总结。

1、什么是Hadoop?

答:Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:(1HDFHadoop分布式文件系统):HDFS允许你以一种分布式和冗余的方式存储大量数据;(2MapReduce:一个计算框架。它以分布式和并行的方式处理大量的数据;(3YARN(Yet Another Resource Nagotiator,又一资源定位器):用于作业调度和集群资源管理的框架;(4Hadoop生态系统,拥有15多种框架和工具,查询来自HDFS的数据用于商业智能和分析;(5某些工具(如Pig和Hive)是MapReduce上的抽象层,而Spark和Impala等其他工具则是来自MapReduce的改进架构/设计,用于显著提高的延迟以支持近实时(即NRT)和实时处理。

2、基于Hadoop的数据中心的好处是什么?

答:随着数据量和复杂性的增加,提高了整体SLA:

1)缩放数据仓库可能会很昂贵:基于Hadoop的解决方案不仅在商品硬件节点和开源工具方面更便宜,而且还可以通过将数据转换卸载到Hadoop工具(如Spark和Impala)来补足数据仓库解决方案,从而更高效地并行处理大数据。这也将释放数据仓库资源。

2)探索新的渠道和线索:Hadoop可以为数据科学家提供探索性的沙盒,以从社交媒体,日志文件,电子邮件等地方发现潜在的有价值的数据,这些数据通常在数据仓库中不可得;

3)更好的灵活性:通常业务需求的改变,也需要对架构和报告进行更改。基于Hadoop的解决方案不仅可以灵活地处理不断发展的模式,还可以处理来自不同来源。

3、简单描述如何安装配置一个apache开源版hadoop?  

答:安装JDK并配置环境变量(/etc/profile);关闭防火墙;配置hosts文件,方便hadoop通过主机名访问(/etc/hosts);设置ssh免密码登录;解压缩hadoop安装包,并配置环境变量;修改配置文件($HADOOP_HOME/conf);hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml;格式化hdfs文件系统(hadoop namenode -format);启动hadoop($HADOOP_HOME/bin/start-all.sh);用jps查看进程。

4、列出你所知道的hadoop调度器,并简要说明其工作方法

答:比较流行的三种调度器有:默认调度器FIFO,计算能力调度器Capacity Scheduler,公平调度器Fair Scheduler。

1)默认调度器FIFO:hadoop中默认的调度器,采用先进先出的原则。

2)计算能力调度器Capacity Scheduler:选择占用资源小,优先级高的先执行。

3)公平调度器Fair Scheduler:同一队列中的作业公平共享队列中所有资源。

5、启动hadoop报如下错误,该如何解决?

答:(1)error  org.apache.hadoop.hdfs.server.namenode.NameNode ,

找不到主类,应该是配置文件的hadoop的安装位置配置错误,对hadoop-env.sh文件进行检查修改;

2).org.apache.hadoop.hdfs.server.common.inconsistentFSStateException,这个是存储目录不存在,或者被删除,对namenode进行格式化,或重新格式化,对tmp.dir进行自己的设置

3)Directory /tmp/hadoop-root/dfs/name is in an inconsistent ,这个和上面一样的,重新设置core-site.xml中hadoop.tmp.dir的值,对namenode进行格式化,

4)state storage direction does not exist or is not accessible?之前是默认的tmp目录,每次重启都会清除这个数据,所以找不到整个文件系统的信息,重新设置core-site.xml中hadoop.tmp.dir的值,对namenode进行格式化。

6、hadoop怎么样实现二级排序?

答:在MapReduce中本身就会对我们key进行排序,所以我们要对value进行排序,主要思想为将key和部分value拼接成一个组合key(实现WritableComparable接口或者调用 setSortComparatorClass函数),这样reduce获取的结果便是先按key排序,后按value排序的结果,在这个方法中,用户需 要自己实现Paritioner,继承Partitioner<>,以便只按照key进行数据划分。Hadoop显式的支持二次排序,在Configuration类中有个 setGroupingComparatorClass()方法,可用于设置排序group的key值。

上面6道题就是今天分享给大家的Hadoop面试题了,虽然这类题目不如Linux,MySQLSpringMVC等常见方面考察的多,但是还是大家在面试的时候不能忽略的一方面。想要学习的更深入,可以了解下Hadoop从入门到精通这门课程,因为学习好Hadoop,可以了解大数据基本知识,深入理解HDFS、MapReduce及Yarn的工作原理,在java面试中更加显得游刃有余,拿到自己想要的offer。

2人推荐
共同学习,写下你的评论
0条评论
兔子
程序员兔子

3篇文章贡献19378字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消