暂时未有相关云产品技术能力~
阿里中间件(Aliware)官方账号
Spark是一个小巧玲珑的项目,由Berkeley大学的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,充分体现了精简之美。 Spark之依赖 (1)Map Reduce模型 作为一个分布式计算框架,Spark采用了MapReduce
本来安装这件事情,不用单独开一篇谈的。但是Spark的安装实在是一件点蛋疼的事情,这和Spark的语言和框架两者有颇大的关系。 Spark是Scala语言写的,所以要先安装Java和Scala,而底层的调度框架是Mesos,Mesos是C++写的,所以又对机器的glibc和gcc环境有一定的要求。
最早lucene2.4以及以前,追溯到2008年前后,lucene刚刚引起大家的关注,到后来Nutch、solr的出现,lucene变得更加热。Nutch、Solr的发展,极大推动了lucene的升级。对于一些接触过搜索,使用过lucene、solr的人来说,一般都会感觉lucene、solr很牛.
受害人口述悲惨的遭遇—— 1、最近一段时间(更换了预发机器后)我负责的一个应用的预发环境(线上稳定得像个婴儿~)特别不稳定,最先是应用频频的过几天就发现提供的接口不工作了,但容器Jetty还在跑得欢,于是jstack/jmap看,发现没有一个线程在跑我的war包中的程序,但是容器里个中间件的sar
本文翻译自官方博客,略有添加:https://github.com/mesos/spark/wiki/Spark-Programming-Guide,谢谢师允tx的校正。希望能够给希望尝试Spark的朋友,带来一些帮助。目前的版本是0.5.0 Spark开发指南 从高的层面来看,其实每一个S
(H2与HBase)面向行or面向列的存储模型? 目录 0. 示例 1. H2怎么存储pet表的记录? 1. 1 DATA_LEAF页格式 1. 2 DATA_NODE页格式
NumericField和NumericRangeQuery是Lucene 针对数值型区间查询的优化方案。在展开阐述 NumericField 和NumbericRanageQuery 的实现原理之前,对于Lucene范围查询的实现和概念可以参考博文《TermRangeQuery源码解析
SolrQueryLog DataMineSolrQueryLog DataMine 这一块工作非常具有市场和技术价值。尽管现在还没有开源的,有一个付费系统soleami 读作 so ray me。 我个人正在初步积累相关知识,依赖NLP和结构化信息提取虚拟团队,正着手搭建一个通用、可开源的So
0. 亲,低级错误知多少 "" 写成了“” <br> true 写成了 ture <br> false写成了fasel <br> String 写成了 string <br> userId 写成了userid <br> user_id 写成了 user_Id <
性能压测本身是一件非常有意义的事情,也是非常复杂的工作。对搜索引擎压测,不仅是数据集构建、查询集构建、 标准参照集构建等麻烦,而且只需一轮测试周期常,测试结果与语言本身有关联,更与集合其他数据有潜在关联,因为排序是 整体的,互关联的。 测试的具体执行环境、执行用例、参数配置和清除、quer
BufferedInputStream是一个带有内存缓冲的InputStream. BufferedInputStream是继承自FilterInputStream。 FilterInputStream继承自InputStream属于输入流中的链接流,同时引用了InputStream,将In
简介: Apache MINA(Multipurpose Infrastructure for Network Applications) 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用。它通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议(如TCP/
了解完Apach MINA的一些基本概念Apache MINA (1) 简介 ,开始进入MINA相关的代码学习,以一个简单HelloWorld程序开始,完成客户端与服务端之间的通讯。 准备工作: org.apache.mina 版本4.0 org.slf4j 1.6.1 (Simple
二叉树: 一个根节点,每个节点下挂着最多2个子节点。、 概念: 度:结点的分支数,二叉树度为2。 深度:树的层次。 二叉排序树: 二叉树的基础上,每个节点上都有一个数字,节点上的数字都比右节点上的大。 应用场景: 基于内存的排序数据结构,写入时将数据写入到对应的位置。数据可能会出现倾
本文主要是讨论下两个类似产品:ZooKeeper和Diamond在配置管理这个应用场景上的异同点。 Diamond,顾名思义,寄寓了开发人员对产品稳定性的厚望,希望它像钻石一样,提供稳定的配置访问。Diamond是淘宝网Java中间件团队的核心产品之一,服务于集团线上很多核心应用。目前已经开源,开
在ZooKeeper的运维过程中,我们经常会碰到这样的问题,就是快照数据文件越来越大,但是ZooKeeper上的数据节点数量并没有相应的增加。 这说明什么问题:一定是有客户端在将ZooKeeper当数据库使用了。长此以往,必然会引起ZooKeeper内存数据过大而影响性能及集群间的数据同步。 那
当大家都在关注搜索的速度的时候,往往伴随业务的快速发展,数据服务质量成为了实时搜索或者垂直搜索中的新问题。实时搜索和垂直搜索是不一样的问题,下面的问题就是垂直场景下得实时搜索问题。也可以理解垂直搜索都不实时,其他的实时先排队吧。问题比较抽象,只谈总体上的现象,对于具体如何解绝问题的细节,不做说明。.
在分布式环境开发中经常会使用socket,或者使用rmi来对外提供服务,常用的办法是将写一个java代码,然后部署到服务器上,但是问题来了。如何将这个服务成为一个可靠的系统服务,不会应为风吹草动就挂了,那就不好了。 所以想到使用apache commons 下面的daemon框架来充当守护进程。首
单维度聚合分析,主要解决类似以下场景的问题 (1)同一个用户搜索输入关键词 (2)某个时间段内搜索词排行榜 (3)某些关键词联合出现情况 (4)IP位置 维度下的关键词聚合情况 (5)其他任何参与搜索的单维度搜索请求统计 (6)平均命中率、hits=0、查询平均响应时间 ......
前段时间,夜晚突然收到报警,紧急上线排查。由于dba操作不当,大片数据回滚,发生锁表的情况,请求返回时间过长,使得系统打印出大量的RejectedExecutionException的异常。定位到代码片段类似: Java代码 ThreadPoolExecutor workers =
本文主要记录配置安全的Impala集群集成Sentry的过程。Impala集群上配置了Kerberos认证,并且需要提前配置好Hive与Kerberos和Sentry的集成: 使用yum安装CDH Hadoop集群 Hive配置kerberos认证 Impala配置kerberos认证 配置
人们总觉得这个搜索领域很多秘密,门槛如此之高,如此神秘。其实不是那么回事。基本的原理、流程理解了。就可以做到心中不慌。先了解机制,细节和具体才是难点,不要被难在开始!下面就结合实际经验积累,给出参考信息。不针对任何排序模型,只描述粗略内容。具体场景具体怎么高,私下交流。 提示:排序规则务必公开,否
Worker模式 想解决的问题 异步执行一些任务,有返回或无返回结果 使用动机 有些时候想执行一些异步任务,如异步网络通信、daemon任务,但又不想去管理这任务的生命周。这个时候可以使用Worker模式,它会帮您管理与执行任务,并能非常方便地获取结果 结构 很多
需求: 个性化得分排序:类似 Score= defaultTextScore*facetA + offlineValue*(1-factorA) 方案: 目前直接支持的排序、全部候选方案。推荐1 和2. 参见样例! 1: sort by (score, offlin
尽管lucene、solr如此的频繁、如此的普遍被使用。仍然有许多人、需要开发者所见即所得的方式,将查询用起来。一方面为了迎合传统sql用户的习惯,另一方面提升通用搜索产品的可用性,也丰富solr的功能接口。有必要实现 类sql的 solr查询实现。 社区总是无比的强大,总是只要你能想到的
关于trieField的理解补充下3篇文档,相当的系统、全面!看相关文档连接,不解释。 http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/api/all/org/apache/lucene/search/NumericR
Solrflux 开源code google 地址 http://code.google.com/p/solrflux/ 1.Solrflux 概述 Solrflux 主要工作是完成 Sql 语法到solr语法的转换,并执行查询,保存结果。 当前solrflux已经停止更新了,
在分布式环境当中使用erlang语言来构建底层应用,利用erlang的简洁的脚本语言可以简化代码的复杂度,并且还能很大程度地提高系统的容错性和稳定性。 erlang固然有他的优势,但是,它在开源社区开发人员的活跃性远远不及java社区,在java社区中,在分布式场景中使用的中间件,比如,
本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西。本文并非一个ZK搭建的快速入门,关于这.
本文主要讲述在使用ZooKeeper进行分布式锁的实现过程中,如何有效的避免“羊群效应( herd effect)”的出现。 一般的分布式锁实现 这里简单的讲下一般的分布式锁如何实现。具体的代码实现可以在这里看到:https://svn.apache.org/repos/asf/zookeepe
1. GC的选择 4core、8g memory 首选cms,cms的各参数的调节需要观察。 2. swap配置 性能优先,建议关掉。关掉的代价需要评估。关掉之后buffer/cache等变化需要观察! 3. newSize maxnewsize 尽量小 并且值相同,PermSize
查询问题,最直接的反馈就是页面出来的结果。然后牵扯到的问题就一步一步深入了。第一层:queryparse,其中关联分词,关联booleanquery orphrasequery,关联boost。。。。第二层:排序了,关联排序的策略、排序的得分公式第三层:各种转换、过滤、筛选后的页面结果这里重点将q.
下面的内容包括概念都是个人想到的,不专业或者不规范请知晓。理解意义就行。 1.为什么是facet 搜索与推荐本来是不分家的,搜索没有推荐就是存储了,有推荐的搜索才是真正的搜索,才体现搜索的“情感”(query解析、排序、页面展示)、搜索引擎的“难点”(用户意图理解、最有价值信息、最友好交互
情况回放: 上周预发机器出了一个问题,CPU不定时会近100%满负载运行。重启以后就会恢复,之后又会到达100%,而且不会自恢复。 首先想到的是程序出现了死循环,于是用jstack把栈打印出来,发现业务线程都停在了regex相关的代码上,有死循环的样子。 查看栈,发现一切都是由ClientFi
MinHash首先它是一种基于 Jaccard Index 相似度的算法,也是一种LSH的降维的方法,应用于大数据集的相似度检索、推荐系统。下边按我的理解介绍下MinHash。 举例A,B 两个集合: A = {s1, s3, s6, s8, s9} B = {s3, s4, s7, s8,
淘宝系统依赖关系比较复杂。A系统依赖B系统资源,当B系统发生故障的时候,A系统势必会被拖累,导致A系统也发生故障 图:[ A]--依赖-->[B] 这里的依赖要区分两种情况 1、A强依赖于B 任何强依赖都要尽可能的转化
弱依赖“并发请求数阀值”这个值设置多少合适? “并发请求数阀值”在大部分情况下可以理解为同时工作的线程数阀值,这个值不是越大越好,也不是越小越好,而是在最高QPS输出的情况下这个值越小越好。这个也是系统性能优化的一个方向,高QPS,少线程。 线程它是驱动业务逻辑执行的载体,在执行
Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有: (1)filterCache (2)documentCache (3)fieldvalueCache (4)queryresultCache 而每种Cache针对具体的查询请求进行对应的Cache。本文将从
简单介绍下 在较早版本的 Lucene 中对一定范围内的查询RanageQuery 。该Query 继承于 MulitTermQuery,在重写(rewrite )Query 树的时候将会遵从一个原则: 根据起始区间值获取term, 然后遍历,根据满足条件的term 的数目来决定重写Query 的
solr调优步骤参考这篇blog主要以实践出发,从顶到底,从大到细的思路来进一步描述,solr优化,并且是基于横向发展来说的(管理更多core),对于纵向的(core内部、搜索核心技术)。 例如分词、queryparse、分词、实时、分布式的优化、排序等偏轻! 文章有不合理,或者错误的请及时反馈
很久木有和大家见面了,因为博主也需要时间来沉淀。。博主也需要学习和思考。。 好吧,不多废话,进入正题,今天我们谈的东西是一致性和安全性。 一致性这个问题,非常绕,想用语言表述,难度很大,我给别人去讲的时候,一般都是白板,因为白板有类似“动画”的效果,能够帮助别人理解,但使用文字,就没有办法了,只
-------三段提交改----------- 回顾上文,我们已经提到了,在两段提交协议里面有个“死等”的过程,那么我们来看看三段提交协议是怎么解决这个问题的,需要注意的是,3pc只是解决了死等问题,对脑裂没有贡献。用的也不多,我们只把它当做路边的小石头,理解了作为模型的一种,参考一下就行了。
我们已经在上面的分析中,我们已经看到observer模型在多机场景下的问题,所以,paxos模型的目标就是解决这个问题,他解决这个问题的方法就是quorum模型。 我的目标是让大家能弄明白,掌握这些复杂的概念,所以我也会将以前我在淘宝java中间件团队内分享时候,大家经常犯的一些错误,也写到【】里
--------Dynamo and Cassandra ---------- 这两套系统,其实是同源的,我其实不是很愿意来说这两套系统,因为他们用的技术比较学术化,所以比较复杂一些。。Anyway ,I'll try my best ! 提到这两个系统,他们在核心思路上是非常类似的,但有
学玩*nux时候,碰到的一些问题,弄明白了后也就过去了。今天看到旁边的同学对目录权限有些模糊,给解释了一下。想想不如把这些问题都记下来。 设计其实包含的是一套约定。能运行、解决问题的约定都是可用的约定。但解决的多种约定方式或说是设计中,作一些比较可以感觉到哪个会更统一更简单。下文提到的两例Linu
大家会碰到类似这样的事情,比如,找你的租房中介负责人让处理一下空调坏了,中介负责人回答你说“我现在不负责你了 ,你去联系A。”你觉得这件事有些不爽,没办法,去联系A。说不定A又会说自己不负责了,让你联系B。 碰到这种“你去联系XXX”的情况,我想没有人会开心的。 如果这样的“重定向”形成了环,那