美文网首页
架构杂记

架构杂记

作者: code_solve | 来源:发表于2020-02-24 10:59 被阅读0次

为什么要重新设计架构

  • 部分节点存在隐患,
    比如数据传输节点 Dumper,
    已属于无法维护的状态

  • 部分节点冗余,存在资源浪费。

  • 集群机器不够统一,容易出现一些不可预料的问题

  • 集群环境太过老旧,享受不到技术进步带来的优势

  • 一些业务分析已经达到瓶颈,无法进一步扩展

    • 数据太多,磁盘容量不够
    • 维度分析太多,计算量无法支持
    • 计算资源紧张等

架构分层

数据收集

不丢数据
高可用
方便接入

数据清洗

实时
高效

数据建仓

数据分析

数据展示

  • flume为什么要对接kafka?
    另外一种方式就是 flume直接对接HDFS。
    主要是为了实时数据考虑
    flume是一个消息管道,
    其数据流入之后,
    一旦被消费,这个数据就会被删除,
    也就是说他只能有一个消费者,
    而kafka不一样,可以支持多个消费者,
    比如实时数据可以拿一批,离线数据还可以拿一批

为什么要flume

  • 简单易用
    通过简单的配置就能完成数据的收集,
  • 适用广
    其本身已经提供了对目前大多数的场景的数据收集配置
    即使没有,也可以通过简单的接口完成自定义收集和落地
  • 高可用
    提供HA架构,对于宕机具有比较好的容错能力
  • 高可靠
    能保证数据的完整性,不会造成数据丢失
  • 可扩展性
    收集的数据源可以自由增加和删减
    高度解耦。
  • 功能也比较丰富
    消息头的设计
    拦截器

为什么用Kafka

主要作用当然是削峰填谷,做一个缓冲作用
解耦

  • 高吞吐量、低延迟:
    kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒;

  • 可扩展性:
    kafka集群支持热扩展;

  • 持久性、可靠性:
    消息被持久化到本地磁盘,并且支持数据备份防止数据丢失;

  • 容错性:
    允许集群中节点故障(若副本数量为n,则允许n-1个节点故障);

  • 高并发:
    支持数千个客户端同时读写。

  • 多个消费者

Spark 和 Flink的对比

  • Flink比起Spark性能略好
  • flink是真的流式计算,而Spark只能做微批处理
  • 对于Hadoop生态圈都有比较好的支持
  • Spark对于SQL支持更友好,
  • Spark针对SQL有更好的优化
  • Spark社区更活跃,但是国内Flink有ali的大力支持

根据目前的情况看起来,国内普遍对于flink比较看好,
从实际情况来看,flink也是以后的发展方向,
但是目前Spark的活跃程度远高于Flink,
很难说Spark以后的底层不会也才有flink这种方式,

目前建议 离线用Spark,
实时的话可以 尝试flink

目前熟悉Spark,对Flink不太熟悉

为什么要用Kylin

  • Kylin产生的背景
    eBay公司为了实现Bi平台和Hadoop平台的无缝整合,并能在大规模数据集上实现秒级的查询而提出的最终解决方案,即 OLAP on Hadoop.从而诞生了kylin这个框架

  • Kylin解决的问题
    在大数据领域,自Hadoop诞生以来,存储和计算都得到了妥善的解决,
    其用到的主要技术主要是 并行计算 和 列式存储。
    这些技术虽然大大提高了计算速度,但是查询时间还是会和数据的增加成线性增长
    这离实时分析的要求还相差甚远
    而kylin就是用来解决这一问题,
    其通过预计算的方式来使得我们平时查询的数据可以达到秒级响应

  • kylin的特点

    • 标准的SQL接口
    • 支持超大规模的数据集
    • 亚秒级的响应
    • Bi平台以及可视化工具的集成
  • 我们为什么要用

    • 一些业务多维度分析确实遇到了瓶颈
    • 可以弥补公司确实OLAP的空白
    • 可以作为一个数据自助查询的平台

Spark1.6 和 2.x的不同

  • 性能方面
    相比于Spark 1.0,Spark 2.0在引擎性能方面有重大优化,
    其优化主要体现在Spark Core和Spark SQL两个系统上,
    其优化主要得益于Tungsten计划(“钨丝计划”),
    其主要动机是优化Spark内存和CPU的使用,
    使其能够逼近物理机器的性能极限。
    利用“整阶段代码生成”(“whole stage code generation”),
    使得SQL和DataFrame中算子性能优化2-10倍
    通过“向量化计算”提升Parquet格式文件的扫描吞吐率
    提升ORC格式文件的读写性能
    提升Catalyst查询优化器性能
  • 统一DataFrame与Dataset
    API众所周知,在Spark 1.x中,DataFrame API存在很多问题,
    包括 不是类型安全的(not type-safe),
    缺乏函数式编程能力(not object-oriented)等,
    为了克服这些问题,社区引入了Dataset,
    相比于DataFrame,它具有以下几个特点:
    类型安全,面向对象编程方式;支持非结构化数据(json);
    java与scala统一接口和性能极好的序列化框架等,
    她将成为Spark未来主流的编程接口(RDD API是low-level API,
    而Dataset则是high-level API)。

  • SQL支持进一步完善

  • 引入了Struct streaming

过程

  • 架构分享
  1. 为什么要升级
  2. 新的架构设计概览
  3. 各个框架概览
  • 架构技术细化
    针对架构确定的技术框架进行科普,
    以及测试资源的确定。
    最后确定并开始部署测试环境

  • 各个框架的评估
    最终方案的确定

大数据架构设计.png

相关文章

  • 架构杂记

    为什么要重新设计架构 部分节点存在隐患,比如数据传输节点 Dumper,已属于无法维护的状态 部分节点冗余,存在资...

  • 2018-12-01

    练车杂记

  • 学琴杂记

    学琴杂记 一 很小...

  • 散·杂·笔

    本人的记录分为散记、杂记、笔记。 散记,不分类,随心随记。杂记,分类,记录若干范畴的心得,比如物理。笔记,分类,记...

  • 杂记

    绕园一匝,回家敷面膜。 #杂记#

  • 《個蟹杂记》

    《個蟹杂记》(原名《老蟹杂记》) 作者:個蟹 世弊芳华,待来生,匿毒之护你万世。残袭浑穹。祈欢...

  • 南陵一日游(江前进)

    南陵一日游(杂记) 江前进 前言 ...

  • 关于记笔记的思考

    三种笔记:每日杂记,文献笔记,永久笔记每日杂记,就是把你觉得值得记录,需要记录的东西都收录其中的笔记。需要每天整理...

  • 月读分享•八月

    再忙也给自己留点时间看书/桃夭的杂记

  • 关于如何持续写作:他为什么可以火那么久?

    平时看书喜欢看小说,不喜欢看随笔、散文、杂记等,虽然内心一直渴望看点心理学、互联网、散文、随笔、杂记或自传等方面的...

网友评论

      本文标题:架构杂记

      本文链接:https://www.haomeiwen.com/subject/oosmqhtx.html