- 浏览: 16342 次
最新评论
文章列表
1.HttpSessionContextIntegrationFilter
位于过滤器顶端,第一个起作用的过滤器。
用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就创建一个SecurityContext出来,还是放到SecurityContextHolder中,供Spring Security的其他部分使用。
用途二,在所有过滤器执行完毕后,清空Security ...
一直通过默认配置进行设置:
namespace(是security 3.0,网上也看到一些兄弟描述的是3.0,但是总是不符合我这里的namespace配置):
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-i ...
@PreAuthorize:该注解用来确定一个方法是否应该被执行。该注解后面跟着的是一个表达式,如果表达式的值为真,则该方法会被执行。
如 @PreAuthorize("hasRole('ROLE_USER')")就说明只有当前用户具有角色 ROLE_USER的时候才会执行。
@PostAuthorize:该注解用来在方法执行完之后进行访问控制检查。
@PostFilter:该注解用来对方法的返回结果进行过滤。从返回的集合中过滤掉表达式值为假的元素。
如@PostFilter("hasPermission(filterObject, 'read')" ...
使用 Spring 表达式语言配置访问控制
基于角色标准投票机制的标准实现是使用 RoleVoter ,还有一种替代方法可用来定义语法复杂的投票规则即使用 Spring 表达式语言( SpEL )。要实现这一功能的直接方式是在 <http> 配置元素上添加 use-expressions 属性:
<http auto-config="true" use-expressions="true">
添加后将要修改用来进行拦截器规则声明的 access 属性,改为 SpEL 表达式。 SpEL 允许使用特定的访问控制规则表达式语言。与简单的 ...
auto-config = true 则使用from-login. 如果不使用该属性 则默认为http-basic(没有session).
相当于:<http>
<form-login />
<http-basic />
<logout />
</http>
lowercase-comparisons:表示URL比较前先转为小写。
access-denied-page:访问拒绝时转向的页面。
access-decision-manager-ref:指定了自定义的访问策略管理器。当系 ...
Flume采集处理日志文件
- 博客分类:
- flume
1.source
flume提供多种source供用户进行选择,尽可能多的满足大部分日志采集的需求,常用的source的类型包括avro、exec、netcat、spooling-directory和syslog等。具体的使用范围和配置方法详见source.
2.channel
flume中的channel不如source和sink那么重要,但却是不可忽视的组成部分。常用的channel为memory-channel,同时也有其他类型的channel,如JDBC、file-channel、custom-channel等,详情见channel.
3.sink
flume的sink也有很多种,常 ...
Flume 的一些核心概念:
组件功能Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。Client生产数据,运行在一个独立的线程。Source从Client收集数据,传递给Channel。Sink从Channel收集数据,运行在一个独立线程。Channel连接 sources 和 sinks ,这个有点像一个队列。Events可以是日志记录、 avro 对象等。
a1.sinkgroups.g1.processor.type = LOAD_BALANCE 负载均衡
a1.sinkgroups.g1.proces ...
hadoop2.X安装遇到的问题
- 博客分类:
- hadoop
1.zookeeper无法启动错误。 可能是由于没有关闭防火墙
2.格式化ZK时 hdfs zkfc –formatZK 无法格式化
原因 复制的命令无法正常执行,手敲的就可以
3.nodemanager无法启动 修改 /etc/hosts 文件 把里面的 127.0.0.1 hadoop
hadoop2.x常用端口及定义方法
- 博客分类:
- hadoop
Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着Hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。
这里包含我们使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper:
组件 节点 默认端口 配置 用途说明HDFS DataNode50010dfs.datanode.addressdatanode服务端口,用于数据传输HDFS DataNode50075 dfs.datanode.http.address http服务的端口HDFS DataNode ...
整体的设计方案如图:
整个配置信息存储方案由三部分组成:ZooKeeper服务器集群、配置管理程序、分布式应用程序。
ZooKeeper服务器集群存储配置信息,在服务器上创建一个保存数据的节点(创建节点操作);配置管理程序提供一个配置管理的UI界面或者命令行方式,用户通过配置界面修改ZooKeeper服务器节点上配置信息(设置节点数据操作);分布式应用连接到ZooKeeper集群上(创建ZooKeeper客户端操作),监听配置信息的变化(使用获取节点数据操作,并注册一个watcher)。
当配置信息发生变化时,分布式应用会更新程序中使用配置信息。
优点
借助 ZooKeeper我们 ...
shell 特殊命令
- 博客分类:
- shell
awk命令
作用: 在输出信息中提取相关内容
awk -F 域分隔符‘命令’
示例:
1.检测系统中UID为0的用户
awk -F: '$3==0 {print $1}' /etc/passwd
2.检测系统中密码为空的用户
awk -F: 'length($2)==0{print $1}' /etc/shadow
shift命令
对于某个命令行参数,其参数个数可以不固定,但是可以通过$*或$@进行循环操作。若用户要求Shell在不知道变量个数的情况下,还能逐个处理参数,也就是在$1之后是$2,$2之后是$3。在未运行shift命令之前$1是可用的,当使用shift命令之后,原来的$2会变 ...
shell的变量测试语句
- 博客分类:
- shell
test str1=str2 测试是否相等
test str1!=str2 是否不相等
test str1 是否不为空
test -n str1 是否不为空
test -z str1 是否为空
文件测试:
test -d file 是否目录
test -f file 是否常规文件
test -x file 是否可执行
test -r file 是否可读
test -w file 是否可写
test -a file 是否存在
test -s file 文件大小是否非0
多个条件的联合:
-a: 逻辑与
-o: 逻辑或
整数测试:
test int1 -eq int2 是否相 ...
hbase shell命令的使用
- 博客分类:
- hbase
再使用hbase 命令之前先检查一下hbase是否运行正常
hadoop@Master:/usr/hbase/bin$ jps
2640 HMaster
27170 NameNode
27533 SecondaryNameNode
3038 Jps
27795 TaskTracker
27351 DataNode
2574 HQuorumPeer
27618 JobTracker
2872 HRegionServer
如果运行不正常的话,关闭hbase后重新启动一下
stop-hbase.sh
start-hbase.sh
1. status命令
hbase(main):0 ...
本篇介绍两种HBase的安装方式:本地安装方式和伪分布式安装方式。
安装的前提条件是已经成功安装了hadoop,而且hadoop的版本要和hbase的版本相匹配。
我将要安装的hbase是hbase-0.94.11版本,需要的hadoop是hadoop-1.2.1版本。
hbase下载地址:http://mirror.bit.edu.cn/apache/hbase/hbase-0.94.11/
将下载的hbase-0.94.11解压到相应的目录,如/usr/hbase-0.94.11
将hbase-0.90.4重命名为hbase
mv hbase-0.94.11 hbase
首先需要 ...
经过跟踪hadoop源码发现,Mapper类的setup()函数在Mapper类的run()函数中被调用。
向hadoop提交job后,hadoop会在MapTask的runNewMapper()或者runOldMapper()函数中使用反馈机制实例化具体的Mapper子类,然后调用这个对象的run()函数,其中setup()函数就在这个函数的开始被调用,因为hadoop会向setup()函数中传递Configuration等一些变量,所以我们可以通过重载setup()函数来获得系统变量实现自己的功能。
/**
* Expert users can override this meth ...