现在开始分析namenode启动时开启的第2类线程,jetty web访问hadoop的功能。hadoop提供了一个很简洁但是很强大的web后台用于管理hdfs与mapreduce等,大家知道java访问web的方式就是servlet的方式,然后jetty这个轻量级的web server又提供了 HTTP server, HTTP client, 和servlet container的功能(见jetty的主页说明),因此选择jetty做为内嵌的web server是最合适不过了。
实现简单的web server的功能交给了HttpServer这个类,在这个类里设置了一些servlet的映射关系以及一些初始server的各种上下文,最重要的是加载hadoop自带的webapps目录,然后生成一个在jetty中运行的webapp项目,hadoop自带的webapps目录默认包含了以下资源路径:
- datanode
- hdfs
- job
- secondary
- static
- task
如果想访问hadoop的jetty web的话,是依据
- dfs.http.address= 0.0 . 0.0 : 50070
这个配置来的,这里尤其需要说明的是,这里端口是可以随便修改的只要在1024到65536之间就好了(1024以下是root用户才能使用的端口,如果非root使用需要加s权限,然后65536是port的上限),然后监听地址必须是0.0.0.0,这个地址的含义是不限制ip的,谁都可以连接过来,如果你修改为当前本机ip,那好吧只有你本地发起的连接才有效(这个在tomcat或者jboss启动时可以参考下地址设置问题)
在HttpServer中默认提供了如下2个servlet
- stacks= "/stacks"
- logLevel= "/logLevel"
同时启动时增加了如下servlet可以访问
- fsck= "/fsck"
- getimage="/getimage"
- listPaths="/listPaths/*"
- data= "/data/*"
- checksum= "/fileChecksum/*"
如果我们想增加自己的servlet也很简单,只需要调用HttpServer的
- addServlet(String name, String pathSpec,
- Class<? extends HttpServlet> clazz)
第一个参数是servlet的名字,第2个参数是访问路径,第3个参数就是处理请求的servlet类,和配置一个servlet一样的逻辑,同时HttpServer也支持filter,你也可以实现自己的filter,例如权限验证等。
更多信息请查看 java进阶网 http://www.javady.com
分享到:
相关推荐
31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。因此,正确答案是 √。 32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存,默认是 200MB,而不是 200 GB。因此...
19. **NameNode的WebUI端口是50030,它通过jetty启动的Web服务** - **知识点说明**:NameNode的WebUI端口默认为50070。用户可以通过访问此端口查看集群的状态信息。 20. **Hadoop环境变量中的HADOOP_HEAPSIZE用于...
HBase提供了Web界面(通过内置Jetty服务器)来管理集群状态,使得监控和管理更加便捷。 **使用HBase** 要运行Hadoop和HBase,首先确保安装了Java SDK和SSH。然后,下载HBase的稳定版本并解压。启动HBase时,需要...
31. NameNode的Web UI端口是50070,可以通过Jetty启动的Web服务。 32. `HADOOP_HEAPSIZE`环境变量用于设置NameNode等守护进程的内存大小,默认值不是200GB。 33. 当DataNode首次加入cluster并报告文件版本不兼容时...
7. **Jetty**:轻量级Web服务器和HTTP客户端库,用于Hadoop的Web UI和RESTful服务。 在CentOS 6.4和Redhat 6上部署Hadoop时,lib包是必不可少的。安装过程中,需要将lib目录下的所有JAR文件添加到Hadoop的类路径...
* Namenode:负责管理文件系统的命名空间,维护文件系统的元数据。 * Datanode:负责存储文件的数据块,提供数据的读写操作。 * Block:文件系统的基本存储单元,每个 Block 都有一个唯一的标识符。 HDFS 的主要...
31. **NameNode Web UI**:NameNode的Web用户界面端口是50070,而不是50030,它通过Jetty服务运行(答案错误)。 32. **HADOOP_HEAPSIZE**:环境变量`HADOOP_HEAPSIZE`用于设置NameNode和DataNode等守护进程的内存...
31. NameNode Web UI:NameNode的Web界面默认监听50030端口,通过Jetty提供Web服务。 32. HADOOP_HEAPSIZE:该环境变量用于设置Hadoop守护进程的堆大小,默认值不是200GB,一般需要根据实际环境进行配置。 33. ...
### Hadoop源代码分析——Secondary NameNode深入解析 #### 一、引言 在Hadoop分布式文件系统(HDFS)中,Secondary NameNode虽然不是核心组件,但它在维护系统的稳定性和提高性能方面扮演着重要的角色。本文将...
31. **NameNode Web UI**:NameNode的Web用户界面运行在50030端口,通过Jetty服务器提供服务。 32. **HADOOP_HEAPSIZE设置**:HADOOP_HEAPSIZE环境变量用于设置NameNode和DataNode等守护进程的堆大小,默认值不是...
31. **NameNode Web UI端口**:NameNode的Web UI默认监听50070端口,而不是50030,且是通过Jetty服务器提供的。选项错误。 32. **HADOOP_HEAPSIZE**:HADOOP_HEAPSIZE环境变量用于设置NameNode和DataNode等守护进程...
### Hadoop源代码分析之HDFS篇:深入解析与核心模块理解 #### 一、Hadoop与HDFS:概述与核心功能 Hadoop是一个开源框架,用于存储和处理大规模数据集,而HDFS(Hadoop Distributed File System)则是Hadoop生态中...
### Hadoop源代码分析之HDFS篇 #### 前言 随着大数据处理需求的日益增长,Hadoop作为主流的大数据处理框架之一,其核心组件HDFS(Hadoop Distributed File System)的重要性不言而喻。本文旨在通过对HDFS源代码进行...
31. **NameNode Web UI 端口**:NameNode的Web界面默认监听50070端口,使用Jetty服务器提供服务。 32. **HADOOP_HEAPSIZE**:HADOOP_HEAPSIZE环境变量用于设置NameNode和DataNode等守护进程的Java堆大小,默认不是...
- HttpFS是一个Java Web应用程序,它使用内置的Jetty服务器在默认端口14000上对外提供服务。 - 它的主要作用是作为HDFS操作的网关,通过RESTful API支持文件系统的创建(Create)、更新(Update)、读取(Read)和...
31. NameNode 的 Web UI 端口是 50030,通过 Jetty 启动,这个陈述是正确的。 32. HADOOP_HEAPSIZE 设置的是 NameNode 和 DataNode 的堆大小,而不是所有守护进程,这个陈述是错误的。 33. 当 DataNode 加入集群时...
HDFS 实现了 Google 的 GFS 文件系统,NameNode 作为文件系统的负责调度运行在 master,DataNode 运行在每个机器上。MapReduce 实现了 Google 的 MapReduce,JobTracker 作为 MapReduce 的总调度运行在 master,...
这可能涉及到自定义Web服务器或者使用现有的解决方案,如Nginx或Jetty,通过HDFS的WebHDFS接口进行集成。 4. **负载均衡**:随着用户数量的增长,需要确保视频服务能够处理并发请求,这就需要负载均衡策略。可以...