千锋杭州大数据培训老师将知道的大数据面试题分享出来,让每一位小伙伴都能如愿以偿。这次是问答题,需要的赶紧收藏吧,不需要的也很有必要收藏,万一哪天能用到呢!
1、Hadoop中需要哪些配置文件,其作用是什么?
1>.Core-site.xml:
(1)fs.defaultFS:hdfs://cluster1(域名),这里的值指的是默认的HDFS路径 。
(2)hadoop.tmp.dir:/export/data/hadoop_tmp,这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录。
(3)ha.zookeeper.quorum:hadoop101:2181,hadoop102:2181,hadoop103:2181,这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点 。
2>.Hadoop-env.sh: 只需设置jdk的安装路径,如:export JAVA_HOME=/usr/local/jdk 本机j位置
3>.Hdfs-site.xml:
(1) dfs.replication:他决定着系统里面的文件块的数据备份个数,默认为3个。
(2) dfs.data.dir:datanode节点存储在文件系统的目录 。
(3) dfs.name.dir:是namenode节点存储hadoop文件系统信息的本地系统路径 。
4>.Mapred-site.xml:
(1)mapred.job.tracker:是jobtracker的主机和端口配置 。
2、请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?
a) NameNode它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有 metadate.
b).SecondaryNameNode它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
c)DataNode它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存
储数据的节点运行一个datanode守护进程。
d)ResourceManager(JobTracker)JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
e) NodeManager(TaskTracker)执行任务
f) DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通 过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为zui 多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
g) JournalNode 高可用情况下存放namenode的editlog文件.
HDFS数据写入实现机制
3、HDFS的存储机制?
写入HDFS过程:
Client调用DistributedFileSystem对象的create方法,创建一个文件输出流(FSDataOutputStream)对象,通 过DistributedFileSystem对象与Hadoop集群的NameNode进行一次RPC远程调用,在HDFS的Namespace中创建一个文件条目(Entry),该条目没有任何的Block,通 过FSDataOutputStream对象,向DataNode写入数据,数据首先被写入FSDataOutputStream对象内部的Buffer中,然后数据被分割成一个个Packet数据包,以Packet为zui小单位,基于Socket连接发送到按特定算法选择的HDFS集群中一组DataNode(正常是3个,可能大于等于1)中的一个节点上,在这组DataNode组成的 Pipeline上依次传输 Packet, 这组 DataNode 组成的 Pipeline反方向上,发送 ack,末了由 Pipeline 中头一个 DataNode 节点将 Pipeline ack发送给Client,完成向文件写入数据,Client 在文件输出流(FSDataOutputStream)对象上调用close方法,关闭流.调用DistributedFileSystem对象的complete 方法,通知 NameNode 文件写入成功.
读取文件过程:
使用HDFS提供的客户端开发库Client,向远程的Namenode发起RPC请求;Namenode会视情况返回文件的部分或全部block列表,对于每个block,Namenode都会返回有该block拷贝的DataNode地址;客户端开发库Client会选取离客户端极接近的DataNode来读取block;如果客户端本身就是DataNode,那么将从本地直接获取数据.读取完当前block的数据后,关闭与当前的DataNode连接,并为读取下一个block寻找绝佳的DataNode;当读完列表的block后,且文件读取还没有结束,客户端开发库会继续向Namenode获取下一批的block列表。读取完一个block都会进行 checksum 验证,如果读取 datanode 时出现错误,客户端会通知 Namenode,然后再从下一个拥有该 block 拷贝的 datanode 继续读。
4、HDFS的存储机制是什么
客户端通 过把请求发送给NameNode active,NN会把文件切成1个到N个固定大小的block(一般默认为128M)并上传到DN中。当所有block拷贝结束时,NN会立即通知客户端上传结果。但此时上传的流程还未结束。DN还需要根据配置信息的副本数量,在不同的机架节点上通 过局域网作数据拷贝工作。
5、Hadoop 是由哪几个组件组成
hadoop 是一套处理大数据的生态系统,包括文件存储HDFS ,计算框架MapReduce调度框架Yarn,数据库Hbase ,数据仓库Hive,协调与锁服务zookeeper,关系型数 据库与Hbase转换工具sqoop,工作流模块Oozie,机器学习模块mahout.
千锋杭州大数据培训班定期组织与一线企业的工程师,进行面对面的就企业当下的项目讨论与研发,进而验证所学技术的正确方向。利用课余时间,定期邀请其他领域的技术,与学生互动,其讲解内容除了本专业以内知识内容,还有以外的知识扩展,其目的是进一步拓展学生的视野,为未来在工作中的技术选型、岗位调配、服务与大数据分析等,打下良好的基础。
千锋大数据面试题经众多学生验证,很靠谱!
相关文章
了解千锋动态
关注千锋教育服务号
扫码关注千锋互联
身边的移动开发导师