Spring Security(2)认证配置
前面只是简单使用了springsecurity的登录控制功能,当然实际使用中是一定需要写一些自定义配置的;本节将通过springsecurity配置一些功能: 通过数据库用户密码完成认证 使用自定义登录页面 实现记住我功能 增加验证码功能 添加配置类配置的一个比较重要的类是 WebSecurityConfigurerAdapter 新建一个配置类去继承WebSecurityConfigurerAdapter,同时开启 @EnableWebSecurity 123456@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { } 主要做配置的就是实现这3个configure 方法; 1. 默认的AuthenticationManager 默认是获取的,而如果重写后那么将使用AuthenticationManagerBuilder 构建的AuthenticationManager ,此方法也可以用来配置认证用户信息; 123protect ...
Spring Security(1)快速入门
基本介绍Spring Security 的前身是 Acegi Security,在被收纳为Spring子项目后正式更名为Spring Security。 是一个比较常用的权限框架,主要的功能是认证和授权。同时对oauth2 也有很好的支持; 认证:认证是否是本系统的用户 授权:判断已经认证了的用户是否有某个操作的权限 官网文档: https://docs.spring.io/spring-security/reference/servlet/getting-started.html 中文文档: https://www.springcloud.cc/spring-security.html#overall-architecture 快速入门 Spring Security 和springboot集成很简单,只需要引入对应的starter就可以帮助我们完成默认的配置,并且还内置表单。 新建一个springboot项目 引入springsecurity 的依赖 1234<dependency> <groupId>org.springframew ...
hadoop(七)hadoop组件之MapReduce-MapReduce基本介绍和认识
MapReduce简介 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并行运行在一个Hadoop集群上。 简单的说就是 MapReduce 是一种先分再合的一种计算思想,框架已经将此工作模式定义好了,我们需要实现业务逻辑的那部分,就可以使用框架的这种计算方式得到计算结果。 优缺点优点 易于编程 只需要按照它得规范实现接口,实现逻辑即可,就可以完成分布式计算的任务。不用考虑分布式计算的问题。 良好的拓展性 可以通过增加机器节点拓展计算能力 高容错性 一台机器挂了,它 ...
hadoop(六)hadoop组件之HDFS-HDFS常用配置和故障恢复
常用配置项CheckPoint 配置SecondaryNameNode每隔一小时执行一次 修改[hdfs-default.xml] 更改配置 1234<property> <name>dfs.namenode.checkpoint.period</name> <value>3600s</value></property> 一分钟检查一次edit 文件 操作次数,当操作次数达到1百万时,SecondaryNameNode执行一次。 1234567891011<property> <name>dfs.namenode.checkpoint.txns</name> <value>1000000</value><description>操作动作次数</description></property><property> <name>dfs.namenode.checkpoint.check.pe ...
hadoop(五)hadoop组件之HDFS-HDFS内部原理和机制
HDFS内部原理和机制网络拓扑-节点距离计算在写文件操作的时候,客户端会优先选择离上传节点最近的DataNode执行上传操作。 节点距离的计算方式: 两个节点到达最近的公共祖先节点的距离总和。 比如 机器的节点有 公网 ,机房 ,机架。 举例说明: d1,r1,n-0 和d1,r1,n-0 之间的距离 为 0 ==》 祖先节点是自己都是0 d1,r1,n-0 和d1,r1,n-2 之间的距离是2 d1,r2,n-2 和d2,r4,n-0 之间的距离是 6 HDFS中会根据节点距离来计算如何写入数据。 当写入数据选择数据节点的时候基本原则是: 优先写入客户端所在数据节点。(客户端在集群内的情况下,如果客户端不在集群内就随机选择一个) 第二个副本在另一个机架的随机一个节点 第三方副本在第二个副本所在机架的随机节点 这样分配的好处: 优先写入客户端所在的数据节点,可以优先保证传输效率。 第二个副本在其他机架是为了支持数据容错性。 第三个副本和第二个副本在同一个机器是为了第二个副本和第三个副本的传输效率。 NameNode 和 Seco ...
hadoop(四)hadoop组件之HDFS-HDFS客户端操作
HDFS客户端操作Shell 操作官网命令参考 https://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html hdfs 基本shell 1hadoop fs hadoop fs 等价于 hdfs dfs 可以看到目录主要分为 对目录的操作 对文件的操作 权限的操作 目录的操作 创建 mkdir ls 查看目录下的文件 du 统计文件夹的大小 文件的操作 cat 查看文件 appendToFile 追加文件 hadoop fs -appendToFile test /folder1/test put 上传 hadoop fs -put test /folder1 cp 拷贝 权限的操作 chmod 设置权限 chown 设置归属 其他操作 setrep 设置副本数量 客户端操作配置hadoop环境变量为什么要配置环境变量呢,是因为hadoop的Api中,是部分Api调用到了本地方法库。所以 ...
hadoop(三)hadoop组件之HDFS-HDFS认识和说明
HDFS认识和介绍概述HDFS 是 Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统,是一种旨在在商品硬件上运行的分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的区别很明显。HDFS具有高度的容错能力,旨在部署在低成本硬件上。 一句话总结:就是一个支持分布式大数据量存储的文件系统。 适用场景: 适合读多写少不修改的场景。(不支持文件的修改) 优点和缺点优点 容错性 支持多副本保存文件 大数据量 支持TB,PB级别的数据量 支持百万以上的文件数量 低成本 对机器的要求不高 缺点 访问数据比较慢 无法高效的对大量小文件存储 hdfs的设计架构通过nameNode 存储文件目录信息,如果存储大量的小文件,将会让NameNode的数据量剧增,造成查找文件的时间变长,寻址时间会超过读取文件时间 不支持并发写入,文件修改 同一个文件只能一个写入操作。 数据不能修改,只能对数据在末尾追加操作。 HDFS 架构 HDFS中的角色 Client 客户端操作读写操作 Client 可以对文件执行读 ...
hadoop(二)hadoop的安装
hadoop 的安装hadoop 的运行模式hadoop 可以根据不同的场景或条件选择不同的运行模式。 单机模式hadoop 的默认模式。使用本地文件系统,而不是分布式文件系统。 Hadoop不会启动NameNode(名称节点)、DataNode(用于存储数据)JobTracker、TaskTracker等守护进程。Map和Recuce 任务是作为同一个进程的不同部分来执行的。 伪分布式模式Hadoop的守护进程运行在本机机器上,模拟一个小规模的集群。NameNode DataNode 等都会启动,但是都是在同一个机器上,文件系统也是用的分布式文件系统。和完全分布式的最大区别就是单机或多机器。 完全分布式模式数据存储和分布到不同的机器上,多台机器并行协作处理数据的计算和存储。 hadoop 安装这里选中完全分布式模式来安装hadoop。 机器环境准备机器准备12345192.168.199.120 hadoop1192.168.199.121 hadoop2192.168.199.122 hadoop3 关闭防火墙12systemctl stop ...
hadoop(一)hadoop基本介绍和说明
hadoop 基本介绍hadoop 是什么Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 主要解决,海量的数据存储和海量的数据的分析计算。 hadoop 有时候并不是指的某一项技术,而是一个hadoop生态圈。 包含了多种解决大数据问题的组件和框架。 hadoop 官网 https://hadoop.apache.org/ 大数据相关组件简介 Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据; Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统; Spark:Spark是当前最流行的开源大数据内 ...
shardingjdbc(九)数据源分离
读写分离是比较常见的应用场景,读库负责写入操作,多个从库通过binlog日志同步主库的写操作。读操作都落到读库上,写操作落到写库上; 基本使用shardingjdbc 也支持读写分离的功能,同时也支持读操作的负载均衡算法; 这里有3个数据源; db1 db2 db3 db1 是写库。db2 和db3 是读库; 每个库中都一个相同的表 首先配置3个数据源 配置那些库是写库,那些库是读库。 这样配置表示写操作到source-0 读操作从source-1 和source-2 使用轮询算法; 验证 执行一个插入操作,通过sql能看到只插入到第一个数据源; 而执行查询操作则是从剩下的2个数据源中轮询执行; 注意在配置数据分片的 actual-data-nodes 的时候的数据源名称就可以使用读写分离定义的名称 如上图的 my-source 具体配置可参考官网 (注意版本) : 读写分离 :: ShardingSphere 负载算法在多个数据源中负载切换内置了2种算法,分别是轮询和随机,可以根据需求配置 轮询算法 类型:ROUND_ROBIN 随机访问算法 类型:RAN ...




