Spark3.0.x合并Iceberg小文件
😀 这里写文章的前言:Spark3.0.1合并Iceberg的小文件
📝 Iceberg小文件处理Spark3.0.1Spark3.0.1版本的sql执行
参数说明:
如果有 catalog 的设置的话,在system前面加上 catalog. (catalog是你具体的catalog名字,比如spark_hadoop)
ods_bigscreen.o_ecuser_list: 具体的数据库名字和表名字
TIMESTAMP ‘2022-09-08 00:00:00.000’: 该时间之前的数据进行清除
1 是保留的版本数量,比如这里的1就是1
CALL system.expire_snapshots('ods_bigscreen.o_ecuser_list', TIMESTAMP '2022-09-08 00:00:00.000', 1)
执行结果如下图:
参数解析:
deleted_data_files_count 删除对应表的data文件夹个数。如果我们的文件格式选择的是 parquet,那么文件是以 .parquet 结尾, ...
CDH6.3.2搭建
😀 这里写文章的前言:CDH搭建,减少了hadoop集群生态的维护
📝 CDH端口开放
端口号
组件
备注
7180
CDH web UI
9870
HDFS web UI
8088
Yarn web UI
19888
Historyserver web UI
8080
8888
Hue(未优化)
8889
Hue(优化)
3306
MySQL
6379
Redis
9092
kafka
2181
zk
4040
Spark
18088
Spark
10000
Hiveserve2
10002
Hive
11000
Oozie
51000
Sentry
8020
HDFS
修改主机hosts配置host比如这里的配置,每台集群的机器都需要配置, 具体自身的ip和hostname等进行配置
# 在文件末尾添加每个实例的内网IP及对应的hostname172.17.79.117 hadoop102 hadoop102172.17 ...
RocketMQ基础知识
😀 这里写文章的前言:RocketMQ 基础知识
📝 整理流程
📝 模型概念
📔主题(Topic)主题是 Apache RocketMQ 中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息
定义数据的分类隔离;在Apache RocketMQ的方案设计中,建议将不同业务的数据拆分到不同的主题中管理,通过主题实现存储的隔离性和订阅隔离性
主题下存在 MessageQueue : 队列,才是topic实际的操作单元,一个topic可能有多个队列,方便扩容
在 Apache RocketMQ 架构中,主题属于顶层资源和容器,拥有独立的权限管理、可观测性指标采集和监控等能力,创建和管理主题会占用一定的系统资源。因此,生产环境需要严格管理主题资源,请勿随意进行增、删、改、查操作
📔队列(MessageQueue)队列是RocketMQ实际存储和传输的实际容器,也是RocketMQ消息的最小存储单元。Apache的一个主题由多个队列组成,以实现队列数量的水平拆分和队列内部的流式存储,在向内发送消息,但实际消息发送到该主题下的某个队列里
存储顺序性
队列天然具备顺序性,即消 ...
Spark基础知识
😀 这里写文章的前言:Hadoop: 海量数据的存储和海量数据的分析计算Spark是一种基于内存的快速,通用,可扩展的大数据分析引擎
📝 Spark基础概念基本概念Spark是一种基于内存的快速和通用,可扩展的大数据分析计算引擎
与MR进行对比
MR是基于磁盘的,Spark是基于内存
MR的task是进程
spark的task是线程,在executor进程里执行的线程
MR在Container里执行(留有接口方便插入),spark在worker里执行(自己用,没有接口)
MR适合做一次计算,Spark适合做迭代计算
hadoop MR 框架溢出写磁盘次数多,不合适迭代算,只适合一次计算;Spark框架计算块的原因是中间结果不罗盘,spark的shuffle也是要罗盘的
基础模块
Spark Core : 实现了Spark的基本功能,包含了任务调度,内存管理,错误恢复,与存储系统交互等模块.Spark Core中还包含了对弹性分布式数据集(Resilient Distrubuted DataSet,简称RDD)的API定义
Spark SQL : Spark用来操作结构 ...
MySql分库分表
😀 这里写文章的前言:分库分表
📝 分库分表要解决的问题
解决B+树设计上本身的瓶颈问题(数据过多, 以及内存不够放索引,需要发生IO之类的问题)
解决技术问题之后,要考虑业务的拆分情况,尽可能的减少业务代码的改动逻辑
分库分表的本质就是把B+树的设计瓶颈重新拆散,变成无瓶颈
📔 垂直切分通过将不同业务的数据,放到不同的数据库中,实现不同业务之间数据库层面的隔离
📔 水平切分可以按照某种规则将某些字段分散到多个库中,每个表中只包含一部分数据 ,字段是一样的(比如日期字段,用户id字段,区域字字段等,比较理想的切分字段)
📔 如何实施
1. 先评估是否需要拆分能不能有其他更好的优化方案,分库分表的开发周期比较长,一般只作为兜底方案去执行
2. 定制拆分的详细方案
选择合适的分表策略
再通知可能要更改的下游
尽量做好设计,避免分库分表带来的常见问题
3. 目的评估
评估:拆成几个表,几个库
目标:读写能力提升多少,负载降低多少,容量支持未来N年的发展
举个例子:
当前30亿数据,如何拆分
解答:
找一个合理的拆分情况,比如按区域,按门店去拆分,不影响原来的业 ...
hive基础知识
😀 这里写文章的前言:HDFS来存储海量数据,MapReduce来对海量数据进行分布式并行计算,yarn来实现资源管理和作业调度开发人员需要编写MR来对数据进行统计分析难度极大,效率极低,并且对开发者的java功底要求Hive可以帮助人员来完成这些苦活(将SQL语句转化MapReduce在yarn上跑)
📝 Hive架构模块
ClientCli: command-line interface
JDBC/ODBC: jdbc访问hive
Hive客户端
Thrift Clients: Hive的Server是基于Apache Thrift的,所以支持thrift客户端的查询请求
JDBC Clinet: 使用Java的JDBC driver连接Hive, JDBC driver使用 Thrift与Hive进行通信
ODBC Client: Hive的ODBC driver使用基于ODBC协议连接hive,与JDBC driver类似,ODBC driver也是通过thrift与Hive server进行通信
Metastore元数据: 表命,表所属的数据库( ...
MySql执行语句过程
😀 这里写文章的前言:MySql 执行一条 upate,select等语句期间发生了什么
📝 执行一条Select语句可以看到, MySQL 的架构共分为两层:Server 层和存储引擎层,
Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数(如日期、时间、数学和加密函数等)和所有跨存储引擎的功能(如存储过程、触发器、视图等。)都在 Server 层实现。
存储引擎层负责数据的存储和提取。支持 InnoDB、MyISAM、Memory 等多个存储引擎,不同的存储引擎共用一个 Server 层。现在最常用的存储引擎是 InnoDB,从 MySQL 5.5 版本开始, InnoDB 成为了 MySQL 的默认存储引擎。我们常说的索引数据结构,就是由存储引擎层实现的,不同的存储引擎支持的索引类型也不相同,比如 InnoDB 支持索引类型是 B+树 ,且是默认使用,也就是说在数据表中创建的主键索引和二级索引默认使用的是 B+ 树索引
连接器连接的过程需要先 ...
Hadoop_HA机制
😀 这里写文章的前言:HA : High Availablity,高可用高可用最关键的策略是 消除单点故障
📝 HA同时出现两个 active 状态,namenode的术语叫脑裂
防止脑裂
ssh发送kill指令
调用用户自定义脚步程序
问题记录怎么保证三台namenode的数据一致:
Fsimages : 让一台 nn 生成数据,让其它机器nn同步
Edits: 需要引进新的模块JournalNode来保证edits的文件和数据一致性
怎么让同时只有一台nn是active,其它的都是standby
手动分配
自动分配
2nn在ha架构中并不存在,定期合并fsimage和edtis的活谁来干
由standby的nn来干
如果nn真的发生了问题,怎么让其他的nn上位干活
手动故障转移
自动故障转移
YARN HA
🤗 总结归纳📎 参考文章
💡 有关文章的问题,欢迎您在底部评论区留言,一起交流~
hadoop基础知识
😀 这里写文章的前言:hadoop基础知识学习概念大数据的特点: volume大量;velcity高速;variety多样;value低价值密度
📝 hadoop框架组件HdfsHadoop Distributed File System:分布式文件系统
NameNode: 存储文件的元数据
DataNode: 存储文件的块数据,以及校验和
Secondary NameNode: 每隔一段时间备份元数据
YarnYet Another Resource Negotiator: 另一种资源协调者;hadoop的资源管理器
Resource: 管理整个集群资源
DataManager: 单个节点资源管理器的老大
Application Master: 单个运行任务的老大
Container: 容器,封装了一个任务运行所需的资源
MapReduceMap阶段并行处理输入数据
Reduce阶段对Map结果进行汇总
📝 HDFS一种系统来管理多台机器上的文件,分布式文件管理;适合一次写入,多次读出的场景
优点
高容错性: 数据保存为多个副本分布于多个datanode;如果误 ...
Redis主从,哨兵,集群
😀 这里写文章的前言:Redis的主从,哨兵,集群
📝 主从复制主从复制是Redis分布式基石,也是Redis高可用的保障
被复制的服务器称为主服务器(Master)
对主服务器进行复制的服务器称为从服务器(Slave)
1个master节点,多个slave节点
master 节点负责写(可读可写)
slave 节点负责读(只读),分担压力,slave接受master节点的同步信息一直保持同步
配置redis.config多个redis.config配置, 配置不同的端口启动, 从节点 slave 主节点. 需要手动配置
3种方式
replicaof(Redis 5.0 之前使用 slaveof)
在 slave 直接执行命令:replicaof
在 slave 配置文件中加入:replicaof
使用启动命令:–replicaof
主节点不需要修改配置,从节点需要配置 replica of master ip poid
原理
2.8版本以前,从服务器对主服务器的同步需要从服务器向主服务器发送sync命令来完成,主从服务器需要占用的资源:每次都执行一次RDB ...









