前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >架构杂记

架构杂记

作者头像
solve
发布2020-02-25 17:02:51
5290
发布2020-02-25 17:02:51
举报
文章被收录于专栏:大数据技术栈大数据技术栈

为什么要重新设计架构

  • 部分节点存在隐患, 比如数据传输节点 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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要重新设计架构
  • 架构分层
    • 数据收集
      • 数据清洗
        • 数据建仓
          • 数据分析
            • 数据展示
              • 为什么要flume
                • 为什么用Kafka
                  • Spark 和 Flink的对比
                    • 为什么要用Kylin
                      • Spark1.6 和 2.x的不同
                      • 过程
                      相关产品与服务
                      GPU 云服务器
                      GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档