- 博客(38)
- 收藏
- 关注
原创 用户认证信息存放策略探讨
本文就用户认证信息存放策略做简要的探讨,用以说明当前的选择思路和未来的扩展方案。背景介绍用户认证用户认证,核心是两个步骤 Authentication:认证,指的是验证用户的身份,即一般通过账号密码登录的身份认证过程 Authorization:授权/鉴权(鉴权比较好理解),指的是在用户登录之后,鉴定其所拥有的权限 注意,上述browser不一定非得是浏览...
2020-03-28 21:10:46 1086
原创 分布式资源管理器YARN简介(一)
@(Hadoop) 为什么会出现YARN(Yet Another Resource Negotiator, a framework for job scheduling and cluster resource management),YARN的优秀点是什么,践行分布式框架设计和并行化开发时有什么启发。希望这能加深Hadoop理解和算法开发思路扩展,如TensorFlow的多核任务分配机制、分布
2017-12-17 17:04:21 3710
原创 Airflow CeleryExecutor安装和配置说明
Airflow这个神器似乎在国内用的并不算多,所以很多文档都不是很全。Celery也是个神器。本文主要记录Airflow如何将Executor切换成CeleryExecutor——只有切换成CeleryExecutor,才能实现sub节点的单节点重跑,否则整个sub节点都需要重跑。配置的坑比较多,也修改了源码,特此记录说明。1. 安装RabbitMQRabbitMQ是Celery官方推荐的生产级B
2017-02-21 07:36:27 10590
原创 记一次SQL查询优化
合理的优化,即使面对大表,也是获得很好的查询性能。表行数有52296296,是个大表,存储了各类商品每天的销售数据,每天都会往里面append数据,随着表的增大,组里的伙伴发现查询非常缓慢,已经达到调用方无法忍受的状态。我特此做了将优化过程做了记录,力图将优化过程的基本思路做个记录。未合理调优前,查询如下语句SELECT brand_name, item_number, s
2016-12-11 07:57:21 731
原创 YARN调度报错Stack trace: ExitCodeException exitCode=1解决方式
网上有很多解释,但是都不适合我,单纯看表面的堆栈信息,很容易迷惑,应该深入查看ApplicationMaster和NodeManager的日志。碰到过很多异常会有不合理的展示,导致使用者被表面迷糊,很难快速定位问题。问题的具体堆栈信息如下Stack trace: ExitCodeException exitCode=1: at org.apache.hadoop.util.Shel
2016-12-11 07:53:31 37342 4
原创 Docker尝鲜之Airflow快速安装
Docker尝鲜之Airflow快速安装 个人初步理解使用Docker应该尽量满足数据和应用隔离,数据尽量有mount在宿主机上;另外,与虚拟机相比,容器有一个很大的差异,它们被设计用来运行单进程,无法很好地模拟一个完整的环境,所以不建议一个容器塞太多的应用——容器的启动是非常廉价的。Docker设计者极力推崇“一个容器一个进程的方式”,所以遵循这样的应用原则就没错了。另外,docker exe
2016-12-01 07:06:37 18411 1
原创 WebDriver模拟输入方法
使用WebElement SendKeys方法使用JavascriptExecutor或者RemoteWebDriver执行js脚本模拟脚本输入 使用WebDriver模拟人工浏览器操作,可以实现完美的模拟操作,躲避大部分反爬虫机制。这里,再简单的介绍下常用的输入框填写模拟的方法。1. 使用WebElement SendKeys方法具体代码如下Testpublic void testSel
2016-11-23 07:07:25 6363
原创 Master-Worker设计模式
@(分布式计算集群) Master-Worker设计模式在生活中非常地常见,比如:督工和工人,督工给每个工人分配任务,也监督每个工人的工作情况。一般还有以下场景:如果有个工人身体不好,就重新将他的任务分配给其他人;现实中一般督工就一个,督工自己也有可能身体不好,然后呢?就没有然后了——也有可能由一个工人暂时顶替,或者再从其他小组挪一个督工,或者由一直陪同的小秘顶上。额外补充的场景是为了能够应对不
2016-09-30 06:33:16 8485 2
原创 快速配置Linux下SSH无密码登录
快速配置Linux下SSH无密码登录@(Linux配置) 使用ssh免密登录在分布式集群部署中基本上都需要,比如Hadoop集群的部署。本文简述如何快速实现多台机器ssh免密登录。准备工作配速配置前先做防火墙和selinux的关闭 针对Centos的防火墙, centos 7: systemctl stop firewalld.service #停止 systemctl disabl
2016-09-06 21:27:10 716
原创 Office2Pdf工具开发
Office2Pdf工具开发@(工程开发) 近期,由于公司内部有个组件需要完成word转pdf的功能,在网上做了基本的了解和测试,发现OpenOffice+JobConverter是比较稳定有效的方案。记录如下Office2Pdf工具开发OpenOffice简介安装启动JobConverter简介测试OpenOffice启动和关闭windowslinuxJava代码ew使用
2016-09-06 21:22:33 3157
原创 CDH5.8安装说明
CDH5.8安装说明@(Hadoop) 使用过Ambari,不知道是因为没有商业运作支撑还是社区活跃度有限,总体管理能力只能算凑合。很多Hadoop组件版本都不高,Spark也才1.3.X,Sqoop还是1.4.6.2.3,相对版本都比较低,而且管理并不算优秀。遂放弃,准备使用CDH做下测试。 CDH在版本跟踪上还是比较密切贴近Hadoop的各个模块版本,基本上在修复版本上差个一两个版
2016-09-03 15:54:03 13333 5
原创 log4j2的JsonLayout测试
log4j2的JsonLayout测试@(工程开发) 最近在开发通用的分布式日志采集器。碰到日志信息块的划分问题,尤其是碰到有异常堆栈的情况,需要做合并操作。当前我们的解决方案是使用日志块的起始时间来判断。有过萌生使用JsonLayout的想法,直接可以映射到ElasticSearch,方便创建索引,减少过多的字段切分。遂测试了log4j2的JsonLayout,网上资料还不多,简单的做下备忘。
2016-09-03 15:44:53 9667 2
原创 推荐系统应用场景
底下是一个网友对推荐系统的比喻我觉得这个比喻是很恰当的。延续这个网友的比喻,做个扩展说明搜索行为是带有目的性的,就好像那个女人有意向且急需购买一件碎花长裙,因为要与离别半载的男友见面,她想打扮出小男友心目中的清新女神。所以在周五的时候她上街,显得很匆忙,只希望能够快速找到一件心仪的礼服,但是店铺很多,虽然时下有很多新款长裙,但是由于区域首先,她出出入入很多家门店
2015-03-29 10:23:25 4394
原创 中文新词发现算法解析
现在社交网络和视频网站发展都非常迅猛,参与人数非常多,每日UGC量非常可观。也因此经常制造爆炸性新闻,新词的制造和流行也频频出现。不同的社交圈内,由于话题性的不同,其新词分布也不同,所以直接引入搜狗等输入法的新词,会造成新词污染。因此,往往需要基于自营社交圈的语料库做新词发现,才能实现更精确的文本语义分析。 算法解析:我将新词发现流程比喻为判断默认男女是否为伴侣关系(这里限指关系比较稳
2015-03-19 21:02:44 23499 7
原创 中文分词开源软件整理和基本判断
这是刚入数据挖掘组,只有读过吴军《数学之美》的情况下做的中文分词调研。很简练,是那个时候的笔记。是我在NLP和数据挖掘的开端,在离开小组前,整理出来,以作纪念。 1. IK AnalyzerIK Analyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。 初判:使用文法分析的算
2015-03-19 21:02:28 1862
原创 Mmseg中文分词算法解析
Mmseg中文分词算法解析@author linjiexing开发中文搜索和中文词库语义自动识别的时候,我采用都是基于mmseg中文分词算法开发的Jcseg开源工程。使用场景涉及搜索索引创建时的中文分词、新词发现的中文分词、语义词向量空间构建过程的中文分词和文章特征向量提取前的中文分词等,总体使用下来,感觉jcseg是一个很优秀的开源中文分词工具,而且可配置和开源的情况下,可以满足很多场景
2015-03-12 20:17:25 2024
原创 Solr Suggest智能提示配置说明
有时候,为了实现如下功能 以满足用户在输入个别单词的时候,能够自动联想提示,这样可以避免用户的冗余输入并提供一定的推荐,从而实现更好的交互效果和内容推广效果。这样的功能有很多实现方式,成熟的Solr其实就已经封装了这样的功能,而且只需要简单的配置就可以完成。(注,本人使用的是Solr-4.10.0版本) 1. 配置suggest功能点打开solr-config.xml,查找到s...
2015-03-11 20:28:42 8248 3
原创 Solr配置文件说明
为了满足多类型索引的建立和不同搜索需求,solr提供了MultiCore的机制。使用中,只需要通过配置Core相应的参数文件,就可以满足热扩展。本文主要介绍每个core下相应的关键配置文件和HttpGet请求接口。 1. Core的文件路径 test_core |-- conf |-- schema.xml ——配置索引域和数据域的对应关系...
2015-01-18 19:18:38 747
原创 Solr快速新建core流程
今日搜索业务上有个新需求,希望能够满足新数据库表的搜索功能,该表结构和之前线上运营的表结构不同,最终域也不可能一致,再者使用用户群也不同,所以只能考虑有独立的新搜索服务。我们知道,为了实现同一个solr实例可以满足多种搜索索引并存,solr早在1.3版本就建立了多核(MultiCore)的机制。现在我使用的是4.10.0版本的solr,已经相当成熟,早已实现core的配置文件...
2015-01-18 19:13:11 5015
原创 信息熵的直观理解
本人并没有真正接触过信息论,对信息熵也只能算是道听途说,但是基于对《信号与系统》这个学科的兴趣和理解力,本人惊叹信息熵的实用性,经常以理论指引的方式用于物理理论的理解和算法的通俗化思考。比如,本人写过的《压缩算法引申》。信息熵可以称得上伟大的论著,对很多领域的现象都能给予很好的概括性论述。 信息熵的直观理解 要理解信息熵,其实并不难,因为生活中无处不是信息熵的体现。比如,假设你是
2014-12-20 20:19:06 16090 1
原创 javax.servlet.Filter接口解析
简述:Filter英文释意是过滤器,滤波器。接触过信号处理的一般很熟悉这个概念,但不一定特别理解这个概念。其实,理解这个概念,最简单就是从实际中我们使用过滤器的例子——筛子,通过使用筛子,我们可以将面粉和无意中洒入其中的沙子分离。同样,信号处理中的Filter也是这样的作用,将输入信号用一定的窗函数处理后,过滤掉冗余或者不需要的信息,然后输出。但是,我们可以考虑在捣鼓筛子的时候再新增一些元...
2014-09-06 17:37:11 3384
原创 java并发[一]探索获取合理的并发数
背景介绍: 最近技术调研,需要一次性解析大量的velocity模板,velocity解析做了大概的优化配置。其中,性能瓶颈主要涉及到批量Velocity模板解析和批量文件写入。为了满足效率要求,使用java.util.concurrent.Executors [JDK1.5 引入的线程池管理]管理并发,写了个工具类,采用固定数目的线程池,如下 public clas...
2014-08-23 06:54:33 1433
原创 使用jstree自定义下拉菜单树组件
开发背景: 每次都很啰嗦,要先陈述一下开发背景。不过,这样做的目的一来是让自己能够快速回忆起自己的实战背景,二来是类似引子,能够阐述这样处理的实际用途,不仅仅是用于理论学习。 今天记录下的是前几天开发的一个下拉框组件,该组件内容是一棵菜单树。本来系统开发的时候使用的是BUI,BUI本身也有下拉树组件。只是因为我们使用的BUI版本比较早,今年的版本和去年的在某些方...
2014-08-14 20:07:24 20723 14
原创 (二)正则表达式之常用表达式详细解析
背景简介: 今天比较清闲,就kank正则表达式的语法不直观,而且书写规则出奇的复杂,因为它们把某些位置上的字符串解析为运算符,而把仅在位置上稍微不同的相同字符串当作字面量。比不易书写更糟糕的是,正则表达不直观,不易被直接理解,从而修改起来难度也比较高。一般,要正确的阅读正则式,需要对正则表达式的整个复杂性有相当彻底的了解。但是,从相反的角度,正则表达式非常凝练,是处理字符
2014-08-04 20:15:00 1054
原创 java如何解决解析html的单引号嵌套
这是一篇比较简单文章,主要是用于技术备忘。 这里解决的主要问题是,后台需要拼接html字符串,在html字符串中会有引号包含单引号的情况,尝试了很久,才知道尝试出结果:sb.append("data-rules='{selectRequired:[true,'" + "#sl" + bo.getKey() + "']}' ");因为JAV...
2014-08-02 14:30:21 3133
原创 [struts2.x] 探索struts值栈如何赋值给action成员变量
接着上篇博客论述:测试到这里,我要的结果已经有了,但是我还有个疑问,就是我并没有指定map的实现类,struts2.x是用什么策略去实例化这个map的?为了探索这个问题,我做了如下测试,这个测试的内容比上述还有意义得多O(∩_∩)O~。首先,还是不指定map的实现类,修改getter方法,如下 public Map<String,Object> getMap() {...
2014-07-30 21:00:50 1721
原创 [struts2.x] 通过Map从前端传递动态扩展的属性
应用背景简介:这两天有个开发任务,为了满足多个资源使用统一管理模块管理,需要提供自定义动态属性配置,从而不需要修改后台代码,可以满足经常变化的属性需求。后台的其它部分,在后续其它文章中总结,这里主要介绍一下如何将这些动态属性传递到后台。这里,我们使用的MVC框架是struts,从前端传值到后台,使用struts可以轻松完成POJO的值注入。如果我们要完成动态属性定义,就不可能预先知道这个属...
2014-07-30 20:49:27 1341
原创 使用CodeMirror实现在线velocity语法高亮和自动联想功能
使用背景: 最近需要开发一款线上velocity编辑器,用于配置模板的管理。为了能够使用户觉得好用,编辑器需要提供velocity语法高亮,并且能够提供自动联想功能。需求是比较清晰的,但是完全自己写编译器,难度太高,是不可能的。而且,软件业不鼓励重复造轮子。所以,首先搜索现成的插件,主要以javascript为主。这方面的资料并不算多,有的介绍也是比较简单,最近Google被封死,部分翻...
2014-07-27 10:17:38 21520 9
原创 (一) 正则表达式快速入手指南之字符集合表达式(包含个人总结)
我们都知道,正则表达式可以很方便地对字符串进行匹配、查找、分割等操作。但是,面对看似复杂的符号组合,自己就曾被唬过,感觉这是一种难以理解的语法,所以碰到的时候也就查查对应的正则表达式是表示什么意思,并没有尝试了解。人总是被逼的,轮到自己开发有关字符串的匹配功能的时候,发现使用字符串拆解比对的方式,逻辑上实在很繁杂,不简练更不直观,程序的健壮性也不敢想象。可见,即使某种语言是正交完备的,也不一定能很
2014-07-26 20:16:06 2967
原创 通过Spring获取指定路径下的class
实战背景: 博主在上篇文章Spring启动后加载类或启动类方法大致聊到背景,是为了开发一个自定义注解,根据注解生成说明的菜单树,用于前端编辑。这就要求Spring启动后就扫描特定的包,然后解析自定义注解,“填入”菜单树的业务领域对象中。这个细节将在另外一篇文章具体解说——有关自定义注解和解析实战。 我们知道,虽然JAVA有提供几个操作资源的接口,但是不是很给力...
2014-07-24 21:09:37 2443
原创 Mysql的varchar(20)到底可以存储多少个中文字符
背景: 今天群里问说“Mysql的varchar(20)到底可以存储多少个中文字符”,很多直观回答是10个字符。这个问题其实很容易得到结果。博主就动手测试了一下。 动手测试之:新建表:CREATE TABLE varchar_test (`id` int(11) NOT NULL ,`string` varchar(20)) ENGINE=InnoDB...
2014-07-22 20:23:52 46115 7
原创 Spring启动后加载类或启动类方法
使用背景: 有两个简单的方法,都是在applicationContext.xml中配置beanbeanid="templateAnnotationInit"class="com.cnc.apm.handler.ParseTemplateAnnotationHandler"/>其中,ParseTemplateAnnotationHandler是JavaBean。Spring容器启
2014-07-22 19:54:34 12904
原创 struts2.x多文件上传(使用注解)
struts2.x多文件上传(使用注解) 一般网站都会提供文件的上传与下载的功能,尤其是资料管理型网站。刚好在工作中需要用到,就提前学习了一下,并建了一个maven工程做练习。 1. 本工程使用maven创建工程,是为了省去包导入细节,其中maven工程的pom.xml文件主要如下:dependency> groupId>org.apa
2014-07-17 19:35:00 2372
原创 Hibernate持久化对象生命周期之实战探索
持久化对象的生命周期,是Hibernate应用中的一个关键概念。对生命周期的理解和掌握,对Hibernate的正确应用很有必要。…… 言归正传,Hibernate持久化对象生命周期有3种状态:Transient(瞬时状态),persistent(持久状态),Detached(游离状态)。定义这三类状态,其实是和Hibernate的session息息相关。所谓transient,
2014-07-16 20:48:37 845
原创 自定义JSP标签
1.自定义JSP标签的优点1.1 通过自定义JSP标签,可以实现代码模块化,提高代码的重用性;1.2 具有很好的封装性,优化界面设计,使用者无需知道标签具体的实现方式,甚至包括实现机制;1.3 自定义JSP标签已经很成熟,开发也非常便捷。 2.JSP标签原理简介 标签本身是一个JAVA类,自定义标签可以在JSP页面嵌入自定义的“动作元素”,JSP引擎解析JSP界
2014-07-15 20:57:17 824
原创 压缩算法引申
有一天,有个同事在群里发了一个有关很牛叉的压缩的介绍链接,个人根据自己以前学的信号处理,做了下述的评论,这仅是我作为外行人的评论,不一定准确,还望各位看客给个讨论的空间:那篇压缩文章链接: 在压缩算法界,有个笑话:「圆周率(Pi)压缩法」就是一个例子,常被用来开压缩算法的玩笑 —— 但不止是玩笑而已,理论上确实管用。方法是你把想要的压缩文件二进制化,然后在二进制化的 Pi 序列里找这段
2014-07-15 20:54:34 1650
原创 首发博客
有好几年没有写博客了,跨了不仅一个世界杯。是的,要严格算起上一轮的最后一篇博客,应该是2009年的冬季,那年雪特别大,也是我人生的低谷。从那时开始,我放弃了用组织的文字去记录生活的感悟。时隔多年,我并没有放弃对生活思考的习惯,但没有再用键盘记录思维的点点滴滴。 总之,我是有那么几年没有好好写过日志或者博客了…… 这次在博客园提笔,还得从去年说起。去年3月份,感受到白色象牙塔的另一面,感
2014-07-15 20:51:52 596
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人