Contents
  1. 1. flume
  2. 2. Kafka
  3. 3. Spark
  4. 4. Codis

本文档使用的样本数据量有效信令大约每分钟100-120w条,每分钟数据总大小约200MB

flume

  • flume channel capacity 默认1000,调整为1000000
    = 1000```
    1
    - channel size不用太大,需要调大kafka sink的取消息速度,减少channel的积压```a1.sinks.k1.batchSize = 100000

Kafka

  • 目前使用200个partition,10个broker. 在建立topic的时候指定
  • 注意:kafka的partition有可能因为数据源的问题发生倾斜

Spark

  • 根据需要调整executor的内存,数量,以及核数(核数指每个executor可以并行的线程数,每个线程对应一个spark的task)

    1. executor 内存应根据每个task的复杂度决定,OCSP系统中每个task复杂度不高,推荐使用参数
      1
      > 2. executor 数量与executor 核数相乘应大于等于Spark的task数量,推荐相等即可,executor核数推荐 <=4,因此200个kafka partition在Spark中对应有200个task,建议使用```--executor-num=50 --executor-cores=4
  • Driver内存够用即可

Codis

  • 使用10个redis-server分布在10台机器上,codis每个group包括一个redis-server,分配约100个slot,使用10个codis-proxy,与10台redis-server的机器复用
  • Codis-proxy cpu核数:ncpu=8, 该参数在启动codis-proxy时指定
Contents
  1. 1. flume
  2. 2. Kafka
  3. 3. Spark
  4. 4. Codis