- struts2_ognl入门
小漫画ing
ognl的概述:1、之前在web阶段,学过el表达式,el表达式在jsp中获取域对象中的值。2、ognl也是一种表达式,而这个种表达式的功能更加强大。(1)在struts里面操作只栈数据。(2)一般把OGNL在Struts2操作,和Struts2标签一起使用操作值栈。3、OGNL不是Struts2的一部分,单独项目,经常和Struts2一起使用而已。(1)使用OGNL时候首先导入jar包,Stru
- JavaWeb编程实战宝典(5)___ 第5章 编写Struts2第一个程序
岁月静好浅笑安然
第5章编写Struts2第一个程序5.1Struts2的MVC模式Struts2中的控制器主要有如下4个功能简单验证复制验证商业逻辑流控制Struts2框架结构可分为以下4部分JSP/Struts2标签(视图层V层)ActionSupport的子类(控制层C层)处理业务逻辑和数据逻辑的JavaBean(模型层M层)用于保存Struts2配置的struts.xml文件5.2Struts2的结构体系5
- struts2标签
虫儿飞ZLEI
layout:posttitle:struts2标签subtitle:struts2标签date:2018-06-03author:ZLheader-img:img/20180603.jpgcatalog:truetags:-struts标签标签结构image控制标签s:iterators:iterator遍历list数据准备@OverridepublicStringexecute()throws
- Java Struts2 OGNL标签库之append拼接、merge拼接、subset筛选和sort排序
帅龍之龍
#SSH古董框架Java
Struts2的表单标签可分为两种:Form表单本身和单个表单元素的标签。所有表单标签处理类都继承了UIBean类,UIBean包含了一些通用属性,分为3种。(1)模板相关属性、(2)JS相关属性、(3)通用属性。如:注册表单例子myform.jspRegist-Document用户名:密码:性别:爱好:地区:备注:control.jspstruts2标签库女男无性别append拼接结合Lista
- 九、值栈(数据传递的介质)
肖sir_嘉立老师
一、什么是值栈?==>Struts2是在有请求到达的时候为每个请求创建一个新的值栈,也就是说值栈和请求是一一对应的,值栈封装了一次请求所需要的所有数据。因此,Strus2引入值栈最主要的目的,就是在页面与Action之间进行数据交换。 其作用:用于在前台-后台之间传递数据,最典型的做法就是将Struts2标签与OGNL表达式的结合,ValueStack(值栈)实际上是一个接口,在Struts2中
- 八、Struts2标签库的应用
肖sir_嘉立老师
Struts是基于MVC架构下的JAVA框架,其控制器主要由Action来提供实现,视图则由大量的HTML页面组成。而如果在一个简单的JSP页面中加入大量的代码,都会降低系统的整体的可维护性以及可读性。因此,Struts提供了一个功能丰富的标签库,用于扩展HTML的功能。Struts标签库的标签可被分为两大类:普通标签:用于执行控制流程(包括:Control标签、Data标签)UI标签:用于丰
- 普普通通html中
ahhmdwg
jspstruts2标签
普通html中标签和struts2中标签action属性的不同普通html中标签和struts2中标签action属性值不同到底有什么不同呢?看个例子:运用struts2标签运用html标签说明:user是struts2配置文件package标签的命名空间,paymentMsg是action的name属性值,searchPaymentMsg是action类中的方法名!结论:1.运用struts2标
- Struts2标签详解及具体实例解析
-凉
技术Struts标签StringHTML
struts2标签详解A:-----超链接,类似于html里的-----执行一个view里面的一个action-----如果action的errors有值那么显示出来-----如果action的message有值那么显示出来-----添加一个值到list,类似于list.add();-----自动完成标签的内容,这个是ajaxB:-----类似于struts1.x中的,JavaBean的值C:--
- Ognl表达式
律枞
1.概述1.1.是一种功能强大的表达式,一般和struts2标签一起使用,用来操作值栈1.2.不是struts2的一部分,但经常一起使用1.3.使用时需要导入jar包,struts2有提供1.4.值栈的概念:struts2本身提供的一种存储机制,类似于域对象,可以存取值一般在action中把数据存放至值栈,在前端页面获取每次访问action都会创建action对象,每个action对象中都有且仅有
- struts2标签介绍
DouDouZH
一、package标签1、标签含义类似于包,区别不同的action,要配置action,必须首先写package标签,在package里头才能配置actionimage.png2、package标签属性(1)name属性name属性值跟功能本身没有关系在一个配置文件中可以写多个package标签,name属性值不能相同(2)extends属性属性固定值是:struts-default写了这个属性之
- 课程设计——学生成绩管理系统
qq_834251331
课程设计前端html5java
技术前端:HTML5、Bootstrap框架、JavaScript、JSP的EL(ExpressionLanguage)表达式、Struts2标签后端:JavaEE的Struts2框架、MySQL数据库(多表查询,级联删除、触发器、存储过程)、JavaBean数据验证:HTML5的原生验证模式、Struts2的Validation验证框架以及Interceptor拦截器、JavaEE的Filter
- 通过修改Struts2里面的源码使标签是否显示
键盘瞎
Struts2中修改自定义标签的源代码使标签不显示某些页面中关于权限的显示及链接的问题。可以通过修改Struts2里的自定义标签的源代码来使标签不显示我以为例1、找到Struts2里面的标签配置文件struts-tag.tldStruts2标签的源代码配置文件struts-tag.tld2、找到a节点结点标签说明:tag节点代表一个struts2的标签,里面有名称、属性、说明、源文件等内容3、打开
- struts2标签使用最常见的一个错误
叮当猫喵
TheStrutsdispatchercannotbefound.ThisisusuallycausedbyusingStrutstagswithouttheassociatedfilter.Strutstagsareonlyusablewhentherequesthaspassedthroughitsservletfilter,whichinitializestheStrutsdispatche
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
海角摩天轮
java
我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解,一介绍1.Struts2的作用Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。Struts2的标签库有一个巨大的改进之处,
- struts2 标签变形和 样式class无效 问题解决方法
CoCdod
struts2struts
在jsp使用Struts2标签的时候会发现,出现严重变形问题。解决方法,在struts.xml文件当中加入,如果要使用class请使用cssClass代替class加入后发现,部分问题解决了,但是设置的class="text-input"样式无效,不像其它输入框一样的样式,因为class被Struts2占用了,如果要使用class请使用cssClass代替class
- struts2入门教程六(struts2标签及约定编程)
王_冲
struts2
Struts2标签通用标签通用标签是用于控制执行流,当页面呈现。这些标签也允许数据提取的地方比你的行动或其他价值堆栈,如本地化,javabean,包括额外的url或其他的action。控制标签提供控制流,例如,if,和迭代器。数据标签允许数据操作或创建,bean,push,i18n。这里有各个标签使用的详细案例非常好,所有的测试类及界面写额的较为详细http://www.roseindia.net
- 简单记录Struts2和Ibatis中的一点传值和取值符号
shen_xiao_wei
Struts2
1.在页面Struts2标签引用Struts2标签声明的变量,用符号“#”,例如:很好一般较差2.Struts2的Action配置文件中,遇到转发Action时,为getOrdersForConsumer?target=success,这时,不再需要".action"作后缀,传递的变量用"${}",多个变量之间用"&&"符号的另外一种表示“&”;3.在Ibatis中,模糊查询“'%$val
- JSP中java代码与js之间的传值
鹏javatar
文档汇总javajspjs学习共享struts2
java---->js:List的传递:直接赋值就行,如下:Js代码varuserIdList="";//不加引号是错误的!为js中var赋java变量值(同样适用于el表达式和struts2标签等)时,切记需要为赋值串加引号"":如果java变量为纯数字类型的,可以不加,js可以将其识别为Number类型的;但任何时候都加上不失为一个好的习惯,可以让你不为莫名其妙的错误所困扰。引用varploI
- Unexpected Exception caught setting 'username' on 'class cn.lim.action.UserAction: Error setting exp
CoderLim
Java问题解决
用struts2标签在jsp做了一个简单的登录页面,action配置正确后,Action类中使用ModelDriven方式封装数据,但是在点击登录按钮的时候,一直以下错误且无法提取出数据:严重:DeveloperNotification(setstruts.devModetofalsetodisablethismessage):UnexpectedExceptioncaughtsetting‘us
- struts2涉及上下文对象的设置取值问题
jkqiang885
框架技术
Sturts2中:前后台数据的通讯,不仅需要Struts2标签ognl表达式还需要我们对requestsessionapplication等等,这些栈上下文做一些处理,才能保证前后台通讯的顺畅!我们可以通过以下几种办法来获取这些对象进行处理,以便进行前后台之间的通讯。方法一:取得Map类型的request、session、application:(该方式有两种方式)方式ApublicclassTe
- 《struts2权威指南》学习笔记之在Freemarker中使用struts2标签
daryl715
经验技巧之Struts2
虽然freemarker自己提供了一些ftl指令,可以对数据模型中的数据进行迭代输出,也提供了一定的条件判断能力,但struts2提供的标签远不止于此,他还提供了一些列的表现标签,例如form,因此还是需要在freemarker模板中使用struts2标签在freemarker模板中使用标签毕竟不同于jsp页面中使用标签,因为freemarker不支持tablib指令导入标签库,但struts2为
- struts2标签需要注意的问题
RaRen
1.doubleselect关于这个标签网上很多都说一定要定义form中的action,但是笔者在应用时发现,完全是错误的,action是无所谓的,name才是一定要写的,因为在查看页面源代码的时候可以看到,引用了js,js用到了form的name,所以不定义name的话会报异常.2.datetimepicker需要在之间添加这样才能正确的调用js.3.当使用与时候,也要加上
- 用struts2标签简单,解决字符长度超出文本框问题,
java-yu
struts2标签
页面引入struts2标签页面截取字符串前5位,剩下的字符鼠标移动到...时上显示剩下的字符,不足五个字符数直接显示5">//截取字符串...
- jsp中控制字符显示的字数,超出字数用省略号
java-yu
jsp
jsp表单中控制字符显示的字数,超出字数用省略号代替首先引入struts2标签5">...//鼠标移动到省略号时显示省略的字符
- SpringMVC系列之(一) 入门实例
李社河
SSH
SpringMVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3MVC了。SpringMVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀.Struts2VSSpringMVCStruts2特点也是比较优秀的MVC构架,优点非常多比如良好的结构。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会
- 带你逐步深入了解SSH框架——struts2拦截器
宇翔XGT
SSH框架JAVA
.今天内容1拦截器概述2拦截器底层原理3过滤器和拦截器区别4自定义登录拦截器5struts2标签库(会用)6struts2表单标签Struts2拦截器概述1struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面2struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每次执行默认的拦截器3struts2里面默认拦截器位置4拦截器在什么时候执行?(1
- struts2标签
xiong_jh
struts2.0里的标签没有分类,只用在jsp头文件加上就能使用struts2.0的标签库A:-----超链接,类似于html里的-----执行一个view里面的一个action-----如果action的errors有值那么显示出来-----如果action的message有值那么显示出来-----添加一个值到list,类似于list.add();-----自动完成标签的内容,这个是ajaxB
- OGNL表达式struts2标签“%,#,$”
风之尘莫
strutsognl表达式struts
本文转载自:http://www.blogjava.net/parable-myth/archive/2010/10/28/336353.htmlOGNL要结合struts标签来使用。由于比较灵活,也容易把人给弄晕,尤其是“%”、“#”、“”这三个符号的使用。由于广泛应用于EL中,这里重点写%和#符号的用法。1、“#”符号有三种用途:(1)、访问非根对象(struts中值栈为根对象)如OGNL上下
- struts2标签解释
阿炳
struts2strutslistactiongeneratoriteratorservlet
A:-----超链接,类似于html里的-----执行一个view里面的一个action-----如果action的errors有值那么显示出来-----如果action的message有值那么显示出来-----添加一个值到list,类似于list.add();-----自动完成标签的内容,这个是ajaxB:-----类似于struts1.x中的,JavaBean的值C:-----复选框-----
- jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签、struts2 action传值问题
moonsheep_liu
web开发Struts2
开发过程中常常遇到值的传递问题,不胜其扰,今天写出一些认识,也可能有的认识是错的,也请看到的大侠给指出来。文中用了不少书上和网上的例子,在此先谢过,就不一一指出了。1.先界定一下题目中概念。(1)jsp脚本:有的地方也叫java脚本,指用括起来的jsp页面中的java脚本。所有能在java程序中执行的代码,都可以通过jsp脚本执行。(2)jsp声明:用形式声明的变量和方法。可以直接用在jsp脚本中
- 算法 单链的创建与删除
换个号韩国红果果
c算法
先创建结构体
struct student {
int data;
//int tag;//标记这是第几个
struct student *next;
};
// addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
if(h==NULL) //??????
- 《大型网站系统与Java中间件实践》第2章读后感
白糖_
java中间件
断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。
看完整章内容,
- zeus持久层spring事务单元测试
deng520159
javaDAOspringjdbc
今天把zeus事务单元测试放出来,让大家指出他的毛病,
1.ZeusTransactionTest.java 单元测试
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import
- Rss 订阅 开发
周凡杨
htmlxml订阅rss规范
RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。
RSS
- 分页查询实现
g21121
分页查询
在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。
按实现形式分前台分页和服务器分页:
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据
- spring jms异步消息处理
510888780
jms
spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下:
- highCharts柱状图
布衣凌宇
hightCharts柱图
第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController { private UserServi
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
springmvcSpring 教程spring3 教程Spring 入门
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- TLS java简单实现
antlove
javasslkeystoretlssecure
1. SSLServer.java
package ssl;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import
- Zip解压压缩文件
百合不是茶
Zip格式解压Zip流的使用文件解压
ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件;
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
&n
- underscore.js 学习(一)
bijian1013
JavaScriptunderscore
工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。 学
- java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)
bijian1013
javajvmjstatd
1.介绍
jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。
jstatd是基于RMI的,所以在运行jstatd的服务
- 【Spring框架三】Spring常用注解之Transactional
bit1129
transactional
Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义:
/*
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version
- 我(程序员)的前进方向
bitray
程序员
作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....
- nginx lua开发经验总结
ronin47
使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa
- java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
bylijinnan
java
import java.util.Stack;
public class ReverseStackRecursive {
/**
* Q 66.颠倒栈。
* 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
* 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
*1. Pop the top element
*2. Revers
- 正确理解Linux内存占用过高的问题
cfyme
linux
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上:
Mem: 3889836k total, 3341868k used, 547968k free, 286044k buffers
Swap: 6127608k total,&nb
- [JWFD开源工作流]当前流程引擎设计的一个急需解决的问题
comsci
工作流
当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。
而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。
- 自定义类的equals函数
dai_lm
equals
仅作笔记使用
public class VectorQueue {
private final Vector<VectorItem> queue;
private class VectorItem {
private final Object item;
private final int quantity;
public VectorI
- Linux下安装R语言
datageek
R语言 linux
命令如下:sudo gedit /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke
- 如何修改mysql 并发数(连接数)最大值
dcj3sjt126com
mysql
MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass
- 单一功能原则
dcj3sjt126com
面向对象的程序设计软件设计编程原则
单一功能原则[
编辑]
SOLID 原则
单一功能原则
开闭原则
Liskov代换原则
接口隔离原则
依赖反转原则
查
论
编
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有
- POJO、VO和JavaBean区别和联系
fanmingxing
VOPOJOjavabean
POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被
- SpringSecurity3.X--LDAP:AD配置
hanqunfeng
SpringSecurity
前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。
将配置文件中的如下部分删除:
<!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->
- mac mysql 修改密码
IXHONG
mysql
$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-
- 设计模式--抽象工厂模式
kerryg
设计模式
抽象工厂模式:
工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。
总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,
- 评"高中女生军训期跳楼”
nannan408
首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。
孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军
- scala如何读取和写入文件内容?
qindongliang1922
javajvmscala
直接看如下代码:
package file
import java.io.RandomAccessFile
import java.nio.charset.Charset
import scala.io.Source
import scala.reflect.io.{File, Path}
/**
* Created by qindongliang on 2015/
- C语言算法之百元买百鸡
qiufeihu
c算法
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何?
代码如下:
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变量为基本整型*/
for(coc
- Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode
wyz2009107220
NameNode
正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。
1. Secondary NameNode
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image
优点:Hadoop较早的版本都自带,