- 博客(304)
- 收藏
- 关注
原创 Spark SQL 核心概念与应用详解
特性描述核心抽象DataFrame(无类型) 和Dataset(强类型,Scala/Java)执行引擎Catalyst 优化器(逻辑优化 + CBO) +Tungsten(物理执行优化)编程接口SQL和(统一执行引擎)数据源通过支持多种格式 (Parquet, JSON, JDBC, Hive等)核心优势易用性高性能(自动优化),统一性(一站式处理)Spark SQL 已经成为 Spark 生态中应用最广泛、最受欢迎的模块,是大数据领域进行数据清洗、转换、分析和探索的事实标准工具之一。
2025-08-30 11:55:01
231
原创 Hadoop MR替换为Spark步骤详解
部署Spark:配置为模式。代码重写:用Spark的API(RDD/DataFrame/Dataset)重写原有的MR任务。这是主要工作量。提交运行:使用将任务提交到YARN。监控调优:利用Web UI和日志监控任务运行状态,并进行性能调优。通过这种方式,你既保留了Hadoop HDFS和YARN的稳定性和可靠性,又享受到了Spark带来的高性能和开发效率,完美实现了计算引擎的升级。
2025-08-30 11:37:53
268
原创 nano与vi/vim编辑器区别详解
nanovi / vim优点简单易用,无需学习,直观明了。功能强大,编辑效率极高,无处不在(预装),高度可定制。缺点功能有限,处理复杂任务效率低。学习曲线陡峭,初学者有挫败感。如何选择?如果你是初学者,或者只是想快速修改一个文件然后退出,使用 nano。它不会让你陷入困境。如果你打算长期使用命令行、从事软件开发或系统管理工作,投资时间学习 vim 是百分之百值得的。它初期的学习成本会换来未来几十年效率的巨大提升。一个有趣的事实。
2025-08-30 11:33:03
184
原创 Linux 中的sudo指令
关键点说明核心功能让普通用户安全、受控地以高权限(如 root)执行命令。安全优势遵循最小权限原则,提供完整的审计日志。基本命令配置命令永远使用来编辑文件。查看权限使用sudo -l查看自己能被允许执行哪些命令。与su区别sudo用当前用户密码,临时提权;su用目标用户密码,持续提权。掌握sudo是安全且高效地使用 Linux 系统的基石。
2025-08-30 11:19:23
371
原创 详解Linux tar命令使用方法
记住组合:创建归档最常用的就是-czvf(创建压缩包)和-xzvf(解压压缩包)。-f选项必须放最后:因为-f后面要接文件名,所以它通常是选项序列里的最后一个。压缩格式选择.tar.gz-z通用、均衡。在压缩速度和压缩率之间取得了很好的平衡,是网络下载和分发中最常见的格式。.tar.bz2-j压缩率更高,但压缩和解压速度比 gzip 慢。适合对体积敏感但对时间不敏感的场景。.tar.xz-J极限压缩,压缩率最高,但速度也最慢。常用于发行版软件包或需要极致节省空间的场景。使用绝对路径要小心。
2025-08-30 11:15:26
178
原创 Oracle递归查询详解
对于 Oracle 环境下的开发,START WITH ... CONNECT BY是处理递归查询的首选,因为它语法简洁、功能专一且性能优异。如果你需要编写跨数据库兼容的 SQL,或者希望递归逻辑更符合通用的编程思维(先锚定再递归),那么应该使用递归 CTEWITH子句)。无论是哪种方法,递归查询都是操作树形结构数据(如组织架构、菜单、分类目录、BOM物料清单)的利器。
2025-08-29 14:09:53
321
原创 大数据开发AI工具推荐
如果你能告诉我你目前主要处理的数据平台(比如是在云上使用MaxCompute、Spark集群,还是传统的Hadoop生态圈),或者最近在开发中遇到的具体挑战(比如数据清洗特别繁琐、某个ETL流程性能瓶颈,或者需要更直观快速的数据可视化),我也许能给你更具体的建议。大数据开发领域,AI工具的加入能帮我们提升开发效率、简化流程,甚至改变传统的工作模式。下面我为你筛选和梳理了一些值得关注的AI工具,希望能为你提供参考。希望这些信息能帮助你更好地了解和选择适合你的AI工具。
2025-08-29 12:56:48
333
原创 [Azkaban] EXCEPTION javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unkn
如果你不想动默认的cacerts文件,可以创建一个新的信任库文件,并让 Azkaban 使用它。创建新的信任库并导入证书# 创建一个新的空的 truststore.jks 文件# 导入必要的证书配置 Azkaban 使用自定义信任库修改 Azkaban 的启动脚本,在JAVA_OPTS重启 Azkaban。首先确认问题来源:Azkaban 是在连接哪个外部服务时报错?是 Executor 连 Web Server,还是 Azkaban 在拉取依赖(如 HDFS、Hive、Presto、数据库)时?
2025-08-29 12:10:11
555
原创 Parquet与ORC存储格式对比分析
格式优势劣势最佳场景Parquet生态兼容性极广,社区活跃,是业界标准;在 Spark/Presto 上性能优异。不支持 ACID 事务;对 Hive 复杂类型的支持稍弱。绝大多数现代数据湖和分析平台,特别是使用 Spark、Presto/Trino 的技术栈。ORC压缩率更高;原生支持Hive ACID 事务;对 Hive 复杂类型支持极好。生态兼容性略窄于 Parquet;与 Hive 之外的工具集成有时需要额外配置。以 Hive 为中心的数据仓库,需要事务支持或极致压缩的场景。最终建议。
2025-08-29 09:35:58
769
原创 distinct、exists、group by 、rowid对数据去重比较
方法优点缺点适用场景DISTINCT简单直观,通用标准性能可能一般;无法获取非去重列快速简单查询唯一值组合GROUP BY功能强大,性能通常较好;可实现复杂去重语法稍复杂,需注意严格模式最常用、最通用的去重方法,尤其适合“保留极值”EXISTS逻辑灵活,可实现非常复杂的去重规则性能通常较差(相关子查询),语法复杂复杂自定义去重逻辑,小数据量ROWIDOracle下删除重复数据效率极高仅限Oracle;主要用于删除而非查询Oracle数据库专用数据清理。
2025-08-28 17:20:50
604
原创 hive报错 FAILED: SemanticException [Error 10006]: Line 2:149 Partition not found ‘‘2025-08-28‘‘
这个Hive报错表明系统在表中找不到名为的分区。
2025-08-28 16:42:52
100
原创 Hive执行计划JSON详解
Hive 的 JSON 执行计划提供了无与伦比的细节深度,是进行高级 SQL 调优的必备技能。确认优化是否生效: 如分区剪枝、谓词下推。识别性能瓶颈: 如大表触发了CommonJoin而不是MapJoin。理解查询的执行流程: 清楚地看到数据是如何一步步被处理和转换的。虽然一开始会感到复杂,但通过练习和借助可视化工具,你会逐渐掌握这项强大的调优能力。
2025-08-28 16:31:25
765
原创 B+树分裂与合并详解
和。理解这两个操作是理解 B+ 树如何保持平衡、高效的关键。我们先快速回顾一下 B+ 树的特点,这有助于理解为什么需要分裂和合并。
2025-08-28 15:08:15
652
原创 sql的执行顺序和优化逻辑(经典实用)
书写顺序:SELECT->DISTINCT -> FROM -> JOIN -> ON -> WHERE -> GROUP BY -> HAVING -> UNION -> ORDER BY ->LIMIT。逻辑执行顺序:FROM -> JOIN ON -> WHERE -> GROUP BY -> HAVING -> SELECT ->DISTINCT-> UNION -> ORDER BY ->LIMIT。在连接后对虚拟表T1执行行级过滤(不可使用聚合函数),生成虚拟表T3。
2025-08-28 14:37:15
747
原创 Hive内部表与外部表区别及应用场景
特性内部表 (Internal Table / Managed Table)外部表 (External Table)数据生命周期由Hive管理。DROP TABLE时,表数据和元数据都会被删除。独立于Hive管理。DROP TABLE时,只删除元数据,数据文件仍然保留在HDFS上。存储位置存储在Hive默认的配置路径下(通常是存储位置由用户指定(LOCATION参数),可以在任何HDFS路径。数据所有权Hive拥有数据,认为自己是数据的“所有者”。Hive只是引用数据,不拥有数据。
2025-08-28 14:15:36
686
原创 Hive中ORC文件默认压缩算法
方面说明默认压缩ZLIB配置参数常用选项NONEZLIBSNAPPYLZOZSTD如何指定在中设置如何查看使用orc-tools工具的meta命令因此,如果你的 Hive 环境没有经过特殊配置,你创建的 ORC 表默认就会使用ZLIB进行压缩。
2025-08-28 13:16:44
165
原创 Hive 事务总结
应该使用 Hive 事务的场景你需要对数据仓库中的历史数据进行批量更新或删除(如合规性要求、数据修正)。你需要精确一次的流式数据插入,保证数据不重不漏。你在实现缓慢变化维(SCD),特别是 Type 2(增加新版本记录)。不应该使用 Hive 事务的场景高频率的单行 OLTP 操作(例如,每秒钟更新用户状态成百上千次)。Hive 完全不适合这种场景,应选择 HBase、Cassandra 或传统关系型数据库。你的表不需要更新和删除,只是用于追加插入和查询。
2025-08-28 12:19:52
626
原创 Hive中ORC文件格式详解
查询性能快:基于列式存储、谓词下推和统计信息,大大减少了磁盘 I/O。压缩率高:节省大量存储空间(通常比文本格式节省 70%-90% 的空间)。支持复杂类型:完美支持 Hive 的复杂数据类型(Array, Map, Struct)。事务支持:ORC 是 Hive 实现 ACID 事务的基础文件格式。内置索引:包含文件级和 Stripe 级的统计信息,用于加速查询。
2025-08-28 12:02:14
729
原创 msi结尾的是什么文件
简单来说,.msi 是 Windows 系统推荐的一种软件分发格式,它让软件的安装和管理(尤其是对企业IT管理员而言)变得更加标准化、自动化和可靠。当你看到一个 .msi 文件时,你就知道这是一个需要被安装的软件包。
2025-08-28 10:18:40
361
原创 Linux怎么配置环境变量
命令作用查看某个环境变量的值临时设置环境变量printenv显示所有环境变量重新加载~/.bashrc配置文件,使更改立即生效删除一个已设置的环境变量(也是临时的)
2025-08-28 09:59:08
392
原创 windows安装软件为什么要配置环境变量
是操作系统用来存储有关系统环境信息的一些键值对。它们为运行在系统上的程序提供重要的配置信息。这是最重要的一個环境变量。它的值是一个包含多个目录路径的列表,各个路径之间用分号;隔开。当你在命令行(cmd或PowerShell)中输入一个命令(比如pythonjavacnode首先,它会在你当前所在的目录下查找有没有这个可执行文件(如python.exe如果没找到,它就会按照Path变量中列出的目录顺序,一个一个地去这些目录里寻找。一旦在某个Path目录里找到了python.exe,就执行它。
2025-08-28 09:44:45
718
原创 索引排序与外排序区别详解
特性索引排序外排序本质“视图”排序“数据”排序动机避免移动数据突破内存限制结果有序的索引/指针有序的新文件有时这两种技术会结合使用。例如,在一个数据库系统中,当你对一个大于内存的表创建索引时,数据库引擎可能会使用外排序算法来对磁盘上的索引条目(这些条目本身就是一种“指针”)进行排序,从而最终构建出一个索引排序所需的有序索引结构。
2025-08-28 08:24:46
685
原创 Oracle和Mysql的真实执行计划
特性Oracle核心命令前置要求无,直接使用关键输出A-Rows(实际行数) vsE-Rows(预估行数)A-Time(实际时间)Buffers(逻辑读)(实际时间,毫秒)rows(实际行数)loops(循环次数)优点信息非常全面(逻辑/物理读、时间、行数),行业标杆简单直观,直接集成,树形结构清晰显示时间消耗最佳实践始终对比A-Rows和E-Rows,这是判断优化器是否选错计划的最重要依据。重点关注最大的那个操作节点,那就是性能瓶颈。无论是 Oracle 还是 MySQL,
2025-08-28 00:56:50
788
原创 大数据Hive执行计划详解与优化
命令:使用获取最清晰易读的计划。步骤:先看了解阶段流程,再深入分析每个操作符的细节。核心:重点关注Statistics(统计信息)、Filter(过滤时机)、Group By的modeJoin的类型以及的 key(数据倾斜)。优化收集统计信息、避免笛卡尔积、处理数据倾斜、利用分区剪裁、启用 MapJoin 等。熟练阅读 Hive 执行计划是从“会用 Hive”到“精通 Hive 调优”的关键一步。
2025-08-27 22:23:30
774
原创 Oracle执行计划详解与优化
工具:掌握和的组合,以及 SQL*Plus 的AUTOTRACE。核心:紧盯Operation(操作类型)、Rows(预估行数)和(访问/过滤条件)。目标:消除不必要的全表扫描(FULL SCAN),确保索引被有效使用(INDEX SCAN),保证统计信息准确以使优化器做出正确判断。进阶:理解不同的表连接方式(Nested Loops, Hash Join, Merge Join)及其适用场景。通过不断练习查看和分析执行计划,您会逐渐培养出快速定位 SQL 性能问题的直觉。
2025-08-27 22:16:33
835
原创 MySQL执行计划详解与优化
养成习惯:对复杂查询或慢查询,先用EXPLAIN看一下。重点关注typekeyrowsExtra这四列。优化目标:避免ALL(全表扫描),避免和,努力实现(覆盖索引),让rows值尽可能小。深入工具:对于更复杂的分析,可以使用获得更详细的信息,或者使用等可视化工具来更直观地查看执行计划。掌握EXPLAIN,你就拥有了洞察数据库性能问题的“火眼金睛”。
2025-08-27 22:02:47
270
原创 Oracle批量导入数据方案总结
特性外部表核心思想加载数据到数据库表中映射文件为可查询的表数据位置数据最终被复制到数据库内部存储数据始终在外部文件中性能非常高,直接路径加载极快很好,但查询时需实时解析文件灵活性加载逻辑在控制文件中定义极高,可使用完整 SQL 进行过滤和转换主要用途一次性或定期批量加载,数据迁移数据清洗、验证、探索性查询和加载如何选择?如果需要简单、直接、高性能地将文件数据搬入数据库表,选择SQL*Loader。如果需要对文件数据进行复杂的检查、清洗、转换,或者想用 SQL 直接探索文件内容,选择外部表。
2025-08-27 21:49:17
412
原创 MySQL LOAD DATA与INSERT导入大批量数据时候
是 MySQL 中一个非常强大且高效的指令,用于将文本文件(如 CSV、TSV)的内容快速批量地读入到数据库表中。相比于使用多个 语句,它在处理大量数据时速度要快几个数量级。它的核心功能就是:将服务器主机上的一个文本文件,高速地导入到指定的数据库表中。关键参数详解 子句 (定义每个字段的格式) 子句 (定义每行的格式) 和 列映射 和 假设场景:我们有一个 表:还有一个 文件,内容如下:目标: 将此 CSV 文件导入到 表中。步骤 1:处理文件确保文件格式正确,分隔符为逗号,字符
2025-08-27 21:44:55
942
原创 Oracle最左前缀原则和索引跳跃扫描
where A = ‘a’ ADN C = ‘c’ 仅条件A = ‘a’ 条件使用索引筛查出结果后,再过滤C条件(此时不使用索引,除非单独创建C列的索引)where A = ‘a’ ADN B = ‘b’ --使用索引。where A = ‘a’ ADN B = ‘b’ and C = ‘c’ --使用索引。最左侧原则:查询条件必须从索引的最左边列开始,且连续不跳过中间列,索引才能被有效使用。当where B = ‘b’ AND C = ‘c’
2025-08-27 21:13:15
148
原创 Oracle RATIO_TO_REPORT函数详解
特性说明功能计算某值在其分区内占总和的比例返回值0 到 1 之间的数值(可乘以100得到百分比)核心子句(定义计算范围)处理NULL忽略 NULL(结果为NULL,不计入总和)排序不支持ORDER BY等价形式总之,是进行百分比和贡献度分析的利器,它能让你轻松地将绝对数值转换为有意义的相对比例,是 SQL 分析中不可或缺的工具之一。
2025-08-27 20:57:02
801
原创 行式与列式存储区别及应用场景
行式存储列式存储哲学“行合”- 把一条记录的所有内容放在一起,方便一次性管理。“列合”- 把同类数据放在一起,方便批量分析。好比一个文件夹里放一个人的全部档案(身份证、学历、合同等)。找一个人的全部信息很快,但统计所有人的学历则很慢。档案室把所有人的身份证、所有人的学历证明分别存放在不同的文件柜里。统计所有人的学历(只需打开一个文件柜)非常快,但重组一个人的全部档案则需要跑多个文件柜。目标优化事务处理(写)优化分析查询(读)使用行式数据库(如MySQL)处理日常的事务操作(OLTP)。
2025-08-27 13:41:00
807
原创 大数据领域的框架和软件总结
负责从各种源头(数据库、日志、传感器等)抽取数据并送入大数据平台。分布式消息队列。不仅是采集工具,更是实时数据流管道的核心,用于解耦生产者和消费者。: 专为日志数据采集设计,支持高可靠性地将海量日志数据传入HDFS/HBase。: 用于在Hadoop和关系型数据库(如MySQL, Oracle)之间高效地传输批量数据。: 一个易用、强大、可靠的数据处理和分发系统,提供基于Web UI的可视化界面来设计数据流。Debezium: 一个CDC工具,通过捕获数据库的变更日志来提供实时数据流。
2025-08-27 09:16:36
252
原创 大数据Flume相关总结
它被设计用于高效地将大量日志数据从许多不同的源(如Web服务器)收集起来,并移动到中心化的数据存储中(如HDFS、HBase)。一个Agent可以配置多个Source、Channel和Sink,形成复杂的数据流。”,专门负责把产生于各处服务器上的日志数据,可靠地、批量地“搬”到像Hadoop这样的大数据平台上进行分析。单个Agent的能力有限,Flume支持将多个Agent连接起来,形成复杂的、多层的。理解Flume的关键在于理解其**“事件”你可以把它想象成数据的““Agent”**模型。
2025-08-27 09:10:35
298
原创 大数据ClickHouse列式存储相关总结
ClickHouse 集群是一个对等多主架构。每个节点(存储一部分数据分片(Shard)。可以处理任何请求。通过ZooKeeper(或ClickHouse Keeper)进行协调,实现元数据同步、副本选举、分布式DDL查询执行等功能。客户端可以连接集群中的任意一个节点发起查询,该节点会作为“协调者”,将查询分发到其他相关节点,聚合结果后返回给客户端。
2025-08-27 09:07:33
252
原创 大数据HBase列式存储一些总结
HBase 是 Hadoop 生态中填补大规模实时读写空白的关键组件。它牺牲了关系型数据库的复杂功能(如JOIN、事务),换来了在海量数据下的线性扩展和高性能随机访问能力。它是构建大型互联网公司后台数据服务的基石技术之一。
2025-08-27 09:03:39
373
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人