首页 > 编程知识 正文

2021大数据专业,2021大数据数学

时间:2023-05-05 23:42:16 阅读:257789 作者:384

大数据学习最好有一门语言基础,Java和python最好。学习资料的话,推荐阿里云社区的课程和B站上尚硅谷的免费课程。学习过程中,结合着大数据组件的官方文档

对自己理解不了和模糊的地方,做一个补充。数仓和spark分析这块,最好结合这业务来,多加联系加深影响。

https://developer.aliyun.com/learning/roadmap/bigdata

一、Linux (基础)

虚拟机VMware,xshell等工具的使用。

1)常用命令(文件查看编辑、用户权限操作、服务器资源操作、进程端口查看等);

2)高级工具命令: rpm、yum、awk、ssh免密、grep、crontab等;

3)常用组件的安装(虚拟机克隆、NAT/桥接等网络配置原理、jdk安装、MySQL安装、时间同步服务等)

4)shell脚本编程(/深情的裙子/bash: if判断,for循环,取参数时间等)

二、zookeeper

(基础)

1)安装部署

2)zookeeper数据结构,node类型,数据存储

3)paxos算法、zab原理,集群脑裂

4)监听器原理,选举机制和具体过程,写数据流程;

5)zookeeper的API,watch,分布式锁实现,服务动态上下线

三、Hadoop

(基础,目前公司用的2.0和3.0版本,版本更新是趋势。可以以2.0为主学习入门,掌握后进阶3.0)

通用部分:

安装部署(完全分布式和HA方式部署,联邦方式了解),运行和简单操作(HDFS和MR的),源码编译,添加压缩(snappy、lzo)

1、HDFS部分

1)架构和组件,具体分工;

2)block的决定依据,切片划分机制,FileinputFormat的几种实现类;

3)HDFS文件的shell操作,上传下载以及Java API操作等;

4)对应的文件读数据流程,写数据流程,小文件问题;secondaryNameNode的工作机制和过程;

5)dataNode的数据完整性怎么保证;怎样动态上下线新的dataNode;机架感知

2、MapReduce部分

1)切片机制,mapTask数决定;

2)mapTask工作机制和流程:(FileinputFormat类;map;环形缓存区结构、设计意义和配置参数;partitioner分区和快速排序;自定义分区器;

溢写文件和归并排序;com深情的裙子er;自定义排序writableCompareble;)

3)shuffle过程(Java序列化和MR序列化WritableComparable;压缩编码)

4)reduceTask过程:(reduceTask并行度决定和设置;分区数量和ReduceTask数的结果;远程拷贝和归并合并;分组GroupingComparator;reducer;

outputFormat和自定义输出)

3、yarn部分

1)组件和功能(RM和NM; yarnRunner、MRAppmaster、yarnchild、container)

2)资源调度器:FIFO,容量,公平;

3)yarn参数调优

四、hive部分

(熟练:数仓,离线计算,lambda架构的数仓hive是核心;现在实时数仓kappa架构的技术栈是: flink + kafka + OLAP工具[clickhouse/druid等])

1)安装

2)数据类型和集合数据类型,类型转换

3)beeline、matastore;集成Tez引擎; 配置hive on spark;配置压缩;

4)数据库操作;表(内部表、外部表;分区表;分桶表);load数据到表、导出数据到本地;

5)查询操作(sql);内置函数(时间、字符串、json等);自定义UDF、UDAF;分组(group by、sort by、distribute by、cluster by)

join操作;窗口函数;行列转换; 常用(NVL、if()、CASE WHEN、Rank())

6)文件格式(textFile、sequenceFile、Orc、parquet)

7)数据倾斜的现象和原因;优化(开启MapJoin、开启Map端聚合、join时做控制过滤 、动态分区调整、开启推测执行、开启JVM重用等)

impala

(内存计算的,同样的可以学习 hive集成Tez和 spark on hive)

1)架构与简介;安装;操作

2)原理,组件;同类工具的优缺点对比

3)优化

presto

(异构数据源联合查询,olap分析工具,同类工具还有很多,常用的还有kylin、druid等)

五、数据抽取工具(sqoop / kettle/datax/flinkx)

(掌握: 数据抽取,这些都是从DB抽取数据到数仓中的,数据源一般是一些业务表;这些组件也有支持文件、Nosql等数据输入源的)

1) sqoop 1.X和2.X的架构;底层原理;安装部署

2)RDBMS导入数据;导出数据到RDBMS;空值问题、一致性问题;

3)kettle在window环境下安装,操作;JVM配置

4)datax的各种输入输出源配置,json模板生成和各个参数含义,自定义源开发等

5)flinkx抽取数据,json文件编写

6)抽数工具数据量、稳定性、性能差异、适用场景等对比

7)可能涉及的其他组件: CDC机制、Ogg、Canal等

六、flume

(数据抽取,一般做日志文件收集的;同类的在Java开发中有ELK体系:xxBeat【filebeat】、logstash、elasticsearch、kibana)

(还有一类数据采集需求是直接做文件上传的,可以找找FTP文件收集相关的知识,这类在以后物联网、车联网行业可能比较多)

1)数据分域;双层flume的意义

2)安装部署;agent的组成架构;常用source(自定义source);常用拦截器(自定义拦截器);channel选择器;channel类型;常用sink(自定义sink)

3)agent内部原理和流程;event结构;put事务,take事务;

4)Kafka channel 和HDFS sink,参数配置和调优;

5)监控器ganglia

七、Kafka(熟练)

(kafka不管是在离线数仓,还是实时数仓,或者ETL等场景,都有很广泛运用。核心就是要明白:Kafka怎样保证精准一致性、什么情况下消息丢失或重复)

1) 安装部署、操作命令

2)原理、组件架构、生产者消费者设计模式、零拷贝、顺序写磁盘、offset和文件存储机制

3)producer端: ack机制、ISR机制、tmdyc和HW故障恢复机制、幂等性和实现原理、事务机制

4)broker存储: 分区、副本、副本的主从、什么情况下topic里的消息是顺序性的

5)consumer端: 消费pull机制、集成flink和spark、分区分配策略、消费者组和消费者、重新消费消息

6)kafka拦截器实现

7)kafka stream相关知识

八、调度工具(Oozie/azkaban / airflow/DolphinScheduler)

(离线数仓中,任务调度必不可少的。能熟练使用就行,目前我一般用azkaban。)

1) 安装部署、操作命令、配置、 任务链路、监控预警等

2)跟此类相关的技能: shell脚本、python脚本

九、hbase / clickhouse / kudu / Iceberg

(OLAP和数据湖相关的组件,数仓和数据开发涉及到。这些结合项目去学习一下,像智能推荐系统、用户画像特征、风控决策和预警系统等,有兴趣的可以深究底层和源码)

十、集群搭建(ambari / clouderaManager )

(了解: 可能有的公司有大数据运维岗位,数据开发和数据仓库岗位不怎么涉及此类工作)

十一、scala/java

(spark写scala的多一些,因为flink在时间语义、精准一致性等方面优势,现在flink是主流方向,底层是Java语言)

spark

基础部分:

spark sql

spark streaming

spark内核解析; 内存管理模型;任务执行流程;性能调优手段(数据倾斜); 

flink(市面上的书籍较少,参考官网学习,也可以去B站白嫖相关视频,还在学习中...)

十二、 python

(python的库很多,即使不做开发,也可以学习,写一些实用的小工具)

superset(BI分析,报表展示相关的。可以在浏览器连接数据域,编写sql查询相关结果,配置想要的图表展示。图表可以嵌入式的引入前端项目)

十三、数据仓库

(数仓部分东西比较多,跟最近流行的数据中台、数据治理也有一些关系,除了技术知识外,对业务熟练度其实也有要求的,这个更像是项目类的知识点。这个目录后面另起一篇文章管理)

概念和理论

1)数仓架构发展(lambda > kappa > 实时数仓+OLAP > 混合数仓)数仓分层设计;数据分域;指标体系;阿里的onedata理论;企业总线架构矩阵设计;

2)维度建模方法和依据;其他建模方法;维表;事实表;

https://loujitao.github.io/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。