天天看点

面试题总结--Hadoop面试题总结–Hadoop

面试题总结–Hadoop

文章目录

  • 面试题总结--Hadoop
    • 1. Hadoop常用端口号
    • 2. HDFS读流程和写流程
    • 3. MapReduce的程序的运行流程

1. Hadoop常用端口号

组件 节点 默认端口 配置 用途说明
HDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传输
HDFS DataNode 50075 dfs.datanode.http.address http服务的端口
HDFS DataNode 50475 dfs.datanode.https.address https服务的端口
HDFS DataNode 50020 dfs.datanode.ipc.address ipc服务的端口
HDFS NameNode 50070 dfs.namenode.http-address http服务的端口
HDFS NameNode 50470 dfs.namenode.https-address https服务的端口
HDFS NameNode 8020 fs.defaultFS 接收Client连接的RPC端口,用于获取文件系统metadata信息。
HDFS journalnode 8485 dfs.journalnode.rpc-address RPC服务
HDFS journalnode 8480 dfs.journalnode.http-address HTTP服务
HDFS ZKFC 8019 dfs.ha.zkfc.port ZooKeeper
YARN ResourceManager 8032 yarn.resourcemanager.address RM的applications
YARN ResourceManager 8030 yarn.resourcemanager.scheduler.address scheduler组件的IPC端口
YARN ResourceManager 8031 yarn.resourcemanager.resource-tracker.address IPC
YARN ResourceManager 8033 yarn.resourcemanager.admin.address IPC
YARN ResourceManager 8088 yarn.resourcemanager.webapp.address http服务端口
YARN NodeManager 8040 yarn.nodemanager.localizer.address localizer
YARN NodeManager 8042 yarn.nodemanager.webapp.address http服务端口
YARN NodeManager 8041 yarn.nodemanager.address NM中container
YARN JobHistory Server 10020 mapreduce.jobhistory.address IPC
YARN JobHistory Server 19888 mapreduce.jobhistory.webapp.address http服务端口

2. HDFS读流程和写流程

HDFS的读数据流程:

客户端将要读取的文件路径发送给namenode,namonode获取文件的元信息(主要是block的存放位置信息)返回给客户端,客户端根据返回的信息找到相应datanode逐个获取文件的block并在客户端本地进行数据追加合并从而获得整个文件。

HDFS的写数据流程:

客户端要向HDFS写数据,首先要跟namenode通信以确认可以写文件并获得接受文件block的datanode,然后,客户端按顺序将文件逐个block传递给相应datanode,并由接收到block的datanode负责向其他datanode复制block的副本

  1. client发写数据请求
  2. namenode响应请求,然后做一系列校验,如果能上传该数据,则返回该文件的所有切块应该被存在哪些datanode上的datanodes列表

    blk-001:hadoop02 hadoop03

    blk-002:hadoop03 hadoop04

  3. client拿到datanode列表之后,开始传数据
  4. 首先传第一块blk-001,datanode列表就是hadoop02,hadoop03,client就把blk-001传到hadoop02和hadoop03上
  5. …用传带一个数据块同样的方式传其他的数据
  6. 当所有的数据块都传完之后,client会给namenode返回一个状态信息,表示数据已全部写入成功,或者是失败的信息
  7. namenode接受到client返回的状态信息来判断当次写入数据的请求是否成功,如果成功,就需要更新元数据信息。

3. MapReduce的程序的运行流程

继续阅读