大数据技术入门到21天通关
文章平均质量分 66
本专栏主要为博主总结大数据生态内容,包括Hadoop、Hive、Hbase、Impala、Sqoop、Spark、Flink、Kafka、ElasticSearch、Ambari等最具价值的大数据相关技术。2022年免费,2023年1月1日起将转为付费专栏,尚未订阅的读者请抓紧时间订阅本专栏!
forest_long
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【大数据入门核心技术】学习导读列表--建议收藏
本专栏主要为博主总结大数据生态内容,包括Hadoop、Hive、Hbase、Impala、Sqoop、Spark、Flink、Kafka、ElasticSearch、Ambari等最具价值的大数据相关技术。【大数据入门核心技术-基本概念】(一)大数据相关基本概念【大数据入门核心技术-基本概念】(二)大数据行业生态【大数据入门核心技术-基本概念】(三)大数据应用领域和行业【大数据入门核心技术-Zookeeper】原创 2022-12-03 00:43:28 · 2084 阅读 · 1 评论
-
【大数据问题处理】HiveSQL进行select count查询时数据量总为0,但limit查询有数据
HiveSQL查询count结果为0但limit有数据,原因是元数据未刷新。解决方法:非分区表执行"ANALYZE TABLE xxx COMPUTE STATISTICS";分区表先执行"MSCK REPAIR TABLE xxx"或"MSCK REPAIR TABLE xxx SYNC PARTITIONS",再执行"ANALYZE TABLE"命令。这些操作可以更新Hive元数据,解决count查询结果异常问题。(99字)原创 2025-06-28 23:55:59 · 208 阅读 · 0 评论 -
【大数据入门核心技术-Flink】(九)FlinkSQL实现从一个kafka topic读取数据写入到另一个kafka topic
本文介绍了Flink连接Kafka的完整操作流程:首先下载Kafka连接器依赖并配置Flink环境;接着创建测试用Kafka主题;然后启动Flink SQL客户端,定义Kafka源表(source_table_test_topic1)和目标表(sink_table_test_topic2);最后通过SQL语句实现两个Kafka主题间的数据传输,并提供了测试验证方法。文档还包含常见报错解决方案,如遇到ClassNotFoundException时需检查依赖配置。整个流程涵盖了从环境准备、配置到测试运行的完整实原创 2025-06-16 03:15:00 · 249 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(十一)Iceberg与Spark整合后的增删改查spark-sql语句
本文介绍了Iceberg数据表的基本操作,包括创建分区表、数据插入、更新、查询和删除等操作。主要内容包括:1)创建按年和月分区的sales表;2)插入测试数据并执行更新操作;3)演示MERGE操作实现数据合并,包括匹配记录的更新和非匹配记录的插入;4)提供了完整的SQL示例,展示了从表创建到数据操作的完整流程。这些操作展示了Iceberg表处理数据的基本方法,特别是分区表的管理和合并操作的使用。原创 2025-06-15 19:39:25 · 113 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog
【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog。【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog。【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog。原创 2025-06-15 19:39:57 · 78 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(十)Iceberg与Spark整合,并默认使用hive的catalog
本文介绍了Iceberg与Spark整合的配置与测试方法,包括环境准备、核心配置参数调整以及简单测试验证。首先需完成Iceberg的安装部署,然后在Spark中配置Iceberg相关参数,如catalog类型、仓库路径等。通过执行Spark SQL操作测试Iceberg表创建、数据写入和查询功能,验证整合是否成功。该过程为大数据环境下使用Iceberg构建数据湖提供了实践指导。原创 2025-06-14 22:37:42 · 374 阅读 · 0 评论 -
【大数据入门核心技术-Spark】(二十三)PySpark使用入门
本文介绍了Conda环境的安装与PySpark环境配置方法。主要内容包括:1)下载安装Miniconda并验证安装;2)常用conda命令(创建/激活环境、包管理);3)配置国内镜像源(清华、中科大、交大);4)创建PySpark环境并安装指定版本;5)提交Spark作业的运行命令示例。文档提供了从环境搭建到实际运行的完整流程,适用于在Linux系统上快速部署PySpark开发环境。原创 2025-06-14 17:01:43 · 576 阅读 · 0 评论 -
【大数据入门核心技术-Spark】(二十二)Spark实现从CSV文件读取清单实现批量创建表和数据迁移
本文介绍了一个基于Spark的批量数据表创建与并发迁移实现方案。项目使用Spark 3.1.3和Scala 2.12构建,通过CSVProcessorService类提供两种核心功能:1) 从CSV配置生成建表SQL(WHERE 1=2创建空表结构);2) 生成数据迁移SQL(INSERT OVERWRITE)。方案支持通过CSV文件配置源/目标库表信息,利用Guava实现并发处理,Maven构建时使用shade插件打包。该实现适用于需要批量处理多表迁移的场景,通过Spark分布式计算能力提升效率。原创 2025-06-11 00:45:00 · 348 阅读 · 0 评论 -
【大数据入门核心技术-Spark】(二十)Spark整合hive
spark安装后,默认会读取自带的元数据库。但大部分使用场景都是使用hive的元数据,直接读取hive的数据。本文通过整合后,可以实现spark直接读取hive的库和表。原创 2025-06-10 15:20:18 · 503 阅读 · 0 评论 -
【大数据入门核心技术-Spark】(二十一)failed to load class org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver
摘要:运行spark-sql时出现加载Hive类失败的错误,提示需要包含-Phive和-Phive-thriftserver模块。该问题是由于安装的Spark版本为不含Hadoop库的"headless"版本,缺少Spark hive和hive thriftserver包。解决方法是从Spark官网下载包含Hadoop的预编译版本,如spark-3.1.3-bin-hadoop3.2.tgz,替换当前安装版本即可解决兼容性问题。原创 2025-06-10 00:30:00 · 409 阅读 · 0 评论 -
【大数据问题处理】HiveSQL自动根据hdfs目录添加和删除分区
在distcp迁移完数据后,用两张表去做count和union all时,报某个分区目录不存在。但这个命令支持,需要做如下配置修改:1)hive-site.xml新增metastore.decode.filter.expression.tostring:true新增hive.metastore.expression.proxy: org.apache.hadoop.hive.metastore.MsckPartitionExpressionProxy然后重启 hivemetastore。原创 2025-04-28 21:23:10 · 90 阅读 · 0 评论 -
【大数据入门核心技术-Doris】(七)Docker安装Doris
用于控制进程可以拥有的内存映射区域的最大 数量。,特别是在使用大量内存映射文件的情况下。,如果希望永久修改参数的值,可以编辑。是一个与内核虚拟内存子系统相关的参数。首先需要在宿主机执行如下命令。题,可设置回默认值,原创 2024-05-20 00:44:13 · 1310 阅读 · 0 评论 -
【大数据入门核心技术-Hive】(二十一)Hive日志中如何查看完整的sql
在默认的日志级别情况下,是不能将DEBUG信息输出,这样一来出现的各种详细的错误信息都是不能数错的。在Hive中,当提交MapReduce任务时,默认情况下不会打印完整的SQL。但是,可以通过设置Hive配置属性来启用SQL打印。/tmp/文件夹的hive.log文件中,全路径就是/tmp/当前用户名/hive.log。从上面文件中可以看到完整的sql。2、hive启动时增加配置。原创 2024-05-20 00:02:46 · 650 阅读 · 0 评论 -
【大数据入门核心技术-Hive】(二十一)Hive中double和decimal的区别
Decimal 类型的数据在计算机内部使用基于整数的算法来进行表示和计算,因此能够保证更高的精确度。存储空间:Double 使用固定的 8 个字节来存储数据,而 Decimal 则使用可变长度字节数组,根据实际数值的大小和精度来分配存储空间。在上面的示例代码中,我们创建了一个包含 Double 和 Decimal 列的表,并插入了一些数据。运算效率:由于 Decimal 需要进行更复杂的运算和精度保证,因此在一些计算密集型的操作中,Decimal 的运算效率可能会比 Double 较低。原创 2024-05-19 13:00:00 · 816 阅读 · 0 评论 -
【大数据入门核心技术-Hive】(二十)Hive哪些操作会触发MR
2)HDFS 数据加载: 如果数据源是 HDFS,并且目标表的存储格式是文本(TextFile)或某些列式存储格式(如 ORC 或 Parquet),则数据加载操作通常也不会触发 MapReduce 作业。Hive 会直接移动或复制数据到目标表的 HDFS 目录,并更新元数据。1)本地数据加载且存储格式不支持直接复制: 如果数据源是本地文件系统(LOCAL 关键字),但目标表的存储格式不支持直接复制(如 SequenceFile 或 RCFile),则数据加载操作可能触发 MapReduce 作业。原创 2024-05-19 12:48:07 · 265 阅读 · 0 评论 -
【大数据入门核心技术-Hue】(三)Docker安装部署Hue
(docker容器内部没有vi与vim工具) 默认配置文件路径 /usr/share/hue/desktop/conf。配置hue接入mysql 需要进入docker容器内部,编辑修改hue的配置文件,再重启hue服务,这样才能生效。将容器内部的配置文件拷贝到宿主机,之后再修改,修改完成之后再拷贝入容器的同一个路径下覆盖文件。注册登录之后内部不能查看到任何信息,因为还没有配置数据库。例如: kill 24 51 67。kill 掉其中的 hue进程。找到mysql配置对应的位置。原创 2024-05-12 22:27:03 · 830 阅读 · 2 评论 -
【大数据入门核心技术-Hive】(二十)Hive之grouping sets用法及grouping_id计算方法
grouping sets 中的每一种粒度,都对应唯一的 grouping__id 值,其计算公式与 group by 的顺序、当前粒度的字段有关。3、grouping sets 中的所有字段,都必须出现在 group by 中,相当于 group by 后面的字段是最细粒度。4、如果 select 中的字段,没有包含在某个 grouping set 中,那么这个粒度下的这个字段值为 NULL。这就是上面 grouping sets 的结果中 grouping__id 值的由来。原创 2024-05-08 21:10:30 · 698 阅读 · 0 评论 -
【大数据入门核心技术-Hive】(十九)Hive的UDF、UDTF、UDAF
*** 自定义 UDF 函数,UDTF全称为User-defined Table Generating Function,该模式的需要继承 GenericUDF 类* 需求: 计算指定字符串的长度*//*** @param arguments 输入参数类型的鉴别器对象* @return 返回值类型的鉴别器对象*/@Override// 判断输入参数的个数= 1) {!!");// 判断输入参数的类型if (!!!");//函数本身返回值为 int,需要返回 int 类型的鉴别器对象/*** 函数的逻辑处理。原创 2023-12-04 20:44:57 · 654 阅读 · 0 评论 -
【大数据入门核心技术-Hadoop】(十五)Hadoop底层数据文件存储
HDFS有三种shell命令方式hadoop fs:适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统hadoop:只能适用于HDFS文件系统hdfs dfs:跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统。原创 2023-12-03 17:59:36 · 442 阅读 · 0 评论 -
【大数据入门核心技术-Doris】(六)数据导入
用于指定导入文件中的列分隔符,默认为\t。如果是不可见字符,则需要加\x作为前缀,使用十六进制来表示分隔符。如hive文件的分隔符\x01,需要指定为-H "column_separator:\x01"。-H “label:load_local_file_test” \ # 本次任务的唯一标识。http://主机名:端口号/api/库名/表名/_stream_load。用于指定导入文件中的换行符,默认为\n。可以使用多个字符的组合作为列分隔符。可以使用做多个字符的组合作为换行符。原创 2023-11-28 20:06:11 · 760 阅读 · 0 评论 -
【大数据入门核心技术-Doris】(五)分区和分桶
Doris 支持两层的数据划分。第一层是 Partition,支持 Range 和 List 的划分方式。第二层是 Bucket(Tablet),仅支持 Hash 的划分方式。也可以仅使用一层分区。使用一层分区时,只支持 Bucket 划分。原创 2023-11-27 20:23:00 · 835 阅读 · 0 评论 -
【大数据入门核心技术-Doris】(四)数据存储模型之Unique数据存储模型
因此,我们引入了 Unique 数据模型,该模型可以根据相同的Primary Key 来保留后插入的数据,确保数据的唯一,只要UNIQUE KEY 相同时,新记录覆盖旧记录。Unique数据模型有两种实现方式:读时合并(merge on read)和写时合并(merge on write),下面将对两种实现方式分别举例进行说明。可以看到user_id为4、username为ml的这条数据被最后插入的user_id为4、username为ml的数据替换。原创 2023-11-27 20:10:13 · 1278 阅读 · 0 评论 -
【大数据入门核心技术-Doris】(三)Doris基本Shell和数据模型
参考。在某些多维分析场景下,用户更关注的是如何保证 Key 的唯一性,即如何获得 Primary Key 唯一性约束。因此,我们引入了 Unique 数据模型。在1.2版本之前,该模型本质上是聚合模型的一个特例,也是一种简化的表结构表示方式。由于聚合模型的实现方式是读时合并(merge on read),因此在一些聚合查询上性能不佳(参考后续章节聚合模型的局限性的描述),在1.2版本我们引入了Unique模型新的实现方式,写时合并(merge on write),通过在写入时做一些额外的工作,实现了最优的查原创 2023-11-27 19:59:01 · 1354 阅读 · 0 评论 -
【大数据入门核心技术-Hive】(十八)Hive的ACID事务支持
事务的四个属性: 1.原子性(Atomic)(Atomicity) 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的。如果系统只执行这些操作的一个子集,则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。2.一致性(Consistent)(Consistency) 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。原创 2023-10-24 20:06:32 · 417 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】( 九)Iceberg与与 Flink DataStream 集成
1)上传hive connector到flink的lib中2)启动hive metastore服务3)创建hive catalog重启flink集群,重新进入sql-client>uri: Hive metastore的thrift uri。(必选)>clients:Hive metastore客户端池大小,默认为2。(可选)>warehouse: 数仓目录。原创 2023-10-18 20:38:49 · 183 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(八)Iceberg与Flink基本Shell操作
1)上传hive connector到flink的lib中2)启动hive metastore服务3)创建hive catalog重启flink集群,重新进入sql-client>uri: Hive metastore的thrift uri。(必选)>clients:Hive metastore客户端池大小,默认为2。(可选)>warehouse: 数仓目录。原创 2023-10-18 16:59:27 · 378 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(七)Iceberg与Flink整合
表示:会在本地启动3个TaskManager的 local集群。查看webui:http://hadoop101:8081。1)修改flink-conf.yaml配置。(3)启动Flink的sql-client。二、启动sql-client。(1)修改workers。2)cluster模式。(2)启动Flink。原创 2023-10-18 16:31:40 · 460 阅读 · 0 评论 -
【大数据入门核心技术-Hudi】(一)Hudi介绍
Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。Hudi的高级性能优化,使分析工作负载更快的任何流行的查询引擎,包括Apache Spark、Flink、Presto、Trino、Hive等。2021 年:支持 Uber 500PB 数据湖,SQL DML、Flink 集成、索引、元服务器、缓存。2020 年:毕业成为 Apache 顶级项目,社区、下载量、采用率增长超过 10 倍。原创 2023-10-18 15:26:15 · 450 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(六)Iceberg与Spark DataFrame操作
如果要自动清除元数据文件,在表属性中设置write.metadata.delete-after-commit.enabled=true。这将保留一些元数据文件(直到write.metadata.previous-versions-max),并在每个新创建的元数据文件之后删除旧的元数据文件。Spark中支持两种Catalog的设置:hive和hadoop,Hive Catalog就是Iceberg表存储使用Hive默认的数据路径,Hadoop Catalog需要指定Iceberg格式表存储路径。原创 2023-10-17 20:49:32 · 404 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(五)Iceberg与Spark基本Shell操作
这将保留一些元数据文件(直到write.metadata.previous-versions-max),并在每个新创建的元数据文件之后删除旧的元数据文件。Spark中支持两种Catalog的设置:hive和hadoop,Hive Catalog就是Iceberg表存储使用Hive默认的数据路径,Hadoop Catalog需要指定Iceberg格式表存储路径。例如,如果按天划分分区,而改为按小时划分分区,那么覆盖将覆盖每小时划分的分区,而不再覆盖按天划分的分区。-- 在数组中的结构中添加一个字段。原创 2023-10-17 18:03:12 · 543 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(四)Iceberg与Spark整合
如果要自动清除元数据文件,在表属性中设置write.metadata.delete-after-commit.enabled=true。这将保留一些元数据文件(直到write.metadata.previous-versions-max),并在每个新创建的元数据文件之后删除旧的元数据文件。Spark中支持两种Catalog的设置:hive和hadoop,Hive Catalog就是Iceberg表存储使用Hive默认的数据路径,Hadoop Catalog需要指定Iceberg格式表存储路径。原创 2023-10-17 17:58:04 · 967 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(三)Iceberg与Hive基本Shell操作
这种情况下不能使用Iceberg的分区转换,例如:days(timestamp),如果想要使用Iceberg格式表的分区转换标识分区,需要使用Spark或者Flink引擎创建表。只支持HiveCatalog表修改表属性,Iceberg表属性和Hive表属性存储在HMS中是同步的。在HIVE 3.x中,INSERT OVERWRITE虽然能执行,但其实是追加。不会在HMS中创建分区,而是将分区数据转换为Iceberg标识分区。支持标准单表INSERT INTO操作。原创 2023-10-16 21:03:50 · 378 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(二)Iceberg与Hive整合
重启hadoop 、yarn 、hiveserver2。2、修改hive-site.xml。Iceberg提供一个开放通用的表格式(Table Format)实现方案,不和特定的数据存储、计算引擎绑定。目前大数据领域的常见数据存储(HDFS、S3...),计算引擎(Flink、Spark...)都可以接入Iceberg。 在生产环境中,可选择不同的组件搭使用。甚至可以不通过计算引擎,直接读取存在文件系统上的数据.Iceberg提供一个开放通用的表格式(Table Format)实现方案,不和特原创 2023-10-16 20:20:57 · 675 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(一)Iceberg介绍
每行中存储了Manifest file的路径、其存储的数据文件(data files)的分区范围,增加了几个数文件、删除了几个数据文件等信息,这些信息可以用来在查询时提供过滤,加快速度。数据文件是Apache Iceberg表真实存储的文件,一般是在表的数据存储目录的data目录下,如果我们的文件格式选择的是parquet,那么文件是以 ".parquet" 结尾,例如:xxxx.parquet 就是一个数据文件。不绑定任何底层存储,支持Parquet、ORC、Avro格式兼容行存储和列存储。原创 2023-10-16 19:46:20 · 713 阅读 · 0 评论 -
【大数据入门核心技术-Spark】(二十)Spark SQL数据抽象Spark SQL 与 Presto SQL 对比
在一个 Presto 查询中,用户可以组合来自多个数据源的数据并运行查询。Spark SQL 带有一个内置功能,可以使用 JDBC 连接其他数据库,即“JDBC 到其他数据库”,它有助于联邦功能。它是一个开源分布式 SQL 查询引擎,旨在针对各种规模的数据集运行交互式分析查询。Spark SQL 带有一个内置功能,可以使用 JDBC 连接其他数据库,即“JDBC 到其他数据库”,它有助于联邦功能。原创 2023-10-13 15:29:43 · 651 阅读 · 0 评论 -
【大数据入门核心技术-Hive】(十七)常用hive shell命令汇总
2、2、set -v 打印所有hadoop和hive配置变量。重置配置到默认hive-site.xml配置。执行linux shell命令。执行hdfs dfs 命令。二、常用实用hive语句。a、先插入初始化测试数据。a、先插入初始化测试数据。set -v 打印所有hadoop和hive配置变量。重置配置到默认hive-site.xml配置。执行linux shell命令。执行hdfs dfs 命令。二、常用实用hive语句。a、先插入初始化测试数据。a、先插入初始化测试数据。原创 2023-10-12 15:48:27 · 446 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(二)Iceberg与Hive集成
2.3.83.1.2更多功能需要Hive 4.x(目前alpha版本)才能支持。原创 2023-10-09 17:31:34 · 478 阅读 · 0 评论 -
【大数据入门核心技术-Iceberg】(一)Iceberg介绍
manifest list是一个元数据文件,它列出构建表快照(Snapshot)的清单(Manifest file)。每行都是每个数据文件的详细描述,包括数据文件的状态、文件路径、分区信息、列级别的统计信息(比如每列的最大最小值、空值等)、文件的大小以及文件里面数据行数等信息。数据文件是Apache Iceberg表真实存储的文件,一般是在表的数据存储目录的data目录下,如果我们的文件格式选择的是parquet,那么文件是以 ".parquet" 结尾,例如:xxxx.parquet 就是一个数据文件。原创 2023-10-09 17:15:41 · 835 阅读 · 0 评论 -
【大数据入门核心技术-Clickhouse】(二)Clickhouse安装部署
ClickHouse可以在任何具有x86_64,AArch64或PowerPC64LE CPU架构的Linux,FreeBSD或Mac OS X上运行。推荐使用CentOS、RedHat和所有其他基于rpm的Linux发行版的官方预编译。二、RPM包方式部署。原创 2023-10-08 21:19:30 · 456 阅读 · 0 评论 -
【大数据入门核心技术-Clickhouse】(一)Clickhouse介绍
ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的用于在线分析处理查询MPP架构的列式存储数据库(DBMS:Database Management System),能够使用 SQL 查询实时生成分析数据报告。ClickHouse的全称是Click Stream,Data WareHouse。clickhouse可以做用户行为分析,流批一体线性扩展和可靠性保障能够原生支持 shard + replication。原创 2023-10-08 21:16:40 · 225 阅读 · 0 评论
分享