文档章节

一次大数据量日志存储升级改造

新栋BOOK
 新栋BOOK
发布于 2016/12/12 19:22
字数 722
阅读 137
收藏 1

商家操作日志的使命就是记录卖家对商品、订单等业务的操作。以便于后续分析。我们在做技术选型的时候确定了kafka+storm+elasticsearch,当前的架构如下:

 

我们现在面临这样的问题,数据全部落到了ES上面,ES数据全部加载到内存里面之后,当前2个月的数量达到数十T之多。这个量对资源的需求非常大,而且我们的要求是同时要打开三个月的数据,因此远远达不到我们的要求。

我们以往是这样做的,每天一个索引,2个月之前的索引全部关掉。只保持一个月的索引打开。如果想查询以前的数据,就要先关掉当前的1个月,再打开要查看的那个月的索引。

ES集群,32个分片,32个副本(“1”-代表每个分片一个副本)

  1. "settings": {
  2.           "index": {
  3.             "number_of_shards": "32",
  4.             "creation_date": "1475193606337",
  5.             "number_of_replicas": "1",
  6.             "version": {
  7.               "created": "1070699"
  8.             },
  9.             "uuid": "JdEgO48dTTCWMAmMZ3oCXg"
  10.           }
  11.         },

在这里再说明下,集群Index TPS,Search TPS与副本数的关系

集群写入文档TPS与副本数正相关,查询TPS与副本数无关。
举例:
1分钟向集群写入1000个文档:
       当索引有0个副本:集群写入文档次数为1000,Index TPS为1000/60.
       当索引有1个副本:集群写入文档次数为2000,Index TPS为2000/60.
       当索引有2个副本:集群写入文档次数为3000,Index TPS为3000/60.

1分钟查询1000次:
      当索引有0个副本:search TPS为 1000/60.
      当索引有1个副本:search TPS为 1000/60.
      当索引有2个副本:search TPS为 1000/60.

我们必须要调整我们的架构及存储方式。ES只用于热数据的分析,利用ES的检索特性。3个月以前的数据全部放入HBASE,利用HBASE的这种存储,对历史数据查询,只从HBASE里面查。更新后的存储处理方案下面这样

将日志分集群存储,日志量大的与日志量小的,互不影响。将来申请资源单独针对相应的日志集群来申请。这次调整从业务类别来拆分,继续保留了原来的kafka+storm+elasticsearch技术方案,因为日志处理在这个技术选型下是没有任何问题的,我们所要调整的是落地的细节上的问题。比如我们这次的存储方案调整。

 

© 著作权归作者所有

新栋BOOK
粉丝 136
博文 53
码字总数 93256
作品 0
大兴
程序员
七牛云荣获「2018 中国大数据硬独角兽」称号

9 月 1 日,由南京市鼓楼区人民政府主办、鼓楼高新区管委会、鼓楼区发改局(经信局)、创业黑马、i 黑马旗下企业服务垂直媒体 B2B 圈联合承办的「中国独角兽(秋季)峰会」在南京隆重举行。会...

七牛云
09/06
0
0
oracle存储过程处理业务如何改造为分布式计算

求助大家一个关于系统改造的问题,多数的企业级应用多数的业务处理都是由存储过程进行处理的,如何能把这些存储过程改到用分布式的某种计算框架进行计算呢,存储过程主要是方便不用把数据取出...

条纹双肩包
2017/02/27
137
1
七牛云荣获「2018 年度中国大数据日志管理最佳产品奖」

8 月 2 日- 3 日,2018(第三届)中国大数据产业生态大会在京举行,作为专业聚焦大数据产业生态的盛会,「中国大数据产业生态大会」历来以专业、开放、权威、国际化而著称,已成为业内大数据...

七牛云
08/07
0
0
对比解读五种主流大数据架构的数据分析能力

数据分析工作虽然隐藏在业务系统背后,但是具有非常重要的作用,数据分析的结果对决策、对业务发展有着举足轻重的作用。 随着大数据技术的发展,数据挖掘、数据探索等专有名词的曝光度越来越...

技术小能手
07/30
0
0
JEECG 3.7.7 发布,增加多套主流 UI 代码生成器模板

JEECG 3.7.7闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板 ⊙表单UI深度优化,平台UI风格升级一个级别 ⊙灵活通用代码...

Jeecg
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python做文本内容指定区域字符串替换

需求: 因为公司项目需要做SEO优化,所以对项目中的各种长连接做优化,比如本文中提到的精简路径;之前已经批量吧文本的路径名字等做过修改,这里不再赘述;这里的问题是外部的路径修改了,文...

坦途abc
18分钟前
1
0
MySQL 关键字模糊匹配,并按照匹配度排序

MySQL 关键字模糊匹配,并按照匹配度排序。 方式一、按照关键字搜索,然后根据关键字所占比例排序 SELECTdrug_name,pinyinFROMtbl_drugWHEREpinyin LIKE '%AM%'ORDER BY...

yh32
28分钟前
2
0
虚拟机学习之一:java内存区域与内存溢出异常

1.运行时数据区域 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途和创建、销毁时间,有的区域伴随虚拟机进程的启动而存在,有些区...

贾峰uk
28分钟前
0
0
Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修...

架构师springboot
44分钟前
1
0
分布式事务,原来可以这么玩?

多个数据要同时操作,如何保证数据的完整性,以及一致性? 答 : 事务 ,是常见的做法。 举个栗子: 用户下了一个订单,需要修改 余额表 , 订单 表 , 流水 表 ,于是会有类似的伪代码: st...

微笑向暖wx
47分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部