@(服务监控)[logstash|Elasticsearch|kibana]
Logstash:用于收集、处理、传输日志数据。
Redis:用于实时标识和传输日志数据。
Elasticsearch:用于实时查询和解析数据。
Kibana:用于数据可视化。
将原有的RMI服务调用的权限控制系统改写成Hession服务调用时,遇到了LazyInitializationException异常。此权限系统用的是ORM框架,分析产生此问题的原因是Hessian序列化对象时,此对象中包含Hibernate的集合映射,此时Hibernate的session已经关闭。<br / >
解决方法
针对Hibernate的PersistentCollection订制一个Serializer。
实现: 继承AbastractSerializer,重写WriteObject方法,再重写SerializerFactory,当对Hibernate 集合进行序列化的时候,使用定制化的序列化Class。
import com.caucho.hessian.io.AbstractHessianOutput;
import com.caucho.hessian.io.AbstractSerializer;
import com.caucho.hessian.io.CollectionSerializer;
####场景 对象调用自身具有事务传播的方法,同时使事务有效。 ####解决方法 使用AopContext.currentProxy()获取此类的AOP代理对象,用代理对象调用自身方法。注意,使用此解决方式,在spring配置文件的aop配置要添加expose-proxy="true"。 ####代码实现 Spring相关配置:<aop:aspectj-autoproxy proxy-target- expose-proxy="true"/> ####业务代码 在deliverItemAsyncCallback方法中调用deliverCallBackBusiness方法,并且使其事务有效。
设置hession调用超时的配置如下(默认为20秒,可根据业务场景自己调整):
<bean id="gateConfigFacade" class="org.springframework.remoting.caucho.HessianProxyFactoryBean" lazy-init="true" >
<property name="serviceUrl" value="${mvn.config.url}/gateConfigFacade" />
<property name="serviceInterface" value="com.changyou.npt.config.facade.gate.GateConfigFacade" />
<property name="proxyFactory">
<bean class="com.caucho.hessian.client.HessianProxyFactory" p:hessian2Request="true" p:readTimeout="20000" p:connectTimeout="20000" p:hessian2Reply="true" />
由于用户权限的限制,所以采用手动编译,如果具有root权限的话可以直接下载XAMPP包
####编译Apache Httpd
去官网下载安装包、解压
容易产生的问题是配置的时候提示缺少APR、APR-UTIL、PCRE 的lib,这个要手动下载,最新的httpd-2.4.10,直接将下载解压后的APR、APR-UTIL 分别放到httpd-2.4.10(源包)的srclib的apr、apr-util下,编译pcre到指定位置,然后再编译httpd,如下:
./configuration --prefix=/home/.../httpd-2.4.10 --with-pcre=/home/.../pcre/
####编译PHP
通过oozie job -kill XXXX,无法将其杀死,然后将oozie重新启动,重启之后发现该workflow仍然僵死,显示处于running状态,猜想应该是oozie所对应的数据库中存有该wf的状态信息,于是想去数据库中将此wf的信息删除,进入数据库中发现无法查询数据库表,原来是表被lock,原因找到,于是重启mysql服务,再重启oozie,一切ok
重启hadoop job
重启oozie
hadoop-daemons.sh start jobtracker
启动脚本 脚本说明
start-all.sh 启动所有的Hadoop守护进程。包括NameNode、 Secondary NameNode、DataNode、JobTracker、 TaskTrack