自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式锁简单实现代码

以上代码实现了一个简单的基于数据库的分布式锁。在获取锁时,通过在数据库中插入一条记录来进行加锁操作;在释放锁时,通过删除相应的记录来进行解锁操作。分布式锁可以通过各种方式实现,例如使用数据库、缓存、第三方服务等。

2024-03-05 11:57:00 148

原创 hadoop分布式理论CAP和BASE简介

CAP定理是由计算机科学家Eric Brewer提出的,它指出在分布式系统设计中,无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三个属性。CAP定理指出在分布式系统设计中需要权衡一致性、可用性和分区容错性这三个属性,而BASE则是对传统ACID模型的一种补充,强调基本可用性、软状态和最终一致性。另一个与Hadoop分布式系统相关的概念是BASE,它是对传统的ACID(原子性、一致性、隔离性和持久性)模型的一种补充。

2024-03-05 11:55:10 320

原创 JVM如何为新创建的对象分配内存

需要注意的是,JVM的内存分配可以采用不同的方式,比如指针碰撞(Bump the Pointer)或空闲列表(Free List Allocation),具体的实现方式可能会有所不同。设置对象头部信息:JVM会在内存空间的开头设置一些对象头部信息,用于存储对象的元数据,比如对象的哈希码、Class指针、锁信息等。检查对象的大小:JVM首先会检查对象的大小,包括对象本身的大小以及对象的成员变量所占用的内存大小。返回对象的引用:分配和初始化完成后,JVM会返回一个指向对象的引用,可以使用该引用访问和操作对象。

2024-02-18 17:03:10 165

原创 在java java.util.Date 已知逝去时间求年月日 数学计算不用其他方法

然后,使用Date类的getYear()方法获取年份,getMonth()方法获取月份,getDate()方法获取日期。需要注意的是,getYear()方法返回的是相对于1900年的年份,getMonth()方法返回的是0-11的月份,getDate()方法返回的是1-31的日期。所以在计算年、月、日时需要做相应的调整。首先,使用java.util.Date类的构造函数将逝去的时间转换为Date对象。使用java.util.Date类的方法来计算年月日。这样就可以得到逝去时间的年月日。

2024-02-18 16:53:48 304

原创 hadoop的NameNode(HA)QJM与NFS区别

数据一致性:NameNode(HA)QJM保证了强一致性,即在主节点和备用节点之间的数据是完全一致的。它通过将NameNode的编辑日志(即命名空间修改的记录)写入到一个或多个JournalNode节点的共享存储中,来保证在主NameNode发生故障时能够快速地恢复。NameNode(HA)QJM通过在主节点和备用节点之间进行数据复制来保证高可用性,因此可能会对性能产生一定的影响。总的来说,QJM是Hadoop NameNode HA的一部分,提供高可用性和数据一致性,适用于大规模的分布式存储和计算环境。

2024-02-05 14:53:47 290

原创 hadoop的datanode详解

复制过程中,源Datanode将数据块拆分为数据流,并将其发送到目标Datanode,目标Datanode接收数据流并将其写入本地磁盘。b. dfs.datanode.du.reserved:指定Datanode保留的存储空间大小,单位可以是字节(B)、千字节(KB)、兆字节(MB)、吉字节(GB)或者以2为底的指数。总之,Hadoop的Datanode是负责存储和管理数据块的节点。a. dfs.datanode.data.dir:指定Datanode数据目录的位置,可以配置多个目录,以逗号分隔。

2024-02-05 14:40:21 673

原创 hadoop的nodemanage详解

NodeManager是Hadoop集群中每个节点上的一个守护进程,它与ResourceManager、ApplicationMaster和其他NodeManager之间进行通信,以协调和管理容器的运行。通过合理配置和调整NodeManager的参数,可以优化集群的性能和可靠性。Hadoop的NodeManager是Hadoop YARN中的一个关键组件,它负责在每个节点上管理和监控容器(container)的运行。以上是一些常用的NodeManager相关配置,你可以根据自己的需求进行调整和修改。

2024-02-05 14:38:20 567

原创 hadoop的namenode详解

该架构中,有一个Active NameNode和一个Standby NameNode,如果Active NameNode发生故障,Standby NameNode可以立即接管并成为新的Active NameNode,从而保证系统的连续运行。总的来说,Hadoop的NameNode是HDFS的核心组件,负责管理文件系统的元数据信息、处理命名空间操作、管理数据块的分布和复制、提供客户端交互接口、保证系统的备份和恢复,以及实现高可用性。元数据管理:NameNode负责管理HDFS中所有的文件和目录的元数据信息。

2024-02-04 17:06:21 548

原创 hadoop的secondarynamenode详解

dfs.secondary.http.address: 这个属性与dfs.namenode.secondary.http-address具有相同的作用,但是是在较早的Hadoop版本中使用的。dfs.namenode.checkpoint.period: 这个属性指定了SecondaryNameNode执行checkpoint的时间间隔,单位为秒。Hadoop的SecondaryNameNode是一个辅助性的节点,它的主要任务是帮助NameNode进行元数据的备份和检查点操作,以提高系统的可靠性和性能。

2024-02-04 17:04:20 544

原创 hivesql调优常用方法

HiveSQL的性能受多个因素的影响,例如数据大小、硬件配置、查询语句的复杂度等。1. 配置Hive的内存参数:通过修改Hive的内存参数,可以提高Hive的性能。可以通过设置Xmx、Xms参数调整JVM的最大和最小内存限制,通过设置hive.exec.parallel参数调整Hive的并行度。4. 使用压缩:使用压缩可以减少磁盘空间的使用,并提高性能。5. 避免使用SELECT *:避免使用SELECT *语句,可以减少不必要的数据读取和传输,提高查询性能。以上是HiveSQL的一些调优方法。

2023-10-24 18:38:50 205

原创 hive存储数据格式主要分类

列存储格式(Columnar):基于列存储的数据格式,不同于行存储,它把表中每一列的数据存储在一起形成一个文件,具有更高的压缩比和更好的查询性能。RC文件格式(RCFile):RC(Record Columnar)文件格式是一种基于行的列存储格式,它将行拆分为不同的列块,每个列块都是一个二进制数据。Avro格式(Avro):Avro是一种基于Schema的数据交换格式,使用JSON来序列化数据。以上是Hive支持的主要数据存储格式,不同格式的数据适用于不同的场景,需要根据实际需求选择合适的数据存储格式。

2023-10-24 18:35:53 98

原创 sqoop一次同步MySQL数据库所有表

要同步MySQL数据库中的所有表,可以使用Sqoop的import-all-tables命令。如果要在导入期间将多个Hive表的数据合并到一个表中,可以使用 --merge-key 参数。如果需要在导入期间进行转换,可以使用 --map-column-hive 参数。如果想指定导入到某个数据库中,可以使用 --hive-database 参数。mysql_host 和 port 是MySQL数据库的主机名和端口号。如果需要指定表的特定列,则可以使用 --columns 参数。

2023-10-24 16:51:39 178

原创 Java实现数组冒泡排序

冒泡排序是一种简单的排序算法,通过比较相邻元素大小,逐步交换元素的位置,最终将数组按照升序或降序排列。然后,在主方法中,我们声明了一个初始未排序的整数数组,并将其传递给。循环来比较和交换相邻元素的顺序,最终得到一个排序后的数组。最后,我们打印出排序后的数组。方法,该方法接受一个整数数组。在这个示例中,我们定义了一个。

2023-10-23 17:45:10 90

原创 Java实现递归函数

递归函数是指在函数内部调用自身的函数。这段代码实现了一个计算阶乘的递归函数。在这种情况下,函数最终返回1。等于0,则函数返回1;递归函数会一直递归调用,直到。函数时,如果输入的参数。

2023-10-23 17:43:12 44

原创 hive数仓分层dws和ads区别

DWS层: 数据仓库的DWS层主要用于数据存储、数据处理、数据管理和数据查询,是数据仓库的核心部分,具备高效的数据管理和存储能力。而ADS层面则主要是为了完成对业务数据的分析、挖掘和应用,为业务决策提供支持。ADS层: ADS层是数据仓库的应用服务层,主要用于数据分析、数据挖掘和业务应用。ADS层中的数据通常是被加工过的、有结构的数据,可以直接用于提供业务应用。总的来说,DWS和ADS是数仓分层架构中两个不同的层次,各自拥有不同的功能和特点,并且相互衔接,共同为数据分析提供支持。

2023-10-23 17:41:05 613

原创 数据治理之多数据源如何取数

数据集成平台:数据集成平台是一种数据整合解决方案,它可以从多个数据源中提取数据,然后进行数据转换和整合。数据仓库通常包括数据集成、数据清洗、数据转换和数据加载等过程,确保数据的准确性和一致性。数据整合:从不同的数据源中提取的数据可能存在数据冲突或不兼容的情况,需要进行数据整合,以确保数据的一致性和准确性。对于这些数据,我们需要进行数据清洗和转换,以确保数据的质量。综上所述,多数据源取数实现是数据治理的一个重要环节,需要进行数据提取、清洗、整合和存储等一系列步骤,以确保数据的质量和一致性。

2023-10-23 17:37:24 97

原创 hivesql查询每日累加数据

这将返回一个结果集,其中包含每个日期和该日期之前的所有数据的累加总和。这将返回一个结果集,其中包含最后一个日期的所有数据的累加总和。

2023-10-23 17:32:55 427

原创 hivesql查询A表存在B表不存在的数据

该语句先使用左外连接将A表和B表连接起来,以A表为基准,B表中不存在的数据将使用NULL填充。然后通过WHERE条件过滤出B表中不存在的数据,即B.col3 IS NULL。可以使用左外连接(LEFT JOIN)和WHERE条件过滤的方式实现A表存在B表不存在的数据查询。注意:这种方式可能会存在性能问题,特别是在A表和B表数据量较大时,建议使用其他更高效的方式。

2023-10-23 17:31:31 510

原创 hive导出表结构

Hive可以使用DESCRIBE语句来查看表结构,也可以使用SHOW CREATE TABLE语句来查看表的详细DDL语句。这将会将my_table表的结构信息导出到table_structure.txt文件中。这将会将my_table表的DDL语句导出到table_ddl.sql文件中。可以根据需要选择其中一种方式导出表结构。

2023-10-23 17:29:05 273

原创 hive导出csv格式数据

Hive可以通过使用INSERT OVERWRITE语句导出CSV格式的数据。这将把所有CSV格式的数据文件导出到本地文件夹。

2023-10-23 17:26:20 491

原创 hivesql的concat与concat_ws区别

一旦字符串参数被传给concat函数,它们就被视为不可分离的元素,这意味着如果其中一个参数是NULL,那么整个concat的结果将为NULL。而在concat_ws函数中,分隔符不会被插入NULL值,因此连接NULL值的字符串时,concat_ws函数会将NULL值视为一个空字符串,而不是NULL。concat函数只能通过逗号分隔连接的字符串拼接在一起,而concat_ws函数可以通过一个指定的分隔符连接字符串。

2023-10-18 13:17:15 275

原创 hivesql从指定位置截取到最后一位

这样就可以截取指定列从最后一个字符开始的所有字符了。函数来实现从指定位置截取到最后一位。如果不知道起始位置,可以使用。可以使用Hive SQL中的。

2023-10-18 11:18:10 1142

原创 Hive字符串截取函数substr详解

Hive中的substr函数可以用来截取字符串的一部分,并返回截取后的结果。该函数有三个参数:第一个参数是要截取的字符串,第二个参数是截取的起始位置(从1开始),第三个参数是截取的长度。注意,如果截取的长度超过了字符串的实际长度,Hive会返回整个字符串。举个例子,假设有一个字符串。

2023-10-18 11:13:29 1753

原创 linux命令grep详解

grep命令是一种用于文本搜索的强大工具,在Linux命令行中经常使用。它可以在文本文件中查找一个或多个字符串,并将匹配的行打印出来。上述命令将在匹配的行前面显示2行内容,并在匹配的行后面显示3行内容。grep命令是一种非常有用的工具,可以在文本文件中快速搜索和查找。

2023-10-16 16:56:08 30

原创 shell常用的字符串操作

{string/#substring/new}:如果字符串以 substring 开头,则用 new 替换 substring。${string/%substring/new}:如果字符串以 substring 结尾,则用 new 替换 substring。${string%%substring}:从字符串结尾删除最长匹配的 substring。${string%substring}:从字符串结尾删除最短匹配的 substring。${string:length}:获取字符串长度。

2023-10-16 16:54:15 26

原创 hivesql开窗函数row_number和rank和dense_rank使用区别

在这个例子中,ROW_NUMBER将为每个学生分配一个唯一的排名值,而RANK和DENSE_RANK将为相同的分数分配相同的排名值,不同之处在于DENSE_RANK不跳过下一个排名值。它们都用于为查询结果集中的行分配一个排名值。DENSE_RANK(): 如果有相同的值,则分配相同的排名值,不跳过下一个排名值。RANK(): 如果有相同的值,则分配相同的排名值,跳过下一个排名值。ROW_NUMBER(): 返回每个分区中的每一行的唯一排名值。

2023-10-16 15:41:37 78

原创 hivesql开窗函数row number() over (partition by )详解

具体来说,ROW_NUMBER() 是一种分析函数,它可以根据 ORDER BY 子句中指定的列对行进行排序,并为每个分区内的行分配唯一的连续编号。ROW_NUMBER() OVER (PARTITION BY ) 是一种窗口函数,用于在每个分区内对行进行编号。ROW_NUMBER() OVER (PARTITION BY ) 是一种非常方便的窗口函数,可以帮助我们对数据进行排名和分组,并在每个分区内为行分配唯一的编号。从结果可以看出,每个客户的订单都被分配了一个唯一的行号,行号按日期递增排序。

2023-10-16 15:37:47 3617

原创 Hive数仓dwd和dws的区别与联系

DWD是DW Detail的简称,是数据仓库中的明细层,主要负责数据的抽取、清洗、转换和加载等工作,目的是将源系统中的数据格式统一为数据仓库中的统一模式。它们的联系在于:DWD层和DWS层都是数据仓库中的重要层次,DWD层提供完整、准确的明细数据,DWS层依据业务需求,提供分析型的汇总信息。DWS是DW Summary的简称,是数据仓库中的汇总层,主要负责对DWD层中的数据进一步汇总和计算,形成多维数据分析模型,便于用户进行决策分析。其中DWD和DWS是DW的两个主要层次。

2023-10-16 14:27:25 379

原创 Hive数仓ods接入多数据源的命名规范

数据库名称:通常将不同数据源的数据存储在不同的数据库中,可以根据数据源的名称或简称来命名数据库,例如ods_xxx、ods_yyy等。文件命名规范:文件名一般采用小写字母,使用下划线“_”分隔单词,例如ods_mysql_user_info_20200101.csv。(1)对于同一数据源的不同表,可以在表名前加上相应的前缀,例如ods_xxx_table1、ods_xxx_table2等。(2)对于不同数据源的同一张表,可以在表名后加上数据源的标识,例如table1_xxx、table1_yyy等。

2023-10-16 14:23:17 96

原创 Hive数仓分层设计思路

4.标准化数据层:对集成数据进行标准化和规范化,使得数据能够被更多的应用程序和用户使用,例如:将日期格式统一、将数据值统一转换为中文。3.集成数据层:将不同数据源的数据整合到一个数据仓库中,包括清洗数据层、外部数据源、应用程序数据源等,生成集成后的数据文件。2.清洗数据层:对原始数据进行基本的清洗和预处理,如去除重复数据、填充缺失值、转换数据类型等,生成清洗后的数据文件。5.数据标签层:对数据进行标签化,即将数据按照业务属性、数据源、时间等维度进行分类和标记,方便数据查询和分析。

2023-10-16 14:13:12 94

原创 hivesql查询使用Hive关键字作为表字段的方法

在Hive中,关键字可以作为表字段名,但是需要使用反引号(`)将其括起来才能被识别为表字段名。注意,在使用反引号括起来的字段名时,需要确保使用的大小写与创建表时保持一致。如果创建表时使用了大小写不同的关键字,则需要相应地调整查询语句中的大小写。

2023-10-16 14:10:37 354

原创 shell命令iconv字符集编码GBK转换UTF-8

iconv [选项]…[-f 源编码] [-t 目标编码] [输入文件]…[-o 输出文件]…例3:将标准输入中的文本从GB2312编码转换为UTF-8编码并输出到标准输出。iconv命令是一个字符转换工具,用于在不同字符集编码之间进行转换。例1:将文件从GBK编码转换成UTF-8编码并输出到另一个文件中。例4:使用通配符转换多个文件的编码格式。例2:列出所有支持的编码格式。

2023-10-08 16:41:34 1131

原创 hive实现自增id的多种方式

这个UDF会为新的行分配唯一的ID。例如,你可能需要使用一个数据库级别的锁或者使用某种分布式锁机制来确保并发安全。请注意,这种方法可能会在大数据量或高并发的情况下导致性能问题。如果你需要自动分配ID,可以创建一个UDF(用户定义的函数)来为每个新的行分配一个唯一的ID。但是,这种方法可能会导致并发问题,因为多个并行查询可能同时尝试分配ID。注意:使用自增列时需要保证表的数据不会被删除或更新,否则会破坏自增列的递增顺序。在Hive中,可以使用Hive表的自增列实现自增ID。

2023-10-08 16:04:39 982

原创 Hive实现自定义多个分隔符

使用SET命令设置Hive参数hive.delimiters.replace为true,启用自定义分隔符模式。使用SET命令设置Hive参数hive.delimiters为自定义分隔符,多个分隔符之间使用“|”分隔。Hive可以通过设置Hive参数进行自定义多个分隔符的实现。

2023-10-08 15:54:22 231

原创 sqoop导入MySQL中文乱码问题

【代码】sqoop导入MySQL中文乱码问题。

2023-10-08 15:47:22 284

原创 使用java实现Sparkstreaming读取Hbase数据

然后,我们使用HBaseConfiguration创建了HBase连接,并创建了JavaHBaseContext对象。接下来,我们在HBase中创建了一个名为“mytable”的表,并使用HBaseUtils.createStream方法创建了一个HBase流。接下来,通过使用map操作将Result对象转换为Tuple2对象,并将其打印到控制台。最后,我们启动了流并等待终止。首先创建了一个SparkConf对象和JavaStreamingContext对象,并设置了批处理间隔为5秒。

2023-10-08 15:33:39 119 1

原创 使用java实现Sparkstreaming读取MySQL数据

首先需要通过JDBC连接MySQL数据库,确保已经导入了JDBC驱动程序。以上是使用Java实现Sparkstreaming读取MySQL数据的步骤,可以将此代码放入Java项目中。

2023-10-08 15:08:24 405

原创 使用java实现sparkStreaming连接kafka

使用JavaStreamingContext对象创建DStream对象,指定Kafka主题名称和上述Kafka连接参数。使用上述SparkConf对象创建JavaStreamingContext对象,并指定批处理间隔。在Java代码中创建一个SparkConf对象,指定应用程序的名称和Master URL。使用DStream对象进行数据流的解析和处理,例如进行数据过滤、转换、聚合等等。指定Kafka连接参数,例如Kafka服务的地址、端口、消费者组ID等。注意:版本号根据你的Spark版本进行修改。

2023-10-08 15:05:53 231

原创 java内存泄漏

上面的代码中,myList是一个静态的List对象,每调用一次addToMyList方法就会向myList中添加一个新元素。由于myList是静态的,它会在整个应用程序生命周期中一直存在,不会被释放,因此如果这个类被频繁调用,就会导致内存泄漏。Java内存泄漏是指在程序中存在未被释放的对象或资源,导致内存被无限制地占用,最终导致应用程序崩溃。上面的代码中,我们使用了一个BufferedReader来读取文件中的数据,但是我们没有在读取完成后关闭这个流,因此这种情况可能导致内存泄漏。

2023-10-08 14:49:01 27

原创 如何查看java内存占用

另外,也可以使用Java自带的可视化工具JVisualVM来监控Java进程的内存占用。在JVisualVM中选择监视Java进程,点击Memory标签页可以查看堆内存和非堆内存的使用情况。在浏览器中打开jhat生成的网页,查看Java进程的内存信息,包括堆内存、栈内存、Meta-Space等的使用情况。

2023-10-08 14:33:29 1561 1

机器学习必备的数学基础

高中数学基础知识点和微积分基础

2019-01-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除