十个关于Hadoop的面试题

  1. 请列出正常工作的hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么?
进程名作用
NameNode它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate
SecondaryNameNode它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
DataNode负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。
ResourceManagerJobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
NodeManager(TaskTracker)执行任务
DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
JournalNode高可用情况下存放namenode的editlog文件
  1. 启动hadoop报如下错误,该如何解决?

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

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

state storage direction does not exist or is not accessible?
之前是默认的tmp目录,每次重启都会清除这个数据,所以找不到整个文件系统的信息,重新设置core-site.xml中hadoop.tmp.dir的值,对namenode进行格式化
  1. 请列出你所知道的hadoop调度器
调度器名称工作方法
先进先出调度器(FIFO)Hadoop 中默认的调度器,也是一种批处理调度器。它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业
容器调度器(Capacity Scheduler)支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制
公平调度器 (Fair Schedule)公平调度是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,都能平均的获取等同的共享资源。所有的 job 具有相同的资源,当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务(task)空闲资源(container)赋给这些新的作业,以使得每一个作业都大概获取到等量的CPU时间。与Hadoop默认调度器维护一个作业队列不同,这个特性让小作业在合理的时间内完成的同时又不"饿"到消耗较长时间的大作业。公平调度可以和作业优先权搭配使用——优先权像权重一样用作为决定每个作业所能获取的整体计算时间的比例。同计算能力调度器类似,支持多队列多用户,每个队列中的资源量可以配置, 同一队列中的作业公平共享队列中所有资源。
  1. HDFS 默认 Block Size 是多少?
    目前官网默认大小是128M
    在这里插入图片描述

  2. 通常是hadoop集群的最主要瓶颈在哪里?
    Hadoop集群最主要的瓶颈其实实在磁盘上;由于大数据面临的是海量数据,而读写数据及处理数据时都是需要落在磁盘上,同时Hadoop的备份一般为三份,造成了磁盘的一个高IO操作

  3. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作,这句话对么?为什么?
    这个肯定是不对的,我们知道SNN是周期性对NN节点进行定时备份,它存在的目录是帮助NN合并editLog,减少NN启动时间,而不会接替NN的工作。

  4. “jps”命令的用处
    在Hadoop环境中,jps 可以查看 hadoop 上 当前运行的java 进程。

  5. Hadoop集群中,slaves配置文件的作用和组成
    Hadoop集群中,slaves配置文件内配置的是启动datanode进程的节点名称

  6. hive的元数据信息都可以存在哪里

存储方式描述
derbyhive默认使用derby内存数据库保存hive的元数据,这样是不可以并发调用hive的。使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库
multi user mode在自己本地配一个,如mysql的数据库,用作hive的元数据的存储数据库,这个需要要自己本地搭建一个mysql数据库,通过配置文件创建一个hive自己的元数据库
remote server mode一种在远端配置数据库服务的方式,这个需要配置metastore服务,通过客户端的metastore服务访问服务器上的元数据库达到访问数据的目的
  1. hadoop是Java开发的,所以MapReduce只支持JAVA语言编写?
    错误
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值