Juicy-Bigdata
未读Spark架构相关进程
Driver 编写的Spark程序运行的进程
Master 集群主节点
Worker: 从节点启动的进程
Executor
Task 真正干活的
![image-20230213142957569](/Users/chunpeng/Library/Application Support/typora-user-images/image-20230213142957569.png)
Juicy-Bigdata
未读HIVE存储格式
Hive支持:TextFile、SequenceFile、ORC、PARQUET
行式存储与列式存储
行存储的特点:行存储查询一行数据的时候效率更好
列存储:可以针对性的设计更好的压缩算法,查询某些字段的效率更高,减少读取
TEXTFILE
默认格式,数据不压缩,HIVE不会对数据进行切分,从而不能进行合并炒作
ORC格式
Optimized Row Columnar
一个ORC文件由若干个Stripe组成,Stripe相当于RowGroup,由三部分组成;
IndexData:记录各个字段在row data的offset
Row Data:部分行具体数据,按列进行存储
Stripe footer:元数据信息
File Footer:存储每个Stripe的行数、每个column的数据类型。
PosterScript:记录文件的压缩类型,fileFooter的长度。
在读取ORC文件的时候,会先读posterscript->FileFooter->stripte,因为文件长度从最后开始约定。
PARQUET
文件是二进制存储的
定义指定存储格式的表
s ...
Juicy-Bigdata
未读Hive介绍
Hive的数据存储
基于Hadoop的HDFS
没有专门的数据存储格式,支持TextFile,SequenceFile, RCFile
Hive的架构
数据库VS数据仓库
数据库:基本的事务处理,增删改查
数据库:注重查询
OLTP:操作性处理称为联机事务处理,关心相应时间、数据安全性、完整性
OLAP:分析型处理,称为联机分析处理,针对主题历史数据进行分析,支持管理决策
HIVE SQL
DDL 数据定义语言
对数据库的操作
创建数据库
123create database if not exists myhive;-- 指定存储位置create database myhive location '/myhvie'
修改数据库
1alter database myhive set dpproperties('createtime'='20220202');
查看数据库详细信息
1desc database [extended] myhive;
删除数据库
1drop database my ...
Juicy-Bigdata
未读Yarn集群的架构和工作原理
RM 和NM 的功能介绍
ResourceManager基本介绍
一、职能
与客户端交互,处理客户端的请求
启动和管理AM,并在它failed的时候restart
管理NN,接收来自NN的资源汇报情况,向NN下达管理指令
资源管理调度,接受来自AM的资源请求,分配资源
二、内部结构
用户交互模块
clientRMService:处理提交应用程序,终止程序,获取程序状态请求
adminService:管理员的通信信道
webApp
NM管理模块
NMLivelinessMonitor:监控NM是否活着。、
NodeListManager: 维护正常和异常的NM节点列表,默认情况下都为空
ResourceTrackerService: 处理来自NN的请求,包括注册和心跳。
AM管理模块
AMLivelinessMonitor:监控Am是否活着。
ApplicationMasterLauncher:要求某一个NM启动ApplicationMaster,处理创建和kill Am的请求
ApplicationMasterServ ...
Juicy-Bigdata
未读MapReduce
MapReduce思想
先分再合,分而治之
Map: 负责拆分,彼此之间没有依赖
Reduce:负责合并
MapReduce 设计思想
抽象编程模型:
map:对一组数据元素进行某种重复式的处理
reduce:对Map的中间结果进行处理
统一架构,隐藏底层细节
MapReduce特点
高容错性
适合海量数据的离线处理
可扩展
局限性
实时计算性能差
不能进行流式计算
实战WordCount
深入MapReduce
停止提交的任务
1yarn application -kill app_id
Shuffle过程剖析
Hadoop中的序列化机制
常用的Writeable实现类
紧凑:高效使用空间
快速:快速数据读写
可扩展:透明读取
互操作:支持多语言交互
源码解读 TODO
MapReduce 性能优化
小文件问题
使用容器
SequenceFile
MapFile
数据倾斜
数据频率倾斜:某一个区域的数据量远大于其他区域
解决方案:
数据打散
Juicy-Bigdata
未读RPC原理分析及应用
RPC接口分析
ClientProtocol: HDFS客户端与NameNode通信的接口
DatanodeProtocol: DataNode与NameNode通信的接口
NamenodeProtocol:SecondaryNameNode与NameNode通信的接口
HDFS写数据过程
Client发起文件上传请求,通过RPC与NameNode建立通讯**(ClientProtocol)**。 NameNode检查目标文件是否存在,父目录是否存在,返回是否可以上传
Client请求第一个block该传输那几个DataNode服务器上
NameNode根据配置文件中指定的备份数量以及机架感知原理进行文件分配,返回可用的DataNode地址:A,B,C
Hadoop 在设计时考虑到数据的安全与高效, 数据文件默认在HDFS 上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份
Clien请求3个DataNode中的A上传数据,通过RPC**(DatanodeProtocol)**建立pipeline。A ...
Juicy-Bigdata
未读HDFS核心进程剖析
HDFS体系结构
主从结构,主节点:NameNode 从节点:DATaNode, 都支持多个
SecondaryNameNode 辅助节点
NameNode节点介绍
整个文件系统的管理节点
维护整个文件系统的文件目录树
文件/目录信息
每个文件对应的数据块列表(一个文件可能在多个块上)
负责接受用户 请求
fsimage
文件信息,目录树…
1hdfs oiv -p XML -i fsimage_ -o fsi.xml
edits
事务文件,记录上传状态
secondarynameNode做这个事情:会定期合并到fsimage
seen_txid
edits文件尾数,保证数据一致性
VERSION
格式化之后产生的信息
维护了两份关系
File和Block list的关系,元数据用150字节
DataNode与Block的关系
SecondaryNameNode
负责定期将edits中的内容合并到fsimages
secondary namenode 询问namenode 是否需要checkpoint。直接带回namenode是否检 ...
一、SQL语句
DDL
data definition language 数据定义语言
123456show databases; --显示数据库create database **; -- 创建数据库use name_of_databse; --使用数据库select database(); --显示正在使用的数据库drop database name_of_database; --删除数据库
123456SHOW TABLES; --显示数据表CREATE TABLE 表名(字段名 数据类型);DESC 表名; -- 显示表结构SHOW CREATE TABLE 表名 --显示建表语句ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO --添加/修改类型/修改名称&类型/删除/修改名称Drop table 表名;
DML
data manipulation language 数据操作语言,增删改
1234567INSERT INTO 表名(字段1,字段2)VALUES (值1,值2);INSERT INTO 表名 VALUES ...
概述
决策树:分类决策树是一种描述描述对实例进行分类的树形结构
决策时的学习旨在构建一个与训练数据拟合很好,并且复杂度小的决策树。因为从可能的决策树选择最优决策树是NP完全问题,现实中采用启发式算法。
决策树的学习包括:特征选择,树的生成,树的剪枝。常用的算法有ID3, C4.5,CART。
特征选择的准则是信息增益或信息增益比或基尼指数
决策树的生成通常选用信息增益最大,信息增益比最大或基尼系数最小的作为特征选择的准则,从根节点开始递归的产生决策树。
熵
H(X)=−∑i=1npilogpiH(X)=-\sum_{i=1}^np_ilogp_i
H(X)=−i=1∑npilogpi
条件熵,可以理解为在不同特征取值下的熵的加权和
H(Y∣X)=∑i=1npiH(Y∣X=xi)pi=P(X=xi)H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i)\\
p_i=P(X=x_i)
H(Y∣X)=i=1∑npiH(Y∣X=xi)pi=P(X=xi)
信息增益
g(D,A)=H(D)−H(D∣A)g(D,A)=H(D)-H(D|A)
g(D,A ...