- 主流行架构
rainbowcheng
架构架构
nexus,gitlab,svn,jenkins,sonar,docker,apollo,catteambition,axure,蓝湖,禅道,WCP;redis,kafka,es,zookeeper,dubbo,shardingjdbc,mysql,InfluxDB,Telegraf,Grafana,Nginx,xxl-job,Neo4j,NebulaGraph是一个高性能的,NOSQL图形数据库
- 代码扫描常见问题盘点-并发处理类/异常类
FIN技术铺
pythonjava开发语言
作者:FIN技术铺文章分类:研发技术工具/SONAR扫描投稿日期:2024-7-19SONAR系统基于项目配置的扫描规则识别交付代码当中存在的问题。本文针对日常扫描环节经常出现的问题进行梳理,盘点日常用户支持过程中发现典型案例,向用户解释为什么会被识别以及识别之后如何修改的问题。文章从风格&格式类、OOP类、集合类等典型场景进行归类,盘点各类场景下的典型问题,针对被规则命中的问题进行解释、基于示例
- maven工程使用sonar
tommyhxh
maven项目配置maven的setting.xml文件Maven插件会自动把所需数据(如单元测试结果、静态检测结果等)上传到Sonar服务器上,Sonar的配置并不在每个工程的pom.xml文件里,而是在Maven的配置文件settings.xml里。在标签添加:sonartruejdbc:mysql://10.16.8.96:3306/sonar?useUnicode=true&cha
- SonarQube扫码Android代码
Mac Zhu
android
1.安装SonarQube服务器(也可以配置公司的服务器地址)首先,你需要在本地或服务器上安装并运行SonarQube服务器:下载SonarQube:从SonarQube官方网站下载适合你操作系统的版本。解压并配置SonarQube:按照官方文档中的说明,配置sonar.properties文件,设置数据库连接等。启动SonarQube:在命令行中运行./bin//sonar.shstart(适用
- JAVA XML转JSON工具类
张志飞
xmljson
packagecom.cm.util.xmlutl;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importorg.apache.log4j.Logger;importorg.dom4j.*;importjava.io.File;importjava.io.FileInputStream;im
- java日志规范
dzl84394
日志javatomcat开发语言
原则完整原则保证日志包含足够的信息,足够支持内部控制,定位故障,审计,合规要求有效性确保日志有效,可读,最低影响打印日志肯定损耗性能,但是要将损耗降到最低一、如何打印日志1、【禁止】禁止生产环境打印DEBUG日志,禁止打印SYSOUT.OUT日志代码审查sonar应该提醒去掉sout2、【禁止】禁止将文件转为base64等形式打印3、【禁止】禁止将业务字段作为日志字段如果日志内容是对象,json等
- 代码检查工具Sonar
我是谁??
ToolsSonar
sonar介绍Sonar是一个用于代码质量管理的开放平台。通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如Hudson/Jenkins等)不同,Sonar并不是简单地把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规
- Qt之Json
信必诺
Qt
Json JSON是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰、易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 Qt之Json QT+=core 相关头文件: QJsonObject QJsonArray QJso
- Qt 创建一个json数组对象写入文档并从文档读出q
死嗑到底
Qtqt
voidcreateJsonArray(){//创建一个JSON数组QJsonArrayjsonArray;//创建一些JSON对象并添加到数组中for(inti=0;i<3;++i){QJsonObjectjsonObject;jsonObject["key"+QString::number(i)]="value"+QString::number(i);jsonArray.append(json
- windows on arm 开发指南
深圳市进化图灵智能科技有限公司
其它windowsarm
windowsonarm开发指南os:windowscpu:armArm人工智能创新应用大赛-直播课Arm人工智能创新应用大赛直播2024-09-05官方Confluence这里可以找到官方Roadmap、软件的支持列表https://linaro.atlassian.net/wiki/spaces/WOAR/overview?homepageId=28770042143gnu工具链原生支持arm
- JSON字符串反序列化失败:requires a JSON array (e.g. [1,2,3])
向上的车轮
笔记
CannotdeserializethecurrentJSONobject(e.g.{\"name\":\"value\"})intotype'System.Collections.Generic.List`1……becausethetyperequiresaJSONarray(e.g.[1,2,3])todeserializecorrectly.Tofixthiserroreitherchang
- json qt 解析数组_Qt--解析Json
信息门下跑狗
jsonqt解析数组
一、QT5Json简介QT4中使用第三方库QJson解析JSON文件。QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中。QT5新增加六个相关类:QJsonArray封装JSON数组QJsonDocument读写JSON文档QJsonObject封装JSON对象QJsonObject::iterator用于遍历QJsonObject的STL风格的非const遍历器QJs
- Qt解析json格式数据
一定会升职加薪
燃犀的QT笔记qtjson开发语言
文章目录json格式对象格式数组格式QJsonDocument,QJsonObject,QJsonArray,QJsonValue例一:如何构建QJsonObject和QJsonDocument例二:解析前面的嵌套型json数据json格式对象格式一个对象,由一个大括号表示:括号中描述对象的属性:通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对.){"name":"小明",
- sonarqube 配置文件语言选择
城市中的小泥鳅
1#mustbeuniqueinagivenSonarQubeinstance2sonar.projectKey=CS-project3#thisisthenamedisplayedintheSonarQubeUI4sonar.projectName=CS-project5#自定义版本号6sonar.projectVersion=1.0.0.078#Pathisrelativetothesonar
- 记一次 mvn sonar:sonar做代码审查时的异常处理 ...Runtime only recognizes class file versions up to 52.0
阿松哥哥2018
javamaven
记一次mvnsonar:sonar做代码审查时的异常处理Causedby:java.lang.UnsupportedClassVersionError:org/sonarsource/scanner/maven/SonarQubeMojohasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion55.0),thisver
- 【QT】学习笔记:处理JSON对象、字符串
海纳老吴
jsonQTJSON
在Qt中处理JSON数据非常方便,Qt提供了QJsonDocument、QJsonObject、QJsonArray、QJsonValue等类来处理JSON数据。下面是一个简单的代码示例,演示如何解析JSON字符串、修改JSON数据并将其转换回字符串。示例代码1.JSON字符串解析假设我们有以下JSON字符串:{"name":"JohnDoe","age":30,"isEmployed":true
- json工具类 java_JAVA中封装JSONUtils工具类及使用
weixin_39581318
json工具类java
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作。但是我们更习惯将其进一步封装,达到更好的重用。封装后的JSON工具类JSONUtils.java代码如下:JSONUtils代码,点击展开importjava.util.ArrayList;importjava.util.Collection;im
- Devops-02-Jpom 简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件
老马啸西风
java
拓展阅读Devops-01-devops是什么?Devops-02-Jpom简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件代码质量管理SonarQube-01-入门介绍项目管理平台-01-jira入门介绍缺陷跟踪管理系统,为针对缺陷管理、任务追踪和项目管理的商业性应用软件项目管理平台-01-Phabricator入门介绍一套集成的强大工具,帮助公司构建更高质量的软件持续集成平台01je
- Java List转Json
阿福聊编程
json
1.使用Gson类中的toJson()方法Gsongson=newGson();StringlistToJsonString=gson.toJson(list);2.使用JSONArrayjson=JSONArray.fromobject(list);在调用json.toString()方法转换成字符串JSONArrayjsa=JSONArray.fromObject(list);Stringre
- 2019-06-21
随机生成的名字
Jenkins集成sonarqube方案评审Jenkins+GitLab+sonarqube三者的联通1.工具的插件准备Jenkins需要安装SonarQubeScannerpluginsonarqube需要安装gitlabplugin/语言分析插件如SonarPHP2.分析的流程图流程图.jpgsonarqube分析php项目使用的方案选择1.使用sonarqube第三方插件方式【不可行】Son
- java的JsonObject取值方法
ʚ小华
javajsonwebview
importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importio.swagger.models.auth.In;importjava.io.IOException;importjava.security.KeyManagementEx
- JAVA 请求api接口 post方式 json参数 通用工具
习惯沉淀_
javajsonhttp
importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importorg.apache.http.HttpResponse;importorg.apache.http.HttpStatus;importorg.apache.http.client.methods.HttpPost;importorg.a
- DevOps - SonarQube 代码质量管理
IoTHub - 物联网开源技术社区
DevOps云原生devopsci/cd云原生jenkins
文章目录一、概述1.SonarQube简介2.SonarQube代码审查二、基础1.安装SonarQubeScanner插件2.添加SonarQube凭证3.Jenkins进行SonarQube配置4.SonarQube关闭审查结果上传到SCM功能三、实践1.非流水线项目代码审查1.1.创建自由风格项目1.2.构建项目1.3.测试2.流水线项目代码审查2.1.创建流水线项目2.2.修改项目源码2.
- DevOps - Jenkins 持续集成 Spring Cloud 项目
IoTHub - 物联网开源技术社区
DevOps云原生devopsjenkinsci/cd云原生springcloud
文章目录一、概述1.SpringCloud微服务源码2.GitLab管理源码二、基础1.创建持续集成项目2.从Gitlab拉取项目源码3.SonarQube代码审查4.生成Docker镜像5.Docker镜像上传阿里云仓库6.部署微服务三、实践1.持续集成容器1.1.创建持续集成项目1.2.Jenkinsfile构建脚本1.3.构建项目2.持续部署(Docker)2.1.GitLab创建部署项目2
- json 数组 string转化
爱吃苹果的西瓜
引入fastjson的包Json转化成对象(数组,等···)//将jsonArray转成数组JSONArrayjsonArray=JSONObject.parseArray("list");Listlist=newLinkedList();if(null!=jsonArray){intlen=jsonArray.size();for(inti=0;i<=len;i++){list.add(json
- Java集合中,isEmpty()与size()==0的区别(时间复杂度)。
徒手千行代码无bug
Javajavaspringboot
在进行集合判空时,能用Collection.isEmpty(testList)的就不要用testList.size(),isEmpty不仅可以判断集合是否为null,在时间复杂度上也更优秀。sonar规范这样描述:Collection.isEmpty()shouldbeusedtotestforemptinessUsingCollection.size()totestforemptinesswor
- Vue涉及国家安全漏洞?尤雨溪回应:前端框架没有渗透功能
涅槃快乐是金
无论是前端还是后端,只要有代码存在,就会出现漏洞。最近,有两幅关于Vue安全问题的截图在业界广为传播,截图内容表明目前有多家公司统计软件开发过程中使用Vue.js和SonarQube的情况,疑似有黑客利用Vue.js和SonarQube中的漏洞对我国境内机关和重要企事业单位实施网络攻击探测。Vue是一款流行的JavaScript前端框架,于2014年作为独立开源开发者尤雨溪的个人项目发布。时至今日
- 2018年 AMAZON LISTING 优化指南 你知道吗?
科学外贸老王
Amazon作为广大电商从业者的首要阵地为了避免贸然海运一大堆库存,投入十几万元采购的产品在亚马逊仓库长期滞销在创建listing之前就需要未雨绸缪,考虑到方方面面的优化要素下面就做一个简要总结,欢迎补充一,标题作为关键词权重最高的区块,可谓是重中之重,我们可以利用一些关键词工具例如Googlekeywordplanner,merchantkeywords,sonar等工具获取目标产品的基础关键词
- 【转】记一次 ClickHouse 数据迁移
基咯咯
ClickhouseClickhouse数据迁移
转载地址:https://zhuanlan.zhihu.com/p/220172155背景大约在2018年8月份开始正式接触ClickHouse,当时机房没有合适的服务器,就在Azure开了一台虚拟机来部署。平稳运行了两年,支撑了YiDrone和YiSonar两个重要的产品的底层数据存储和查询。前段时间采购服务器的时候预留了一些资源,加上Azure的免费订阅即将到期,于是准备把ClickHouse
- Angular应用ng build的一些边界情况boundary condition
JerryWang_汪子熙
ngbuild报错:noprojectssupportthebuildtarget究其原因,发现angular.jsonarchitect里的build被改成build2了:直接用ngbuild2是不行的,因为nghelp得到的参数列表里,根本没有ngbuild2这个选项。ngserve执行的输出:Anunhandledexceptionoccurred:Error:ENOENT:nosuchfi
- 算法 单链的创建与删除
换个号韩国红果果
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较早的版本都自带,