我是怎么在Spark中踩到Jetty的坑的

在Spark HistoryServer中,通过替换过滤器导致应用无法启动,报错“TimerTask is scheduled already”。经过排查,问题源于Jetty在处理过滤器时的初始化逻辑。解决方案包括避免使用同一个FilterHolder对象,以及关注Jetty源码修复的issue。最终通过临时措施规避问题,等待Jetty官方修复。
摘要由CSDN通过智能技术生成

前言

大家知道Spark有一个HistoryServer可以用来查看event log,即在app运行完成后仍然可以查看它的统计信息等,便于事后分析。我司做的产品化的Spark中,对于web页面均有一定的安全要求,例如说必须通过https访问,且禁止一些不安全的协议和算法(例如SSLv3等)。

另外一点,还基于web的filter机制做了简单的cas认证,即访问HistoryServer的用户必须先跳转到cas server进行认证,认证通过后才可以继续访问。

之前的方案是基于SAML filter做的方案,HistoryServer这边只需要作为cas server的客户单,增加两个SAML的filter(Saml11AuthenticationFilter/Saml11TicketValidationFilter)并添加一些和服务端相对应的参数就可以了(关于SAML/SSO的相关知识可以参考这里)。这几天突然说要升级,基于cas20来做,即将SAML的filter替换成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值