Solr图形化界面banana:除Hue之外的选择
最近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之外的选择的更多相关文章
- Git各大平台(win/Linux/Mac)图形化界面客户端大汇总
摘要: 介绍各平台下的图形化界面git客户端(本人并没有全部使用过),欢迎大家补充新的软件或者使用感受~ 一.TortoiseGit - The coolest Interface to Git V ...
- 【Vegas原创】安装rhel6.2,不能进图形化界面的终极解决方法
安装的时候,千万不要一路下一步,you should know,linux不是windows那么的傻瓜. 方法一: 在倒数最后一步,选择Desktop,而千万不要下一步,默认选择Basic Ser ...
- windows API 开发飞机订票系统 图形化界面 (一)
去年数据结构课程设计的作品,c语言实现,图形化界面使用windows API实现. 首发在我csdn博客:http://blog.csdn.net/u013805360/article/details ...
- CentOS:安装桌面GNOME图形化界面
u盘安装dvd版的CentOS7后,没有桌面,浏览器也是黑框版的:如果需要桌面的话,下面三条命令即可:但是安装桌面后,系统会没有之前纯净: 1 安装Gnome包: sudo yum groupinst ...
- Ubuntu 14.10 下开机不进入图形化界面
因为装的是Ubuntu 桌面版,很占资源,所以启动时候不进入图形化界面,肯定会省不少内存 进入 /etc/X11/default-display-manager sudo nano/etc/X11 ...
- java Swing图形化界面
学过java的人应该对java的图形化界面很是反感,特别是接触java不久的人.如果想和其他语言那样用鼠标拖拽,可以使用wondosbulider插件.但是用起来也不是那么方便.当然对于不乐意写代码的 ...
- 转:二十七、Java图形化界面设计——容器(JFrame)
转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...
- 2013年10月13日学习:SQL通过图形化界面创建表
通过SQL2005创建表的方式有两种: 1.通过图形化用户界面来创建表.比较容易出问题,不稳定,容易点错了.不推荐 2.通过命令来创建.大牛都是这样做的,比较好. 通过图形化界面创建:以创建员工表为例 ...
- 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)
摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...
随机推荐
- 如何用easyui+JAVA 实现动态拼凑datagrid表格(续)
前面一段时间写了一篇文章: 如何用easyui+JAVA 实现动态拼凑datagrid表格 这篇文章的话,效果是可以实现,但是经过我反复试验,还是存在一些问题的. 今天这篇文章就是向大家介绍下如何避免 ...
- Mac OSX中的@executable_path, @load_path和@rpath的理解
本文转载自:https://wincent.com/wiki/@executable_path,_@load_path_and_@rpath.个人觉得写的很不错,简洁明了. Absolute path ...
- php页面静态化技术;学习笔记
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【转】App开放接口api安全性—Token签名sign的设计与实现
前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...
- node.js操作mysql数据库之增删改查
安装mysql模块 npm install mysql 数据库准备 mysql server所在的机器IP地址是192.168.0.108,登录账户就用root@123456 在mysql中创建tes ...
- MS SQL 字符拆分存处理
MS SQL Server没有split()函数,但是我们可以写一个Table-valued Functions定义函数[dbo].[udf_SplitStringToTable] : CREATE ...
- Extjs.FormPanel
刚刚学习ExtJS ,备注一哈代码 防止忘记... <html xmlns="http://www.w3.org/1999/xhtml"> <head runat ...
- csharp: .NET Object Relationional Mapper (ORM)- SubSonic
https://github.com/subsonic/SubSonic-3.0 http://subsonic.codeplex.com/ https://code.google.com/archi ...
- 缓存技术Redis在C#中的使用及Redis的封装
Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(string ...
- UIAlertController 部分用法及属性
//创建UIAlertController:初始化UIAlertController 需要使用alertControllerWithTitle UIAlertController *alertCont ...