大数据学习最好有一门语言基础,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脚本编程(/bin/bash: if判断,for循环,取参数时间等)
二、zookeeper
1)安装部署
2)zookeeper数据结构,node类型,数据存储
3)paxos算法、zab原理,集群脑裂
4)监听器原理,选举机制和具体过程,写数据流程;
5)zookeeper的API,watch,分布式锁实现,服务动态上下线
三、Hadoop
通用部分:
安装部署(完全分布式和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分区和快速排序;自定义分区器;
溢写文件和归并排序;combiner;自定义排序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部分
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
1)架构与简介;安装;操作
presto
五、数据抽取工具(sqoop / kettle)
1) sqoop 1.X和2.X的架构;底层原理;安装部署
2)RDBMS导入数据;导出数据到RDBMS;空值问题、一致性问题;
3)kettle在window环境下安装,操作;JVM配置
六、flume
1)数据分域;双层flume的意义
2)安装部署;agent的组成架构;常用source(自定义source);常用拦截器(自定义拦截器);channel选择器;channel类型;常用sink(自定义sink)
3)agent内部原理和流程;event结构;put事务,take事务;
4)Kafka channel 和HDFS sink,参数配置和调优;
5)监控器ganglia
七、Kafka
八、调度工具(azkaban / airflow)
九、hbase
clickhouse
kudu
十、集群搭建(ambari / clouderaManager )
十一、scala
spark
基础部分:
spark sql
spark streaming
spark内核解析
十二、 python
pyspark
superset
十三、数据仓库
概念和理论
1)分层设计;数据分域
2)维度建模方法和依据