最近Hue+Solr 方案原型验证有了一些进展。正好也收到了Google的大数据专家Sam的来件询问进展,我答复如下:

Sam,
你好。
已经把Kafka+flume+solr的实时索引搭建起来了,
现在用实时事件统计的场景在测试数据(当前方案为kafka storm mysql),solr现在数据量约为每天八万条记录,70M数据。
下面的页面提供了hue访问solr的地址,请通过页面最下面的超链接看下我们做的demo。
(链接)
遇到的问题:
.我们现在用的solr 4.10.3不支持修改时区,即只能把传进来的时间识别成UTC时区。solr5版本有修复这个问题,我们现在通过添加一个timeInUTC的字段解决。
.hue不支持显示中文字段名,而标签字段是带中文的。
.facet只支持显示前10。 solr目测用起来性能还是很高的,我们还想做一下压力测试。
除了多维标签外,有一个用户来电弹屏显示用户近期动作的需求,我最近也在考虑是否可以用solr来做?
(来自我的华为手机)

Sam的回信:

   用户来电弹屏的需求用solr来做的主要问题是latency延迟是否能满足需求?我的看法(拍脑袋想的,不一定符合实际情况)是当用户电话进来的时候,需要立刻显示最近的历史,并且需要比较精确,比如说,他刚打了一个电话,然后放下电话又打进来,那么solr很有可能来不及index最近那个call,并且话务员可能希望在接电话之前的那一秒钟就显示出来,如果这种query都用solr,那么到时候你们有几千个话机中午在同时接的话是否对solr的压力太大(当然solr可以scale up)。从这个角度我觉得用数据库index可能更快点。或者用solr和本地cache(储存最近的call以防止solr来不及index)的方式也能解决这个问题。

   然后鸡汤一下,前几天听了阿里在湾区做的一个技术讲座,web技术不是发明出来的,是需求推动演化出来的。每种方式应该都能解决问题,选择最合适自己业务的方案。

对于Sam说的来不及index最近的call,并且话务员可能希望在接电话之前的那一秒就显示出来:这两句话我作了考虑,一是kafka+flume+solr的index时间是在秒级的,二是话务员要求的并不是那么严格实时,因此感觉solr还是适用这种场景。

现在当务之急是解决Hue的solr模块太慢的问题——第一次打开页面时,加载js,绘图等等要1分多钟。想到公司运维在用的ELK平台,就到运维部门考察了一番,感觉Kibana速度和展示都还不错,于是萌生了用Kibana代替Hue的想法。

Kibana支持ElasticSearch,却没听说支持Solr,有个团队做了个开源项目Solr版的Kibana,叫Banana,git地址:https://github.com/lucidworks/banana

这个团队号称拥有solr开源社区70%的贡献者作为其雇员(如果是真的那还真是挺牛的)。

banana 1.6.3安装过程(安装到CDH的solr 4.10.3):

1.下载打包版本https://codeload.github.com/lucidworks/banana/zip/release

2.拷贝到$SOLR_HOME/tomcat-deployment/webapps/ROOT下并解压,CDH5.8.3的$SOLR_HOME一般在/var/lib/solr

$ cp banana-release.zip /var/lib/solr/tomcat-deployment/webapps/ROOT
$ unzip banana-release.zip

3.访问http://cdh-master:8983/banana-release/src/index.html#/dashboard  进入对应的页面。(cdh-master为solr部署的主机)

使用的感受:

优点:

1.安装很快,也不需要重启任何进程。

2.打开速度比Hue快很多,3秒内就能打开。

3.展示功能比较丰富。

不足:

1.sunburst图功能没法用。

2.中文有些地方会显示%2B%4C之内的一串字符。

3.facet功能没Hue好看。(不过Hue只能显示最多10条记录,Banana没有这个限制)

4.饼图没有Hue好看。(不过Hue的饼图limit有bug。)

5.因为是轻量级web项目,没有带数据库,所以保存一些配置没有hue方便,但是可以保存到本地。

*以上的Hue是 CDH5.8.3对应的Hue3.10。

Banana的好处是比Hue更容易定制开发。后面有什么需求或者修改bug,可以直接在Banana源码中改。


12月21日补充:如上问题的解决办法在《再探banana》中。

Solr图形化界面banana:除Hue之外的选择的更多相关文章

  1. Git各大平台(win/Linux/Mac)图形化界面客户端大汇总

    摘要: 介绍各平台下的图形化界面git客户端(本人并没有全部使用过),欢迎大家补充新的软件或者使用感受~  一.TortoiseGit - The coolest Interface to Git V ...

  2. 【Vegas原创】安装rhel6.2,不能进图形化界面的终极解决方法

    安装的时候,千万不要一路下一步,you should know,linux不是windows那么的傻瓜.   方法一: 在倒数最后一步,选择Desktop,而千万不要下一步,默认选择Basic Ser ...

  3. windows API 开发飞机订票系统 图形化界面 (一)

    去年数据结构课程设计的作品,c语言实现,图形化界面使用windows API实现. 首发在我csdn博客:http://blog.csdn.net/u013805360/article/details ...

  4. CentOS:安装桌面GNOME图形化界面

    u盘安装dvd版的CentOS7后,没有桌面,浏览器也是黑框版的:如果需要桌面的话,下面三条命令即可:但是安装桌面后,系统会没有之前纯净: 1 安装Gnome包: sudo yum groupinst ...

  5. Ubuntu 14.10 下开机不进入图形化界面

    因为装的是Ubuntu 桌面版,很占资源,所以启动时候不进入图形化界面,肯定会省不少内存 进入  /etc/X11/default-display-manager  sudo nano/etc/X11 ...

  6. java Swing图形化界面

    学过java的人应该对java的图形化界面很是反感,特别是接触java不久的人.如果想和其他语言那样用鼠标拖拽,可以使用wondosbulider插件.但是用起来也不是那么方便.当然对于不乐意写代码的 ...

  7. 转:二十七、Java图形化界面设计——容器(JFrame)

    转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...

  8. 2013年10月13日学习:SQL通过图形化界面创建表

    通过SQL2005创建表的方式有两种: 1.通过图形化用户界面来创建表.比较容易出问题,不稳定,容易点错了.不推荐 2.通过命令来创建.大牛都是这样做的,比较好. 通过图形化界面创建:以创建员工表为例 ...

  9. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

随机推荐

  1. SAX解析技术

    SAX,全称Simple API for XML,既是指一种接口,也是指一个软件包.SAX工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束.元素(element)开始 ...

  2. TCP滑动窗口机制

    我们可以大概看一下上图的模型: 首先是AB之间三次握手建立TCP连接.在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小. A开始发送数据,A连续发 ...

  3. Html标签列表【转】

    Html标签 Html标签按功能类别排列 基础 标签 描述 <!DOCTYPE> 定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标 ...

  4. hostingEnvironment与宿主环境

    定义用来控制应用程序宿主环境的行为的配置设置. 配置如下 <hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAs ...

  5. dobbo zookeeper 认识

    dubbo 主要使用来整合各种协议的服务,服务提供者可以向dubbo平台注册服务,服务消费都可以看到所有服务的详细信息,而已可以调用所提供的服务接口.zookeeper:主是要服务的集群,配置管理(如 ...

  6. 通过HttpListener实现简单的Http服务

    使用HttpListener实现简单的Http服务 HttpListener提供一个简单的.可通过编程方式控制的 HTTP 协议侦听器.使用它可以很容易的提供一些Http服务,而无需启动IIS这类大型 ...

  7. 理解 OpenStack 高可用(HA)(5):RabbitMQ HA

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  8. 十一个行为模式之访问者模式(Visitor Pattern)

    定义: 提供一个作用于某对象结构(通常是一个对象集合)的操作的接口,使得在添加新的操作或者在添加新的元素时,不需要修改原有系统,就可以对各个对象进行操作. 结构图: Visitor:抽象访问者类,对元 ...

  9. eclipse Swt编程—窗口小部件widget

    1.标签Label // 标签(Label类)组件是SWT中最简单的组件.Label类的构造方法和格式如下: // Label(Composite parent,

  10. SuperMap iServer 扩展服务及扩展服务提供者范例

    一.扩展服务实例 1.将iserver-extend1下的listener.java打成jar包2.复制到D:\SuperMap-iServer\webapps\iserver\WEB-INF\lib ...