最近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. hibernate笔记--实体类映射文件"*.hbm.xml"详解

    实体类就是指普通的POJO,Hibernate并不知道那个实体类对应数据库的哪一张表,所以还需要配置一下,常用的方式就是*.hbm.xml文件[配置与@注解配置,这里介绍前者的详细属性: <?x ...

  2. java操作数据库增删改查的小工具1--TxQueryRunner

    在java程序中,一般使用jdbc连接数据库,比较麻烦,在看传智教程时学了一个工具类,用于简化与数据库之间的操作步骤,就是TxQueryRunner,他是QueryRunner的子类,用起来和他是一样 ...

  3. (二十一)WebGIS中鹰眼的实现思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 鹰眼功能是WebGIS中的一种常见功能,利用一些开源的框架实现 ...

  4. 数据结构Java实现01----算法概述

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. C++11之std::function和std::bind

    std::function是可调用对象的包装器,它最重要的功能是实现延时调用: #include "stdafx.h" #include<iostream>// std ...

  6. Spring框架IOC容器和AOP解析

    主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置  一.S ...

  7. Scalaz(58)- scalaz-stream: fs2-并行运算示范,fs2 parallel processing

    从表面上来看,Stream代表一连串无穷数据元素.一连串的意思是元素有固定的排列顺序,所以对元素的运算也必须按照顺序来:完成了前面的运算再跟着进行下一个元素的运算.这样来看,Stream应该不是很好的 ...

  8. 判别或预测方法汇总(判别分析、神经网络、支持向量机SVM等)

    %% [Input]:s_train(输入样本数据,行数为样本数,列为维数):s_group(训练样本类别):s_sample(待判别数据)%% [Output]:Cla(预测类别) function ...

  9. MyBatis Mapper.xml文件中 $和#的区别

    MyBatis Mapper.xml文件中 $和#的区别   网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...

  10. Entity Framework Code First 中使用 Fluent API 笔记。

    在做MVC+EF CodeFirst 的Demo时,碰到的问题, 在组册用户时,要让用户输入确认密码,但是数据库中又不需要保存这个字段,解决方案很多了,这里我列出通过EF Code First的解决方 ...