1、谈谈什么是Hadoop?

Hadoop是一个开源软件框架,用于存储大量数据,并发计算/查询节点的集群上的数据。Hadoop包括以下内容:HDFS(Hadoop Distributed File System):Hadoop分布式文件存储系统。MapReduce:分布式计算框架。它以分布式和并行的方式处理大量的数据。YARN(资源定位器):用于管理和调度集群资源的框架。

2、谈谈 hadoop1 和 hadoop2 的区别?

 hadoop1.x:由Common(公共模块辅助工具)、HDFS(分布式数据存储)、MapReduce(分布式计算+资源调度)组成hadoop2.x:由Common(公共模块辅助工具)、HDFS(分布式数据存储)、MapReduce(分布式计算)、YARN(统一资源调度)组成

3、什么是HDFS文件系统?

HDFS是大数据开源框架hadoop的组件之一,全称(Hadoop Distributed File System),它是一个分布式
文件系统,由多台服务器联合起来实现文件存储功能,通过目录树来定位文件,集群中的服务器都有有各自的角色。

4、HDFS文件系统有什么特点?

  1.数据通过副本存储,提高容错性2.能够处理PB级及以上数据,可处理百万级文件数量3.节约成本,可分布在“廉价”机器上4.不适合低延时数据访问5.不适合对大量文件的存储和访问6.单线程操作文件不能多用户执行写操作,并且不支持文件随机修改

5、HDFS默认数据块得大小是多少?为什么?

 HDFS目前默认块大小在Hadoop2.x版本中是128M,老版本中是64M,因为目前磁盘的传输率约为100M/s,而HDFS读取文件时最佳的寻址时间为10ms,寻址时间为传输时间的百分之1时最佳,所以定义块大小为128M,1秒左右可以快速读取完毕;本质上HDFS的块大小取决于磁盘的传输速率。

6、为什么HDFS不支持存储小文件?

  1)存储大量小文件会占用NameNode大量的内存和磁盘来存储文件目录和块信息。是不可取的,因为NameNode的内存是有限的;2)读取小文件时寻址时间会超过读取时间,不合理,违反了HDFS的设计目标.

7、 简单描述hdfs文件的读取流程?

说说hdfs的文件上传的流程1.首先客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。2.NameNode返回是否可以上传。3.如果文件大于128M则分块存储,客户端请求第一个 Block上传到哪几个DataNode服务器上。4.NameNode根据副本储存策略返回3个DataNode节点,假如为dn1、dn2、dn3。5.客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求调用dn2,dn2调用dn3,建立通信管道完成,dn1、dn2、dn3逐级应答客户端。6.客户端以Packet为单位往dn1上传第一个Block数据,dn1收到Packet就会传给dn2,dn2传给dn3;dn1,dn2,dn3每接收packet会放入一个待写队列等待写入数据,落盘。7.当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器,重复执行3-6步。说说文件的下载流程1.客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。2.挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。3.DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。4.客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

8、我们在上传文件的时候namenode如何选取的datanode存储副本?有什么优势?

  HDFS的放置策略是将一个副本放置在本地机架中的一个节点上,将另一个副本放置在本地机架中的另一个节点上,最后一个副本放置在不同机架中的另一个节点上(一个副本在Client所处的节点上。如果客户端在集群外,随机选一个,第二个副本和第一个副本位于相同机架,随机节点,第三个副本位于不同机架,随机节点)。优点:该策略减少了机架间的写流量,通常可以提高写性能。机架故障的机会远小于节点故障的机会。此策略不会影响数据的可靠性和可用性保证

9、描述一下Namenode和secondarynamenode的工作机制

1. NameNode启动和工作内容1.1第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,会加载编辑日志和镜像文件到内存。1.2客户端对元数据进行增删改的请求。1.3NameNode记录操作日志,更新滚动日志。1.4NameNode在内存中对元数据进行增删改。
2. Secondary NameNode工作内容2.1 2NN询问NN是否需要CheckPoint(合并镜像和编辑日志),并带回NameNode是否执行结果。2.2 2NN请求执行CheckPoint2.3 NN滚动正在写的Edits编辑日志。2.4 将滚动前的编辑日志和镜像文件拷贝到2NN。2.5 2NN加载编辑日志和镜像文件到内存,并执行合并,生成新的镜像文件fsimage.chkpoint。2.6 2NN拷贝fsimage.chkpoint到NN。2.7 NN将fsimage.chkpoint重新命名成fsimage,替换之间旧的fsimage

10、fsimage和edits文件分别指的是什么?存的是什么?

fsimage:HDFS文件系统元数据的镜像文件,其中包含HDFS文件系统的所有目录和文件inode及相关属性的序列化
信息。
edits:用户操作的编辑日志文件,存放HDFS文件系统的所有更新操作的动作,文件所有写操作会被记录到Edits
文件中。

11、默认情况下进行ckeckpoint(合并镜像及编辑日志)的触发条件是什么?

默认情况下,2NN每隔一小时执行一次checkpoint
默认情况下,一分钟检查一次Edits文件的操作次数,当操作次数达到1百万时,2NN执行一次checkpoint。

12、工作中假如你的namenode发生故障,导致namenode中的元数据丢失,如何恢复数据?

方法一:将2NN所在服务器元数据存储目录namesecondary中数据拷贝到NameNode存储元数据的name目录下,
重新开启服务即可。
方法二:使用-importCheckpoint选项启动NameNode守护进程,将2NN所在服务器元数据存储目录
namesecondary拷贝到NameNode所在服务器的同级目录下,导入检查点数据,重新开启服务即可。1.修改hdfs-site.xml中的<property><name>dfs.namenode.checkpoint.period</name><value>120</value></property><property><name>dfs.namenode.name.dir</name><value>/opt/module/hadoop-2.7.2/data/tmp/dfs/name</value></property>导入检查点数据:hdfs namenode -importCheckpoint注意:恢复后会丢失最后一次Edits文件记录的用户操作

13、什么情况下集群会进入安全模式?安全模式下集群有有什么限制?如何查看、进入、退出、等待安全模式

1.NameNode启动时,会将镜像文件(Fsimage)和编辑日志(Edits)加载到内存。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的Fsimage文件和一个空的编辑日志。此时,NameNode开始监听DataNode请求。这个过程期间,NameNode处于安全模式。当数据块的副本数不满足(dfs.replication.min=1)最小副本数时,不会主动退出安全模式;
2.安全模式下:NameNode的文件系统对于客户端来说是只读的。
3.(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)
注意:集群正常启动完成后,自动退出安全模式,如果无法正常退出可使用hdfs dfsadmin -safemode leave
退出安全模式;对于全新创建的HDFS集群,NameNode启动后不会进入安全模式,因为没有Block信息。

14.启动集群时,我们要对namenode进行格式化操作?为什么只能格式化一次

因为格式化NameNode,就会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据(现象datanode无法正常启动);所以,重新格式化NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode,后再启动集群

15.公司现在有4台服务器hadoop1、hadoop2、hadoop3、hadoop4 4台服务器,hadoop2和hadoop4配置相对较好,根据现有配置设计一个集群,并简单说说基本的配置流程?

hadoop1              hadoop2         hadoop3             hadoop4datanode         datanode        datanode        datanodenodemanager         nodemanager         nodemanager     nodemanagernamenode                         resourcemanager

16.启动集群的相关命令有哪些?

  1. 启动集群之前一定要格式化(/opt/module/hadoop-2.7.2)
bin/hdfs namenode -format ( has been successfully formatted
  1. 启动HDFS服务
启动namenodesbin/hadoop-daemon.sh start|stop namenode
启动datanodesbin/hadoop-daemon.sh start|stop datanode
检查namenode的web页面是否可以访问http://192.168.232.201:50070
  1. 启动YARN服务
启动resourcemanagersbin/yarn-daemon.sh start|stop resourcemanager
启动nodemanagersbin/yarn-daemon.sh start|stop nodemanager
检查yarn的web页面:http://192.168.232.201:8088
  1. 开启历史服务
sbin/mr-jobhistory-daemon.sh start|stop historyserver
  1. 实现了集群的群停和群起
群起群停HDFS服务进程(在namenode所在的服务器上)配置etc/hadoop/slaves (相对于hadoop-2.7.2)群起的命令:start-dfs.sh群停的命令:stop-dfs.sh
群起群停YARN服务进程(在resourcemanager所在的服务器上)配置etc/hadoop/slaves (相对于hadoop-2.7.2)群起的命令:start-yarn.sh群停的命令:stop-yarn.sh
stop-all.sh | start-all.sh

17.HDFS文件操作的命令有哪些?

hadoop fs | hdfs dfs 命令分类本地文件 -> HDFS-put 将本地数据上传至hdfs-copyFromLocal 将本地文件数据拷贝到hdfs-moveFromLocal 将本地文件数据移动到hdfs,成功后本地数据会删除-appendToFile 追加一个文件到已经存在的文件末尾HDFS与HDFS之间-ls 查看hdfs文件目录-mkdir 在HDFS上创建目录-rm 删除文件或者文件夹-rmr | -rm -r 递归删除-cp 从一个目录拷贝文件至另一目录-mv 在HDFS目录中移动文件-chown 修改文件所属用户权限-chmod 修改文件所属读写权限-du -h 文件夹暂用的空间大小-df -h 查看系统分区情况-cat 查看文件HFDS -> 本地-get 从hdfs下载文件至本地-getmerge 合并hdfs目录下的文件至本地-copyToLocal 从hdfs拷贝文件至本地其他-setrep 设置文件副本数(注意:具体的副本数得看DataNode的数量)-help 帮助命令

18.配置集群过程中如果发现各台服务器的datanode启动后,过一段时间自动消失了,
查看原因发现datanode的集群clusterID=CID-9a578a40-2089-492b-9599-54dadbcd9849
而namenode的clusterID=CID-0b798a40-2089-492b-9599-54dadbcd9849,这时如果需要让集群正常工作,如何处理?

 原因:这是因为多次格式化namenode后造成,datanode和namenode的集群id不一致,导致的,方案一:如何集群没有任何数据,可以删除个服务器的data logs目录重新格式化,重新启动集群方案二:如果集群中已经存在大量数据,则找到无法启动datanode的服务器进入到data/tmp/dfs/data 目录下找到VERSION文件删除后,重新开启datanode服务

19. 请列出正常工作的Hadoop 集群中Hadoop 都分别需要启动哪些进程,它们的作用分别是什么? 请尽量列的详细一些?

 namenode:负责接受客户端读写数据请求负责数据块副本的存储策略负责管理快数据的映射关系储存元数据信息datanode:存储实际的数据块真实处理数据块的读/写操作Secondary NameNode:辅助后台程序,与NameNode进行通信,定期合并FSimage和Edits编辑日志,合并为最新的镜像文件。保存HDFS元数据的快照。resourcemanager:统一资源调度和管理器处理客户端请求监控NodeManager启动或监控ApplicationMaster资源的分配与调度nodemanager:提供计算资源管理单个节点上的资源处理来自ResourceManager的命令处理来自ApplicationMaster的命令

20. 现在为了满足公司业务需求,在原有hadoop集群的基础之上要求扩展两个节点(也可以说扩展两台服务器),该如何操作?

   1.从现有集群的任意服务器克隆两台服务器,修改主机名和ip地址2.删除集群hadoop-2.7.2目录下的data logs目录3.修改/etc/hosts文件,添加本机的主机、ip映射关系4.将/etc/hosts分发到其他服务器5.配置免密登录6.启动datanode和nodemanager

21. 公司现有100台服务器组成的集群,由于疫情期间业务骤减,现需要减少10台服务器,如何退役这些节点?有哪几种方式退役节点?

 本业务场景适合使用黑名单退役节点:步骤:1.可以在hadoop-2.7.2/etc/hadoop目录下创建黑名单dfs.hosts.exclude文件2.在dfs.hosts.exclude文件中添加要退役的服务器名称3.在hdfs-site.xml文件中添加黑名单那的配置项<property><name>dfs.hosts.exclude</name><value>黑名单文件绝对路径</value></property>4.刷新NameNode、刷新ResourceManagerhdfs dfsadmin -refreshNodesyarn rmadmin -refreshNodes退役的方式:黑名单:在黑名单上面的主机都会被强制退出。白名单:添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被强制退出。注意:黑名单和白名单最好不要同时出现,如果同时出现不允许白名单和黑名单中同时出现同一个主机名称。

22. 刷新namenode的命令是什么? 刷新resourcemanager的命令是什么?

刷新NameNode、刷新ResourceManagerhdfs dfsadmin -refreshNodesyarn rmadmin -refreshNodes

22. namenode是怎么确定datanode能够正常工作的?他们之间是怎么保持联系的?

 datanode会先向namdnode注册,namdnode返回注册成功;后每一小时datanode向namenode上传块信息,每3秒datanode向namenode发送一次心跳包,并携带namenode给datanode的命令,默认情况下如果超过10分30秒namenode没有收到datanode的心跳,则任务datanode掉线dn和nn是通过心跳包来保持联系的

23、简要描述如何安装配置apache 的一个开源Hadoop,只描述即可,无需列出具体步骤,列出具体步骤更好?

1、准备服务器修改ip和主机名(虚拟机需要)、创建用户和软件安装目录
2、安装JDK并配置环境变量(/etc/profile);
3、关闭防火墙;
4、配置hosts文件,方便hadoop通过主机名访问(/etc/hosts);
5、设置ssh免密码登录;
6、解压缩hadoop安装包,并配置环境变量;
7、修改配置文件hadoop-env.sh、yarn-env.sh、mapred-env.sh、 core-site.xml
hdfs-site.xml mapred-site.xml yarn-site.xml;
8、格式化hdfs文件系统(hadoop namenode -format);
9、启动hadoop:start-def.sh、start-yarn.sh
10、使用jps查看进程。

24. 简述Hadoop 的几个默认端口及其含义?

dfs.namenode.http-address:50070
SecondaryNameNode辅助名称节点端口号:50090
fs.defaultFS:9000
yarn.resourcemanager.webapp.address:8088
historyserver:19888

25 hadoop集群可以运行的3个模式是什么?

 本地运行模式、伪分布式运行模式、完全分布式运行模式

26 搭建完全分布式集群有哪些注意点?

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

27 通常情况下我们搭建集群时,需要自定义一些参数,需要修改哪些配置文件,列出文件名即可?

 修改配置文件hadoop-env.sh、yarn-env.sh、mapred-env.sh、 core-site.xml hdfs-site.xml mapred-site.xml

28 jps命令的作用?

jps这个命令是是jdk提供的一个查看当前java进程的小工具,在hadoop中可以用来查看集群相关
服务进程是否正常开启例如:namenode、datanode、secondarynamenode、resourcemanager、
nodemanager等

29 datanode可以设置多目录存储数据吗?怎么实现?

 DataNode也可以配置成多个目录,并且每个目录存储的数据不一样。编辑hdfs-site.xml文件,添加如下配置项,这里块数据会分布存储在data1和data2目录中<property><name>dfs.datanode.data.dir</name><value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value></property>

30 是否可以在Windows上运行Hadoop?

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

31 hadoop有哪些发行版?

hadoop三大发行版本:Apache、Cloudera、Hortonworks。Apache版本最原始(最基础)的版本。Cloudera在大型互联网企业中用的较多。Hortonworks文档较好。

32 是否可以在不同集群之间复制文件? 如果是的话,怎么能做到这一点? (新特性)

采用distcp命令实现两个Hadoop集群之间的递归数据复制例如:将集群hadoop102上的文件复制到hadoop103上hadoop distcp  hdfs://haoop102:9000/user/jinghang/hello.txt hdfs://hadoop103:9000/user/jinghang/hello.txt

33 你们公司用的hadoop的哪个版本?运行Hadoop需要什么平台和哪个Java版本?

hadoop 2.x比较多,因为企业开发追求的是稳定性,也有历史兼容问题,比如hadoop 3.x需要jdk8以上,
但是如果整个方案都是之前的java版本,那么比较保守的办法就是用原来的。
企业开发的原则就是如果没有问题,就不用新版的。但是以后的趋势肯定是3.0会流行,只是一个时间的问题。
如果你是从0开始,没有包袱,那么用3.0好了,越旧的软件,维护的成本越大。需要Linux操作平台,jdk8及以上版本

34 当两个用户尝试访问HDFS中的同一文件并修改时会发生什么?

HDFS上的文件只支持单用户操做,因此只有第一个用户能够操作文件,第二个用户会被拒绝

35、关于ssh协议中的免登录,下列理解错误的是( D )

A. 可以用命令 ssh-keygen -t rsa 生成公钥、私钥对B. ssh协议是一种采用的是非对称加密往往采用rsa加密算法C. 可以用 ssh-copy-id 命令来发送公钥到别的服务器,实现免密登录D. ssh的私钥不是必须保留在服务器上,可以进行分发,可以保证数据的安全性。

36、下列描述错误的是( A )

A. Hadoop在完全参照GSF项目的基础上演变而来B. Hadoop充分吸收google三大论文的思想C. Hadoop解决了大数据中海量数据的存储和海量数据的计算问题D. Hadoop现目前属于apache 基金组织,属于top项目之一

37、下面描述正确的是( A )

A. NameNode是一个中心服务器(master端),负责管理文件元数据的存储、以及客户端对文件的访问等B. DataNode负责元数据操作,文件内容相关的数据流经过会DataNode.C. 副本存放在哪些DataNode上由NameNode和DataNode协商任意分配D. DataNode全权自主管理数块的存储,接受心跳信号和块状态报告

hadoop(hdfs)常见面试题相关推荐

  1. Hadoop之HDFS常见面试题

    大数据面试题+ 一:HDFS面试题 1. HDFS的写流程 1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录 ...

  2. 分布式文件系统—HDFS—常见面试题

    1.HDFS的写流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在. NameNode返回是否可以上 ...

  3. HDFS—常见面试题

    1.HDFS的写流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在. NameNode返回是否可以上 ...

  4. 大数据常见面试题 Hadoop篇(2)

    大数据常见面试题 Hadoop篇(1)_后季暖的博客-CSDN博客1)序列化和反序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输.反序列化就是将收到字 ...

  5. 大数据常见面试题 Hadoop篇(1)

    目录 1.描述一下hdfs的写流程 读流程? 2.详细讲解一下hdfs的体系结构 3.如果一个datanode出现宕机,恢复流程是什么样的? 4.通常你是如何解决Haddop的NameNode宕机的, ...

  6. 算法面试必备-----数据分析常见面试题

    算法面试必备-----数据分析常见面试题 算法面试必备-----数据分析常见面试题 1.统计学问题 问题:贝叶斯公式复述并解释应用场景 问题:朴素贝叶斯的理解 问题:参数估计 问题:极大似然估计 问题 ...

  7. 大数据常见面试题----冲!!!

    大数据常见面试题 一.Hadoop生态 1.1 HDFS 1.1.1 hdfs读写流程 1.1.2 NameNode.DataNode的作用 1.3 hive 1.3.1 hive中内部表.外部表的区 ...

  8. java多线程常用面试_java的多线程常见面试题

    并行和并发有什么区别? (推荐学习:java常见面试题) 并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔发生. 并行是在不同实体上的多个事件,并发是在同一实体上的多个事 ...

  9. 「高级java工程师」常见面试题及其答案(持续更新)

    「java工程师」常见面试题及其答案请见: 「java工程师」常见面试题及其答案(持续更新)_好人老李的博客-CSDN博客 目录 java基础 常用的 jvm 调优方法? OOM的常见场景及其原因.解 ...

最新文章

  1. 贾跃亭晒FF 91新图,“生态化反”到底凉没凉?
  2. linux lua ide,mac os上开发lua用什么ide
  3. java redis释放连接_redis在应用中使用连接不释放问题解决
  4. 2016-08-05
  5. int *p = *******a是什么鬼?
  6. Linux操纵零碎下设置JSP开发环境的方式
  7. CreateFile创建文件 writeFile 向文件中写入东西
  8. 学习minix 3(未完成)
  9. SharePoint【ECMAScript对象模型系列】-- 07. 获取和修改List的Lookup字段
  10. poj 1389 Area of Simple Polygons 线段树扫面线,和1151一样的嘛
  11. maskrcnn ImportError: cannot import name ‘_C‘
  12. Quick-Cocos2d-x初学者游戏教程(五) --------------------- 辅助工具和跳转场景
  13. 给chrome手动安装github上插件
  14. oracle 数据库官网下载流程
  15. 网络共享计算机权限访问,局域网共享时提示:你没有权限访问,请与网络管理员联系...
  16. 开源天气时钟项目删减和更新
  17. Doclist压缩方法简介
  18. SourceTree Push 代码报错:remote: Support for password authentication was removed on April 26, 2022....
  19. EXCEL中矩阵运算
  20. 前端面试宝典。向未来开启计划

热门文章

  1. Music Store(音乐商店)简易中文教程
  2. 假如腾讯跟360之战是一场阴谋联想到的
  3. 复杂命令行参数gcc的-Wl的含义,注意是字母l不是数字1
  4. 要一颗平常心,时刻保持好自己的状态
  5. NXP JN5169 UART波特率问题
  6. 研究生项目狗自救指南
  7. ogr2ogr转坐标
  8. 在线旅游市场分析2014年数据
  9. 福建厦门双十计算机竞赛,22人夺一等奖!恭喜厦门一中、双十中学、实验中学...
  10. 【正点原子MP157连载】 第六章 TF-A 使用-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7