大数据好文推荐

大数据好文推荐

1 大数据综合

1.1 大数据与传统数据库

1.2 综合好文

1.3 数据中台

1.4 数据仓库

1.5 数据湖

1.6 调优

2 通用工具

2.1 代码仓库

2.2 消息队列MQ

2.2.1 消息队列综合

  • 用MQ的原因
    好处:解耦, 异步, 削峰
    坏处:系统整体可用性降低, 系统复杂性增加(一致性、数据多或少?)

  • 技术选型-RabbitMQ 和 Kafka

    ActiveMQRabbitMQRocketMQKafkaPulsar
    开发语言javaerlangjavascalajava
    单机吞吐量万级万级十万级十万级
    时效性msusmsms以内
    可用性高,主从高,主从非常高,分布式非常高,分布式极高,分布式
    功能特性成熟,公司实践多,文档多,协议支持丰富依靠erlang并发能力强,性能极好,延时最低,管理界面较丰富MQ功能较完备,扩展性好只支持主要的MQ功能,原生不提供消息查询(可通过Preso/KSQL)、消息回溯(老版本可通过改ZK,新版本改存offset的Topic)等功能。在大数据领域应用广支持
    动态扩容需同步配置需手动Rebalance可即时可容
    数据清理不友好可按Topic清理,不支持单独TTL,仅支持Topic级别设定过期时间支持
    适用/不适用场景适合中小型公司,管理功能齐全方便;但要注意事项erlang开发,二次开发较困难适用于大型公司;JAVA开发,容易二次开发;由阿里开发,没有社区支持;对Topic运营不方便,不支持按Topic删失效消息;不能宕机后自动FailOver使用大型公司,但较少用于金融领域原生的极高一致性,基于BookKeeper提供了高可用存储服务,存储和服务分离架构方便扩容,同时还支持多种消费模式和多域部署模式。

2.2.2 Kafka

2.2.2.1 概念
2.2.2.2 Demo
2.2.2.3 KSQL

在这里插入图片描述
KSQL是一个用于Apache kafka的流式SQL引擎,KSQL降低了进入流处理的门槛,提供了一个简单的、完全交互式的SQL接口,用于处理Kafka的数据,可以让我们在流数据上持续执行 SQL 查询,KSQL支持广泛的强大的流处理操作,可以直接流式ETL,支持多种操作包括聚合、连接、窗口、会话等等。

KSQL 是分布式、可扩展、可靠的和实时的,支持多种流式操作,包括aggregatejoin、window、session等等。

2.2.4 Pulsar

2.3 协调服务

2.3.1 Zookeeper

2.3.2 Etcd

2.4 序列化

2.4.1 Avro

2.5 压缩

2.6 SQL解析

2.6.1 Calcite

Apache Calcite是一款开源SQL解析工具, 可以将各种SQL语句解析成语言物管的抽象语法树即AST(Abstract Syntax Tree), 并完成验证、优化,得到物理执行计划后,最后翻译成项目执行引擎(如Hive/Flink)所需的可执行代码。Calcite特性如下

  • 支持标准SQL语言;
  • 独立于编程语言和数据源,可以支持不同的前端和后端;
  • 支持关系代数、可定制的逻辑规划规则和基于成本模型优化的查询引擎;
  • 持物化视图(materialized view)的管理(创建、丢弃、持久化和自动识别);
  • 基于物化视图的Lattice和Tile机制,以应用于OLAP分析;
  • 支持对流数据的查询。

以后用到的话可以写一篇综述文章。参考好文如下:

2.6.2 Avatica

在这里插入图片描述
Avatica是一个构建数据库Driver的框架。其重要概念是wire API,可由JSON或Protobuf定义,服务于JDBC Driver客户端<->Http服务端。这样的设计可使得Client的实现语言不受约束。

3 大数据平台

  • 网易大数据平台架构
    在这里插入图片描述
  • 网易推荐系统架构
    在这里插入图片描述

3.1 大数据平台综合

3.2 数据接入

3.2.1 数据埋点

我们使用了神策数据进行统一埋点。

3.2.2 全量/非实时同步

3.2.2.1 Sqoop

辅助系统(Flume,azkaban,sqoop)

3.2.3 增量/实时同步

3.2.3.1 Flume
3.2.3.2 Canal
3.2.3.2.1 概念
3.2.3.2.2 使用
3.2.3.2.3 API
3.2.2.3 Maxwell
3.2.2.3.1 简介

Maxwell是Zendesk开源的、由Java语言编写数据库binlog解析同步工具。

使用Maxwell,可通过简单配置,将binlog解析后并以json的格式同步到File、Redis、Kafka、RabbitMQ等主流系统中,也可自定义输出。

相比Canal,Maxwell相当于Canal Server+Canal Client,直接独立部署即可,使用更方便。

3.2.2.3.2 概念
3.2.2.3.3 使用
3.2.2.4 DataBus

3.3 数据存储

3.3.1 硬盘型数据存储

3.3.1.1 HDFS
3.3.1.1 HDFS 基本概念
3.3.1.2 ORC
3.3.1.3 Parquet
3.3.1.4 CarbonData
  • Apache CarbonData 中文文档
    Apache CarbonData 是一种新的融合存储解决方案,利用先进的列式存储,索引,压缩和编码技术提高计算效率,从而加快查询速度,其查询速度比 PetaBytes 数据快一个数量级。
  • CarbonData QuickStart

3.3.2 内存数据存储

3.3.2.1 Redis
3.3.2.2 MemCache
3.3.2.3 Alluxio

3.3.3 图数据库

3.4 资源管理

3.4.1 Yarn

3.5 数据计算

3.5.1 流式处理

说说实时流式计算

3.5.1.1 SparkStreaming
3.5.1.1.1 SparkStreaming综合
3.5.1.1.2 Livy-图形化Spark提交
3.5.1.2 Flink
3.5.1.2.1 Flink综合
3.5.1.2.2 Flink概念
3.5.1.2.3 Flink实践
3.5.1.2.4 源码
3.5.1.2.5 面试

3.5.2 离线计算

3.5.2.1 MapReduce
3.5.2.2 Tez

MapReduce和Tez对比

3.5.2.3 Hive
3.5.2.4 Spark
3.5.2.4.1 Spark综合
3.5.2.4.2 Livy-图形化Spark提交

3.6 数据服务

3.6.1 OLAP与OLTP概念

  • OLAP
    全称Online Analytical Processing,即在线分析处理,专门被设计用作支持复杂的分析操作,面向数据分析师、决策人员、高层管理人员。

    比如电商场景中,数据分析人员利用OLAP系统进行各指标查询等,出报表给老板看,进行决策。

  • OLTP
    全称Online Transaction Processing,即在线事务处理,它所存储的数据被称为操作数据或者业务数据,适用于事务类数据,如订单。

    比如电商场景中,订单等重要数据使用OLTP,利用事务特性进行可靠的数据写入和存储。

  • Ad-hoc
    就是即席查询,用户可根据自己的需求输入查询条件,系统在较短时间内响应并返回查询结果。

3.6.2 综合文章

3.6.3 维度分析

3.6.3.1 Druid
3.6.3.2 ClickHouse
3.6.3.2.1 简介

ClickHouse是开源的一个面向列的数据库管理系统,能够使用SQL查询实时生成分析数据报告。

  • 高性能
    ClickHouse的性能超过了目前市场上可比的面向列的DBMS,每秒处理数亿个到超过十亿行和几十GB的数据。

    ClickHouse尽可能快地使用所有可用硬件来处理每个查询。 单个查询的峰值处理性能(在解压缩之后,仅使用列)的速度超过每秒2TB。

  • Ad-hoc即席查询
    常见的数据管理中大多数原始格式的原始数据可用作任何给定查询的“数据湖”;

    而ClickHouse在大多数情况下提供即时结果:甚至数据处理速度快于创建数据所需的速度。

  • 方便水平扩展和垂直扩展。
    Yandex.Metrica公司主要集群有394个节点,分布在6个数据中心,每个节点100Tb数据。

  • 容错性高
    ClickHouse支持多master异步复制的副本,可部署到多个数据中心,所以某个数据中心或某个节点挂掉不影响整个集群读写可用性,因为读是分布式读,自动均衡分派到存活的副本节点。

  • SQL
    用户友好的SQL方言,同时支持Join

  • 支持实时更新

  • 容错性高
    自动多副本同步

  • 采用列式存储,基于磁盘

  • 任务分片
    计算任务在多个分片上并行执行,完成后汇总结果、

  • 支持索引

  • 支持近似查询处理
    您可以根据需要快速获得结果,这在处理TB级和PB级数据时必不可少

  • 部署简单

  • 丰富的使用方法:

    • HTTP
    • TCP
    • ClickHouse命令行
    • JDBC/ODBC
    • 其他第三方包
3.6.3.2.2 适用的几种场景
  • 单表查询最快,但也支持多表。
    实测中,1亿数据可用基于SparkStreaming的WaterDrop在3分钟内从Hive同步到ClickHouse。

    9亿数据的单表,查询SQL可在1秒内返回结果。

  • 网页和应用分析 OLAP

  • 时序数据

  • 监控数据

  • BI

  • 网游

  • 物联网

  • 在线广告

3.6.3.2.3 不适用的几种场景
  • OLTP
  • Key-value,高QPS访问场景
  • 文档性数据存储
  • 过度标准化的数据
3.6.3.2.4 对比测试
3.6.3.2.5 好文推荐

3.6.4 Hive

3.6.4.1 Hive基础概念
3.6.4.2 Hive配置
3.6.4.3 Hive使用
3.6.4.4 Hive集成其他
3.6.4.5 Hive对比HBase
  • Hive面向OLAP,重点是基于一个统一的查询分析层,支撑OLAP应用中的各种join、group by、 aggregation类SQL语句。且hive一般只用于查询分析统计,而不适用于删改操作;

    HBase面向OLTP,是一个Key-Value数据库,支持行级别删改操作,但不适用于join、复杂查询等场景。

  • Hive负责管理数据的元数据 ;

    而HBase本身就是物理表。

  • Hive表用行存储时为稠密性;

    HBase基于列族,是稀疏的,空cell不占空间。

  • Hive基于MR时查询时延较高;

    HBase普通查询响应速度极快。

  • Hive也能通过HBase Connector来查询HBase数据。

3.6.5 Elasticsearch

3.6.5.1 概念
3.6.5.2 Demo
3.6.5.3 聚合
3.6.5.4 使用
3.6.5.5 监控
3.6.5.6 企业实践
3.6.5.7 压测

3.6.6 HBase

3.6.7 Phoenix

3.6.8 Impala

Impala 是 Cloudera 在受到 Google 的 Dremel 启发下开发的实时交互SQL大数据查询工具,它拥有和Hadoop一样的可扩展性、它提供了类SQL(类Hsql)语法,在多用户场景下也能拥有较高的响应速度和吞吐量。

Impala由Java和C++实现的,其中Java提供的查询交互的接口和实现,C++实现了查询引擎部分。

Impala可以访问Hive Metastore,甚至可以直接使用Hive的JDBC jar和beeline等直接对Impala进行查询、支持丰富的数据存储格式(Parquet、Avro等)。

最重要的,Impala 没有再使用缓慢的 Hive+MapReduce 批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由 Query Planner、Query Coordinator 和 Query Exec Engine 三部分组成),可以直接从 HDFS 或 HBase 中查询数据,从而大大降低了延迟。

3.6.8.1 原理
3.6.8.2 教程

impala教程

3.6.8.3 安装部署
  • Impala集成hive
    需要注意的是,这种集成方式有很多限制。比如hive自定义的INPUTFORMAT,impala无法识别;
    impala无法感知hive表产生的变动,需要invalidate metadata全量或是用refresh <tablename>指定表名刷新元数据。
3.6.8.4 使用
3.6.8.5 调优
3.6.8.6 实践

3.6.9 Kudu

3.6.9.1 概念
3.6.9.2 Kudu Impala
3.6.9.3 Kudu Spark

3.6.10 Doris

3.6.11 Presto

在这里插入图片描述

3.6.11.1 简介

Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。

Presto支持在线数据查询,包括Hive, Cassandra, Mysql关系数据库以及专有数据存储。也支持Redis,Mongodb,Kafak这样的系统通过SQL语句来查询数据。

一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。而且Presto还可直接从HDFS中读取数据进行查询。

Presto的其他特点:

  • 完全基于内存的并行计算
  • 流水线作业
  • 本地化计算
  • 动态编译执行计划
  • 精心设计和使用的内存及数据结构
  • 良好的GC控制
  • 本身不存储数据
  • 可访问多种数据源,并可跨数据源访问
  • 适用于OLAP,擅长海量数据分析,不适用于OLTP

第三方界面化查询可用yanagishima

3.6.11.2 好文推荐

3.6.12 GreenPlum

  • MPP架构
    Greenplum是一个开源的大规模并行数据分析引擎。借助MPP架构,在大型数据集上执行复杂SQL分析的速度比很多解决方案都要快。
  • 支持SQL
    GPDB完全支持ANSI SQL 2008标准和SQL OLAP 2003 扩展;
  • API
    从应用编程接口上讲,它支持ODBC和JDBC。完善的标准支持使得系统开发、维护和管理都大为方便。
  • 分布式事务和ACID
    支持分布式事务,支持ACID。保证数据的强一致性。
  • 现行可扩展
    GreenPlum是分布式数据库,拥有良好的线性扩展能力。
  • 完善的生态系统
    GreenPlum可以与很多企业级产品集成,譬如SAS,Cognos,Informatic,Tableau等;也可以很多种开源软件集成,譬如Pentaho,Talend 等。

3.7 数据产品

3.7.1 数据地图

3.7.2 用户画像

3.7.3 A/B实验

3.7.4 数据可视化

3.7.4.1 综合经验
3.7.4.2 Zeppelin
3.7.4.3 Superset
3.7.4.4 HUE

4 大数据平台辅助系统

4.1 任务调度

4.1.1 任务调度综合

4.1.1.1 对比
4.1.1.2 企业实践

4.1.2 Azkaban

4.1.2.1 官方文档

Azkaban documentation

4.1.2.2 安装
4.1.2.3 使用
4.1.2.4 二次开发
4.1.2.5 对比
4.1.2.6 问题记录

Azkaban 使用问题记录

4.1.3 Oozie

4.2 权限管理

4.3 多租户管理

4.4 元数据管理

4.5 数据治理/数据质量校验DQC

4.5.1 Atlas

4.6 运维监控

一篇文章全面了解监控知识体系

4.6.1 prometheus

prometheus

4.6.1.1 概述

Prometheus普罗米修斯是一个时序数据库,可以用来做metrics采集(比如访问Exporter暴露出的接口来采集数据)、数据查询、监控告警等。

可参考:

4.6.1.2 Exporter

4.6.2 Grafana

可视化工具,可以搞dashbord,适合用来展示监控数据,可搭配时序库Prometheus、InfluxDB等使用。

4.6.3 Zabbix

Zabbix主要用来做服务器级别系统性能监控。

4.6.4 实践

  • JMX exporter+Prometheus+Grafana监控Hadoop集群
  • 携程的Kafka监控方案:
    • JMX Exporter:部署到每台 broker 上。
    • Kafka Exporter:部署到任意 1 台 broker 上。
    • Prometheus:部署到 1 台独立机器上,采集 JMX Exporter 和 Kafka Exporter 上的数据。
    • Grafana:部署到 1 台独立机器上,可视化 Prometheus Kafka metrics 数据。对于 cluster、broker、topic、consumer 4 个角色,分别制作了 dashboard。

5 数据分析综合

5.1 创业公司做数据分析系列文章

6 数据仓库

  • 网易数据仓库
    在这里插入图片描述

6.1 传统数仓

6.2 实时数仓

7 分布式

一致性算法思维导图

7.1 分布式事务

7.2 CAP

7.3 一致性协议

7.4 系统设计

8 云服务

8.1 阿里云

9 企业实践

9.1 搜索

9.2 大数据平台

9.2.1 大数据平台综合

9.2.2 调度系统

9.2.3 流式处理

9.2.4 批处理

9.3 数据仓库

9.3.1 传统数仓

9.3.2 实时数仓

9.4 技术选型

9.5 组件升级

10 测试数据

11 概念

参考文档

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值