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(卡片布局) ...
随机推荐
- 1Z0-053 争议题目解析703
1Z0-053 争议题目解析703 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 703.Given below are RMAN commands to enable backu ...
- 简析GeoServer服务的内部文件组织以及GeoServer自动化服务发布工具的开发思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 通过GeoServer发布的服务,在GeoServer内部有 ...
- Node.js Express 路由文件分类
前言 基于上一篇Web Api Controller分类,在MVC中我们通常要按自己的业务来划分Controller层, 好处多多,那么Express框架作为Node.js的一款MVC框架,那么自然也 ...
- 【UWP开发】一个简单的Toast实现
Toast简介 在安卓里Toast是内置原生支持,它是Android中用来显示显示信息的一种机制.它主要用于向用户显示提示消息,没有焦点,显示的时间有限,过一定的时间就会自动消失.在UWP中虽然没有原 ...
- 让动态的 iframe 内容高度自适应
使用iframe加载其他页面的时候,需要自适应iframe的高度 这里加载了两个不同内容高度的页面至iframe中 1. 没有设置高度 <div class="iframe-wrapp ...
- JavaScript的作用域和块级作用域概念理解
作用域 作用域永远都是任何一门编程语言中的重中之重,因为它控制着变量与参数的可见性与生命周期.说到这里我们需要理解两个概念:块级作用域与函数作用域. 函数作用域 这个应该好理解,函数作用域就是说定义在 ...
- 1.什么是Code First(EF Code First 系列)
EF4.1中开始支持Code First .这种方式在领域设计模式中非常有用.使用Code First模式,你可以专注于领域设计,根据需要,为你一个领域的对象创建类集合,而不是首先来设计数据库,然后来 ...
- AngularJS----服务,表单,模块
AngularJS中的服务 服务是一个函数或对象,AngularJS中可以创建自己的服务或使用内建服务.$http是AngularJS中最常见的服务,服务向服务器发送请求,应用响应服务器传送过来的数据 ...
- C#新手常犯的错误
虽然这篇post的标题是新手常犯的错误,实际上很多有经验的程序员也经常犯这些错误,我整理了一下,就当是笔记.1.遍历List的错误,比如如下代码: List<String> strList ...
- case break结构与return的有关要点
//确认事件 private void cmd_ok_Click(object sender, EventArgs e) { //客户名称是否为空 if (txt_banhao.Text.TrimEn ...