学习建议,大数据组件那么多,可以重点学习这几个

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 大数据组件应该多学习这几个。

经常有同学问我,基于Hadoop生态圈的大数据组件有很多,怎么学的过来呢,毕竟精力有限,我们需要有侧重点,我觉得下面这几个组件至关重要,是基础组件,大部分人都需要会的,其它组件可以用的时候再去查查资料学习。


  • hadoop


  • Hbase


  • Hive


  • Spark


  • Flink


  • Kafka


Hadoop


是大数据的基础组件,很多组件都需要依赖它的分布式存储、计算;主要包括Hdfs、MR、Yarn三部分,这个需要找一些好的资料(我的主页有资料领取方法),好好学学各自的用法,熟练之后,需要了解其背后的原理。


基本的,你得知道hadoop安装方法,cdh/hdp等等,启动后几个后台进程各自的作用,namenode高可用,以及高可用基于zk,namenode对元数据fs_image的保存,还有datanode,jobhistoryserver等。


  • Hdfs:你需要知道文件的基本操作,命令跟Linux命令差不多,用的时候自然就有机会敲了,上传、下载,回收站,多副本容错(hadoop3的纠删码容错,不使用多副本了,可以节约空间),文件分布式存储的切分,文件存储格式,压缩等待;


  • MR:主要是要掌握map -> shuffle -> reduce这一套经典编程模型的原理,MR的基本编写方法,以及map切块,reduce输出,mapjoin优化,内存调优等等;


  • Yarn:作为一个资源调度工具,yarn的资源分配(以container为单位,container指的是包含一点cpu和内存),一些常用参数的配置(比如每个应用最多使用资源,每个container资源,虚拟内存率等等),为了任务之间不互相影响,引入资源调度池,将资源隔离开,任务的调度方式(FIFO,fair,capacity)等 YARN调度器(Scheduler)详解

微信图片_20220427180936.jpg

Hbase



这是一个基于Hdfs的列式存储的分布式数据库,在企业中使用普遍,需要重点学习其用法、原理和优化;Hbase集群挂掉的一次惊险经历


需要掌握的基本知识,hbase的基本原理,逻辑上的行与列,列式存储,底层数据hfile基于hdfs,并发高,横向扩展。hbase的HMaster和HRegionServer的作用,zk的作用,客户端读写数据的流程,memstore和bucketcache等缓存,region的分裂,建表预分区,rowkey的设计,数据容错HLog等。

微信图片_20220427180940.jpg

Hive


hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce或者Spark任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。


  1. hive建表,分区表,外部表;


  1. udf开发和使用,Hiveserver2访问Hive;


  1. 关联hbase,使用Spark作为执行引擎等;


  1. join优化;


  1. 数据倾斜;


  1. 常用窗口函数;


  1. 基于Hive搭建数据仓库;

微信图片_20220427180945.png

Spark


Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark使用Scala开发,拥有Hadoop MapReduce所具有的优点,可以进行微批实时处理;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。


  1. Spark架构,DAG调度器,standalone/yarn/Kubernetes 提供资源运行,内存管理;


  1. Spark Core,主要包括SparkContext,RDD、action和transform算子;


  1. SparkStreaming,checkpoint和手动维护offset,消费kafka数据源;


  1. SQL,DataFrame与RDD的转化;


  1. Structured Streaming,有点鸡肋,通常用Flink基于event实时处理;


  1. ML(机器学习),包含了大部分常用的算法,分类、回归、聚类等等;


  1. Graphx,图计算,有些行业需要用,比如社会关系挖掘、诈骗交易等;


  1. SparkR,数据科学工作者使用R进行大规模分布式计算,R很耗内存一直是个诟病;


  1. PySpark,Spark又是很包容的,提供了Python编程的Api;


微信图片_20220427180948.jpg

Flink


这是个实时数据处理的组件,企业普遍使用,Flink状态管理与状态一致性(长文)。Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。

主要包括,


  1. Flink的架构,提交应用在Yarn上面;


  1. DataSet / DataStream / Table Api ;


  1. Flink流式计算,flink对接kafka数据源;


  1. 容错,CheckPoint / Savepoint,两阶段提交等;


  1. Source / Sink操作(hbase、mysql、redis);


  1. WaterMark机制;


  1. 窗口函数Window;


  1. 不同数据流join操作;


  1. 侧输出(乱序、分流);


  1. Flink异步IO;

微信图片_20220427180952.jpg

Kafka:Apache Kafka® 是 一个分布式流处理平台。可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。


  1. 生产者、消费者,消费者组、broker,leader,flower选举等;


  1. topic,partition,多副本,数据同步,高水位等;


  1. 抗峰流,数据生命周期;


  1. 数据写入的acks保证,数据的消费语义,数据的全局和局部有序;


  1. kafka性能为什么这么快,顺序写、零拷贝、分区并发、传输压缩、时间轮等,面试常问;


  1. 新版本kafka摒弃了zk;

微信图片_20220427180956.jpg

数据仓库


数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策,数据仓库在数据平台中的建设有两个环节:一个是数据仓库的构建,另外一个就是数据仓库的应用。数仓架构发展史


  1. 经典的三范式,维表和事实表;


  1. 星型模型,雪花模型,星座模型;


  1. 范式建模和维度建模;


  1. 数仓分层,ods/dwd/dws/dim, ads层,dm层;


  1. 数据湖,与数据仓库相比更加灵活和节约成本;

微信图片_20220427180958.jpg

impala


Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。


clickhouse


ClickHouse 是 Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快 100-1000 倍。


kylin


Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。


Apache Kylin™ 令使用者仅需三步,即可实现超大数据集上的亚秒级查询。


  • 定义数据集上的一个星形或雪花形模型


  • 在定义的数据表上构建cube


  • 使用标准 SQL 通过 ODBC、JDBC 或 RESTFUL API 进行查询,仅需亚秒级响应时间即可获得查询结果

微信图片_20220427181003.png


**docker / Kubernetes **


Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。


kudu


Kudu是Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的成员之一(incubating),专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。

微信图片_20220427181006.png

cdh/hdp


Apache Hadoop的开源协议决定了任何人可以对其进行修改,并作为开源或者商业版发布/销售。故而目前Hadoop发行版非常的多,有华为发行版(收费)、Intel发行版(收费)、Cloudera发行版CDH(免费)、Hortonworks版本HDP(免费),这些发行版都是基于Apache Hadoop衍生出来的。


当然了,还有很多其它的组件,比如sqoop,oozie等等,都有自己的应用场景。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
4月前
|
JavaScript 大数据 Python
原生大数据|elasticSearch|低版本kibana组件的汉化
原生大数据|elasticSearch|低版本kibana组件的汉化
29 0
|
6月前
|
SQL 资源调度 数据库
数仓学习---14、大数据技术之DolphinScheduler
数仓学习---14、大数据技术之DolphinScheduler
|
6月前
|
SQL NoSQL Java
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
58 0
|
4月前
|
分布式计算 NoSQL Java
大数据学习资料和书籍推荐
大数据学习资料和书籍推荐
67 0
|
4月前
|
监控 物联网 大数据
助力工业物联网,工业大数据之服务域:AirFlow的架构组件【三十二】
助力工业物联网,工业大数据之服务域:AirFlow的架构组件【三十二】
46 0
|
4月前
|
前端开发 JavaScript 大数据
❤️[前端学习]大数据全栈工程师之一文快速上手vue3❤️
❤️[前端学习]大数据全栈工程师之一文快速上手vue3❤️
59 0
|
4月前
|
大数据 Java 分布式数据库
使用记忆法打造你的大数据组件的默认端口号记忆宫殿
使用记忆法打造你的大数据组件的默认端口号记忆宫殿
30 0
|
4月前
|
大数据
大数据组件的默认端口号思维导图
大数据组件的默认端口号思维导图
25 0
|
4月前
|
SQL 分布式计算 Hadoop
假如大数据组件中的动物都变成神奇宝贝,那会变成什么样?
假如大数据组件中的动物都变成神奇宝贝,那会变成什么样?
26 1