- 若依集成minio实现分布式文件存储
Roc-xb
若依minio
框架默认存储使用的本地磁盘,对于一些文件较大较多且有数据备份、数据安全、分布式等等就满足不了我们的要求,对于这种情况我们可以集成OSS对象存储服务。minio是目前github上star最多的数据存储框架。minio可以用来搭建分布式存储服务。目录1、ruoyi-common/pom.xml文件添加minio依赖。2、ruoyi-admin文件application.yml,添加minio配置3、
- OpenHarmony Camera开发指导(二):相机设备管理(ArkTS)
少年的云河月
OpenHarmonyharmonyos相机开发Camera
在开发一个相机应用前,需要先通过调用Camera接口获取支持的相机设备列表,然后创建相机设备对象做后续处理。开发步骤1、导入camera接口,接口中提供了相机相关的属性和方法,导入方法如下。import{camera}from'@kit.CameraKit';import{BusinessError}from'@kit.BasicServicesKit';import{common}from'@k
- php项目架构图,项目架构 · Lanson技术文档 · 看云
jfgfyth
php项目架构图
###基础项目架构**项目基于ThinkPHP3.2.3版本做为项目的基础开发框架**1.项目采用MVC结构,入口文件在index.php2.调用Common的BaseController.class.php为公共全局控制器文件3.从基础架构上,项目及满足松耦合架构,高内聚低耦合,每个项目可以独立部署,互不影响,又互相支撑4.每个项目都有一个IndexController.class.php控制器
- 在 Ubuntu 中安装指定版本的 Python
asdfghjk4300
ubuntupythonlinux
更新包列表sudoaptupdate安装software-properties-common以便使用add-apt-repository命令sudoaptinstallsoftware-properties-common添加deadsnakesPPA(这是一个包含多个Python版本的PPA)sudoadd-apt-repositoryppa:deadsnakes/ppasudoaptupdate
- Java 读取 csv 文件
HarrisHaword
java开发语言
1、引入maven依赖org.apache.commonscommons-csv1.9.02、java代码/***csv内容解析**@paramfilePath文件路径*@paramcharsetName字符编码*@returnList>*/publicList>resolveData(StringfilePath,StringcharsetName){try{FileInputStreamfil
- 立创EDA-GND铺铜后报错:连接性错误 贴片焊盘 Common 贴片焊盘 (GND): U3_1 [对象 1 与其他相同网络的对象断开了连接]
广药门徒
stm32单片机嵌入式硬件
这个错误是因为立创自带的铺铜优化设置不稳定,导致GND连线网络号对应的线路及焊盘没有相连的,或没有相连,原因:(GND的飞线穿过了导线,导致铺铜后该图中的GND没有连接上;)解决方法:关掉自动优化铺铜关掉自动优化铺铜结果成功解决
- Android 在相机中增加夜视模式+camera2+main2switcher
顾北川_野
android数码相机
/vendor/mediatek/proprietary/packages/apps/Camera2/common/src/com/mediatek/camera/common/IAppUi.javaintQUICK_SWITCHER=0;intMODE_SWITCHER=1;intTHUMBNAIL=2;intSHUTTER_BUTTON=3;intINDICATOR=4;intPREVIEW_
- 多语种语音识别新突破:使用Transformers微调Whisper模型,实现精准识别!
大模型入门学习
语音识别whisper人工智能AI产品经理职场和发展大模型Transformer
前言本文提供了一个使用HuggingFaceTransformers在任意多语种语音识别(ASR)数据集上微调Whisper的分步指南。同时,我们还深入解释了Whisper模型、CommonVoice数据集以及微调等理论知识,并提供了数据准备和微调的相关代码。简介Whisper是一系列用于自动语音识别(automaticspeechrecognition,ASR)的预训练模型,它由来自于OpenA
- hive on spark报错解决(基于hive-3.1.3和spark-2.3.0)
我不会敲代码a
hivesparkhadoop
相关配置可参考:https://blog.csdn.net/weixin_46389691/article/details/134126254原作者:月亮给我抄代码他写的很详细ERROR:Jobfailedwithjava.lang.IllegalAccessError:triedtoaccessmethodcom.google.common.base.Stopwatch.()Vfromclass
- 使用hutool工具类jwt生成token
wahaha..
java
需要引入hutool依赖cn.hutoolhutool-all5.8.10工具类packagecom.jiawa.train.common.util;importcn.hutool.core.date.DateField;importcn.hutool.core.date.DateTime;importcn.hutool.json.JSONObject;importcn.hutool.jwt.JW
- 鸿蒙NEXT开发全局异常捕获与崩溃日志收集工具类(ArkTs)
鸿蒙布道师
鸿蒙NEXT开发工具箱华为huawei鸿蒙系统harmonyosArkTsandroidios
importerrorManagerfrom'@ohos.app.ability.errorManager';import{BusinessError}from'@kit.BasicServicesKit';import{WriteOptions}from'@kit.CoreFileKit';import{appRecovery,common,Want}from'@kit.AbilityKit';
- Kotlin 和 spring-cloud-function 兼容问题
xiegwei
kotlin开发语言springcloud
错误:[ERROR]Failedtoexecutegoalorg.jetbrains.kotlin:kotlin-maven-plugin:1.9.25:compile(compile)onprojectspringdoc-openapi-starter-common:Compilationfailure[ERROR]/opt/repository/org/springframework/clou
- vue+less使用全局变量
completist00
vuelesslessvue.jscss
1、新建全局样式文件common.less,并自定义变量。2、安装插件npminstallsass-resources-loader--save-dev,然后找到build文件夹下面的utils.js修改lesscss:generateLoaders(),postcss:generateLoaders(),//less:generateLoaders('less'),less:generateLo
- Flink读取Kafka数据写入IceBerg(HiveCatalog)
徐一闪_BigData
大数据flinkiceberg
Readmejava8flink1.13kafka3iceberg0.13链路:Kafka->Flink->IceBerg(HiveCatalog)代码importorg.apache.flink.api.common.serialization.SimpleStringSchema;importorg.apache.flink.streaming.api.datastream.DataStrea
- Java学习笔记(十六):commons-io整理文档、hutool相关文档
caixingzhang
java学习笔记
目录一、commons-io整理文档1,IOUtils(数据相关)拷贝方法:拷贝大文件的方法:将输入流转换成字符串将输入流转换成字符数组字符串读写从一个流中读取内容把数据写入到输出流中从一个流中读取内容,如果读取的长度不够,就会抛出异常比较其他方法2,FileUtils(文件/文件夹相关)复制文件夹复制文件把字符串写入文件把字节数组写入文件把集合里面的内容写入文件往文件里面写内容文件移动清空和删除
- Java程序中的工具类------guava,commons
一觉睡到小小时候
测试文章javamysql数据库
一、工具类——guava为什么强烈推荐Java程序员使用GoogleGuava编程在学成项目处理全局异常用到了该工具类中的----集合ImmutableMap(不可更改)二、工具类——commons(ApacheCommons)commons-iocommons-langcommons-lang3commons-fileupload。。。。。以上两个工具类的作用类似,guava的性能和使用的体验上
- MySQL表达式之公用表表达式(CTE)
@Corgi
后端开发mysql数据库CTEWITH公用表表达式
MySQL表达式之公用表表达式(CTE)概述WITHAS语法的基本结构CTE的特点CTE的使用场景示例1示例2示例3概述WITHAS短语,也叫做子查询部分(subqueryfactoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。这个语句算是公用表表达式(CTE,CommonTableExpression)。WITHAS语法是MySQL中的一种临时结果集,CTE可以在s
- require与import的区别和使用(CommonJS规范和es6规范)
weixin-Vip1104z
程序员es6前端ecmascript
ECMAScript6(简称ES6)ECMAScript是(EuropeanComputerManufacturersAssociationScript)的缩写,它是由ECMA国际标准化定制的一项JavaScript脚本语言的标准化规范。ECMAScript6是ECMA在2015年发布的JavaScript的规范标准,解决ES5的很多先天不足并引入了模块化思想。ES6模块的设计思想是尽量的静态化,
- NodeJS中的require和import
麦兜_冰夕
ES6Node.jsnode中的requirees6的importAMD与CMD
ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。弄清楚require和import至关重要。require时代的模块node编程中最重要的思想之一就是模块,而正是这个思想,让JavaScript的大规模工程成
- COBOL语言的网络安全
褚瑱琅
包罗万象golang开发语言后端
COBOL语言与网络安全:传统语言的新挑战引言COBOL(CommonBusiness-OrientedLanguage)是一种早期编程语言,最初于1959年被开发出来,主要用于商业、金融和行政系统的处理。尽管年代久远,COBOL在大型机系统上的应用仍然广泛,尤其是在银行、保险和政府等关键领域。随着互联网的快速发展,网络安全问题日益凸显,而COBOL作为一种古老的语言,在现代网络安全环境中面临着许
- LeetCode 235. 二叉搜索树的最近公共祖先 java题解
奔跑的废柴
LeetCodeleetcodejava算法
https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/description/由于二叉搜索树是有序的,所以比题236更简单。classSolution{publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(roo
- 通过 selenium 启动 chrome
小军要奋进
pythonseleniumchromepython
在jupyternotebook中写:fromseleniumimportwebdriverfromselenium.webdriver.common.byimportBydriver=webdriver.Chrome()#这里打开的是谷歌浏览器driver.get('https://we.51job.com/pc/search?keyword=&searchType=2&sortType=0&m
- COBOL语言的折线图
东方珵蕴
包罗万象golang开发语言后端
COBOL语言与折线图:从传统到现代的数据可视化引言在计算机科学的历史长河中,COBOL(CommonBusinessOrientedLanguage)无疑占据了一个重要的位置。作为一种面向商业的编程语言,自20世纪50年代以来,COBOL一直在金融、电信、政府及其他许多行业中发挥着关键作用。尽管随着时间的推移,新技术和新语言层出不穷,但COBOL仍然在许多大型主机系统中运行良好,处理着海量的数据
- centos 7.9 单节点clickhouse-22.10.2.11 并修改数据目录
菜鸟运维只想涨薪
centosclickhouselinux
提前准备好以下clickhouse-client-22.10.2.11-amd64.tgzclickhouse-common-static-22.10.2.11-amd64.tgzclickhouse-common-static-dbg-22.10.2.11-amd64.tgzclickhouse-common-static-dbg-22.10.2.11-amd64.tgz将以上压缩包进行解压缩到
- jmeter--MD5加密
久醉绕心弦,
jmeterjmeterjava开发语言
添加BeanShell预处理程序,编写如下脚本:importorg.apache.commons.codec.digest.DigestUtils;//导入加密类,jmeter自带,不需要导入额外的jar包StringID="123";Stringsecret="abc";Stringsign=DigestUtils.md5Hex(ID+secret+"${__time(,)}");//对字符串进
- spring boot 使用spring-boot-starter-mail发送邮件
weixin_52917644
javaspringbootspringjava
1.引入依赖org.springframework.bootspring-boot-starter-mail2.配置ymlspring:mail:host:smtp.qq.com//服务地址username://用户邮箱password:授权码default-encoding:utf-83.工具类,在业务层或者控制层可以按照自己的思路调用packagecom.example.demo.common
- COBOL语言的字典
阮瑭雅
包罗万象golang开发语言后端
COBOL语言的字典引言COBOL(CommonBusinessOrientedLanguage),即通用业务导向语言,是一种高级程序设计语言。自20世纪50年代开发以来,COBOL在企业、金融和政府领域中得到广泛应用,尤其是在批处理和事务处理系统中。尽管现代编程语言层出不穷,COBOL依然保持其重要地位,尤其是在处理海量数据和维护老旧系统方面。本文将深入探讨COBOL语言的特点、历史、应用、语法
- 深入解析Webpack与Vite:从原理到实战的全链路构建指南
WHCIS
Web开发技术webpack前端node.js
第一章模块化演进与构建工具核心价值1.1前端模块化发展史:从混沌到标准化1.1.1原始阶段(2005-2009)全局变量污染问题:window.myApp={}立即执行函数(IIFE)实现作用域隔离:(function(){varprivateVar='secret';window.myModule={/*...*/}})();1.1.2CommonJS规范(2009)Node.js的模块实现:/
- 大厂算法面试 7 天冲刺:第6天-树与图深度剖析——高频算法面试题 & Java 实战
工一木子
数据结构与算法笔记算法面试java
第6天:树与图深度剖析——高频算法面试题&Java实战一、核心知识概览Overview1.树(Tree)树是一种非线性数据结构,常见于面试中的二叉树(BinaryTree)、二叉搜索树(BST)、N叉树等。常见面试考点:树的遍历(前序、中序、后序、层序)最近公共祖先(LowestCommonAncestor,LCA)判断平衡树、对称树、二叉搜索树验证等2.图(Graph)图是一种更复杂的数据结构,
- 【Distributed Architecture and Clustered Database】
Oo_Amy_oO
DataEngineer数据库
Describecommontypesofdatabasearchitecturealongwiththeirbenefits.Describesometechniquesformanagingdataandoptimizingperformance.IntroRDBMSsofferdistributedarchitecturesforcriticalorlarge-scaleworkloadss
- 算法 单链的创建与删除
换个号韩国红果果
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较早的版本都自带,