【框架解析】Hadoop系统分析(九)--Http服务

hadoop内嵌了jetty的服务,提供了一系列的servlet供外界或是内部节点之间使用http访问

  1. HttpServer
    封装了jetty的Server,提供http服务
    默认会提供三个context
    • /logs/ 指向log目录 配置为hadoop.log.dir
    • /static/ 指向统计目录src/webapps/static
    • / 指向jsp页面目录src/webapps/
      设置三个servlet
    • StackServlet
    • LogLevel.Servlet
    • JMXJsonServlet
      最后在start方法中启动server
  2. DFSServlet
    dfs的基础servlet,提供几个基本工具方法
    1. writeXml
      把一个exception写入xml
    2. getUGI
      从request中获取到用户信息UserGroupInformation
    3. createNameNodeProxy
      创建一个namenode对象
    4. createRedirectUri
      创建重定向到访问目标文件的链接地址
    5. getFilename
      从request中获取要访问的文件名
  3. StreamFile
    继承自DFSServlet,使用http方式从dfs中下载一个文件
  4. ListPathsServlet
    1. 继承自DFSServlet,使用http方式读取dfs中的目录结构列表
    2. 通过recursive参数指定是否读取子目录
    3. 通过exclude和filter参数来过滤不需要的文件或是指定匹配的文件
    4. 返回结果使用xml格式
  5. FsckServlet
    通过http调用namenode的fsck功能
  6. FileChecksumServlets
    文件校验信息的servlet
    1. RedirectServlet
      重定向到datanode去获取文件校验信息
    2. GetServlet
      获取文件校验信息,超时时间为configuration中的dfs.socket.timeout配置项
  7. GetDelegationTokenServlet
    通过http方式获取一个代理token
  8. CancelDelegationTokenServlet
    通过http取消一个代理token,token串放在request的token参数中
  9. ContentSummaryServlet
    获取到指定文件的文件信息,以xml方式返回ContentSummary对象
  10. FileDataServlet
    通过servlet获取文件数据
  11. AdminAuthorizedServlet
    继承自DefaultServlet,在调用DefaultServlet的doGet前,判断是否有权限进行访问
  12. GetImageServlet
    通过http获取secondary的imaga文件与editlog文件
  13. JMXJsonServlet
    使用servlet访问hadoop的jmx监控信息,以json的方式返回结果
  14. StackServlet
    查看当前线程堆栈
  15. MapOutputServlet
    启动在tasktracker上的http服务,使用http方式给其他节点提供map操作的输出结果
  16. MetricsServlet
    已经不推荐使用,获取集群的统计信息
  17. RawHistoryFileServlet
    查看历史任务日志
  18. TaskGraphServlet
    根据jobid参数以svg格式输出对应任务的运行状态图表
  19. TaskLogServlet
    输出任务运行日志

猜你喜欢

转载自blog.csdn.net/shorn/article/details/8638821
今日推荐