suchy

技术人生,淡淡茶香

kafka的索引机制

概述 数据文件的分段和索引 kafka解决查询效率的手段之一是将数据文件分段存储,可以配置每一个文件的大小。每一个端单独放在一个.log的文件中,数据文件命名是20个字符的长度,以每一个分段文件开始的最下offset来命名,其他位置用0填充。最初始的文件是0000000000000000000...

2019-06-05 00:11:02

阅读数 18

评论数 0

Phoenix二级索引(Secondary Indexing)的使用

摘要 HBase只提供了一个基于字典排序的主键索引,在查询中你只能通过行键查询或扫描全表来获取数据,使用Phoenix提供的二级索引,可以避免在查询数据时全表扫描,提高查过性能,提升查询效率 测试环境: 数据约370万 数据格式:(数据来自搜狗实验室) 三节点集群(一主两从,hado...

2019-06-03 13:04:32

阅读数 27

评论数 0

Rabbitmq集群高可用测试

Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡。 Rabbit模式大概分为以下三种:单一模式、普通模式、镜像模式 单一模式:最简单的情况,非集群模式。 没什么好说的。 普通模式:默认的集群...

2019-05-24 02:49:48

阅读数 32

评论数 0

控制Hive MAP个数详解

Hive的MAP数或者说MAPREDUCE的MAP数是由谁来决定的呢?inputsplit size,那么对于每一个inputsplit size是如何计算出来的,这是做MAP数调整的关键. HADOOP给出了Inputformat接口用于描述输入数据的格式,其中一个关键的方法就是getSpli...

2019-05-20 00:22:53

阅读数 47

评论数 0

Spark 内存溢出 处理 及 优化

内存溢出解决方法 1. map过程产生大量对象导致内存溢出 这种溢出的原因是在单个map中产生了大量的对象导致的。 例如:rdd.map(x=>for(i <- 1 to 10000) yield i.toString),这个操作在rdd中,每个对象都产生了100...

2019-05-19 23:50:44

阅读数 44

评论数 0

Kafka性能测试实例

1.概述 在分布式实时数据流场景下,随着数据量的增长,对Kafka集群的性能和稳定性的要求也很高。本篇博客将从生产者和消费者两方面来做性能测试,针对具体的业务和数据量,来调优Kafka集群。 2.内容 2.1 测试环境 本次测试的环境信息由三台物理机组成,具体信息如下所示: 2.2 ...

2019-05-19 23:16:32

阅读数 41

评论数 0

HIVE如何处理大量小文件

一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不...

2019-05-19 14:37:59

阅读数 99

评论数 0

解决Hive创建文件数过多的问题

一. Hive的创建文件数的限制 Hive对文件创建的总数是有限制的,这个限制取决于参数: hive.exec.max.created.files,默认值是10000。如果现在你的表有60个分区,然后你总共有2000个map,在运行的时候,每一个mapper都会创建60个文件,对应着每一个分区...

2019-05-17 10:55:25

阅读数 51

评论数 0

Hive的分区表和分桶表的区别

1,Hive分区。 是指按照数据表的某列或某些列分为多个区,区从形式上可以理解为文件夹,比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表的内容巨大,在查询时进行全表扫描耗费的资源非常多。那其实这个情况下,我们可以按照日期对数据表进行分...

2019-05-17 10:50:03

阅读数 56

评论数 0

Hive小文件合并

Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量。但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小。而且这些表通常会按日期进行分区,随着时间的推移,HDFS的文件数目就会逐渐增加。 小文件带来的问题 ...

2019-05-16 01:48:15

阅读数 54

评论数 0

Spark 分区(Partition)的认识、理解和应用

一、什么是分区以及为什么要分区? Spark RDD 是一种分布式的数据集,由于数据量很大,因此要它被切分并存储在各个结点的分区当中。从而当我们对RDD进行操作时,实际上是对每个分区中的数据并行操作。 图一:数据如何被分区并存储到各个结点 图二:RDD、Partition以及task...

2019-05-16 01:36:09

阅读数 60

评论数 0

Spark 源码解析 : DAGScheduler中的DAG划分与提交

一、Spark 运行架构 Spark 运行架构如下图: 各个RDD之间存在着依赖关系,这些依赖关系形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG,进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了S...

2019-05-16 01:17:08

阅读数 58

评论数 0

HBase实战 | OPPO数据中台之基石

一.OPPO 实时数仓的演进思路 1.1.OPPO 业务与数据规模 大家都知道 OPPO 是做智能手机的,但并不知道 OPPO 与互联网以及大数据有什么关系,下图概要介绍了 OPPO 的业务与数据情况: OPPO 作为手机厂商,基于 Android 定制了自己的 ColorOS 系统...

2019-05-15 19:36:18

阅读数 131

评论数 0

Spark性能调优之合理设置并行度

1.Spark的并行度指的是什么? spark作业中,各个stage的task的数量,也就代表了spark作业在各个阶段stage的并行度! 当分配完所能分配的最大资源了,然后对应资源去调节程序的并行度,如果并行度没有与资源相匹配,那么导致你分配下去的资源都浪费掉了。同时并行运行,还可以...

2019-05-15 18:11:40

阅读数 52

评论数 0

phoenix中新建表,以及hbase已有表与phoenix映射

在phoenix的bin目录下输入命令进入phoenix 1 ./sqlline.sh hadoop:2181 查看所有表格: 1 !tables 新建表格 1 ./psql.p...

2019-05-11 23:00:16

阅读数 31

评论数 0

Go语言 GC优化经验分享

不想看长篇大论的,这里先给个结论,go的gc还不完善但也不算不靠谱,关键看怎么用,尽量不要创建大量对象,也尽量不要频繁创建对象,这个道理其实在所有带gc的编程语言也都通用。 想知道如何提前预防和解决问题的,请耐心看下去。 我们项目的服务端完全用Go语言开发的,游戏数据都放在内存中由go 管...

2019-05-09 11:32:11

阅读数 8

评论数 0

Golang GC算法解读

概括 Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 三色并发标记清理算法。非分代:不像Java那样分为年轻代和年老代,自然也没有minor gc和maj o gc的区别。非紧缩:在垃圾回收之后不会进行内存整理以清除内存碎片。写屏障:在并发标记的过程中,如果应用程序(mutator)修改了对象...

2019-05-09 11:25:53

阅读数 127

评论数 0

Golang GC 垃圾回收机制详解

摘要 在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究。本文对研究的结果进行一下总结。 什么是垃圾回收? 曾几何时,内存管理是程序员开发应用的一大难题。传统的系统级编程语言(主要指C/C++)中,程序员必须对内存小心的进行管理操作...

2019-05-09 11:22:35

阅读数 40

评论数 0

Go GC

Go GC 用Go,你可以很容易地创建出低延时的应用。Go GC似乎比其他语言的运行时要简单得多。对于Go 1.10版本,它的垃圾收集器是Concurrent Mask & Sweep (CMS),它不是压缩的,也不是分代的。这一点跟JVM不同。 它是一个,并行标记,用一个写屏...

2019-05-09 11:04:38

阅读数 12

评论数 0

Google C++单元测试框架

一、设置一个新的测试项目 在用google test写测试项目之前,需要先编译gtest到library库并将测试与其链接。我们为一些流行的构建系统提供了构建文件: msvc/ for Visual Studio, xcode/ for Mac Xcode, make/ for GNU make...

2019-05-08 03:25:01

阅读数 12

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭