- 博客(48)
- 资源 (5)
- 收藏
- 关注
原创 Spark累加器LongAccumulator
1.Accumulator是由Driver端总体进行维护的,读取当前值也是在Driver端,各个Task在其所在的Executor上也维护了Accumulator变量,但只是局部性累加操作,运行完成后会到Driver端去合并累加结果。2、不改变Spark作业懒执行的特点,即没有action操作触发job的情况下累加器的值有可能是初始值。1、只会累加,合并即累加;
2024-01-24 16:30:54
860
原创 spakr 提交任务
-num-executors 24 用于设置Spark作业总共要用多少个Executor进程来执行。--executor-memory 2g :用于设置每个Executor进程的CPU core数量。--executor-cores 2 用于设置每个Executor进程的CPU core数量。--deploy-mode:部署模式(client/cluster)--driver-memory 2g Driver内存。--driver-cores 2 Driver核数。--master:集群地址。
2024-01-17 15:40:14
607
原创 Hive-high Avaliabl
2、hiveserver2不用直接将hdfs和metastore暴露给用户。如何进行搭建,参照之前hadoop的HA,使用zookeeper完成HA。 4、jdbc的连接方式,可以使用任何语言,方便与应用进行数据交互。 1、在应用端不需要部署hadoop和hive的客户端。 3、有HA机制,解决应用端的并发和负载问题。 hive的搭建方式有三种,分别是。
2023-12-22 17:18:37
808
原创 Hive文件存储与压缩
上图展示了一个Parquet文件的内容,一个文件中可以存储多个行组,文件的首位都是该文件的Magic Code,用于校验它是否是一个Parquet文件,Footer length记录了文件元数据的大小,通过该值和文件长度可以计算出元数据的偏移量,文件的元数据中包括每一个行组的元数据信息和该文件存储数据的Schema信息。查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快。
2023-12-22 17:14:23
730
原创 Hive优化
Hive的存储层依托于HDFS,Hive的计算层依托于MapReduce,一般Hive的执行效率主要取决于SQL语句的执行效率,因此,Hive的优化的核心思想是MapReduce的优化。
2023-12-22 17:12:44
499
原创 Hive权限管理
基于存储的授权 - 可以对Metastore中的元数据进行保护,但是没有提供更加细粒度的访问控制(例如:列级别、行级别)。基于SQL标准的Hive授权 - 完全兼容SQL的授权模型,推荐使用该模式。hive默认授权 - 设计目的仅仅只是为了防止用户产生误操作,而不是防止恶意用户访问未经授权的数据。
2023-12-22 17:10:07
1615
原创 Hive的视图和索引
Hive 中的视图和RDBMS中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条SELECT语句的结果集。视图是纯粹的逻辑对象,没有关联的存储(Hive 3.0.0引入的物化视图除外),当查询引用视图时,Hive可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中。
2023-12-22 17:04:49
953
原创 Hive动态分区和分桶
注意: 1、Hive分桶表是对列值取hash值得方式,将不同数据放到不同文件中存储 2、对于hive中每一个表、分区都可以进一步进行分桶 3、由列的hash值除以桶的个数来决定每条数据划分在哪个桶中。
2023-12-21 14:36:25
518
原创 Hive函数
自定义函数包括三种UDF、UDAF、UDTF UDF(User-Defined-Function) :一进一出 UDAF(User- Defined Aggregation Funcation) :聚集函数,多进一出。 UDTF(User-Defined Table-Generating Functions) :一进多出,如explore()5.1。
2023-12-20 15:47:51
662
原创 HiveServer2
1、HiveServer2基本介绍 HiveServer2是一个服务接口,能够允许远程的客户端去执行SQL请求且得到检索结果。HiveServer2的实现,依托于Thrift RPC,是HiveServer的提高版本,它被设计用来提供更好的支持对于open API例如JDBC和ODBC。 HiveServer是一个可选的服务,只允许一个远程的客户端去提交请求到hive中。(目前已被淘汰)2、Beeline HiveServer2提供了一种新的命令行接口,可以提交执行SQL语句。
2023-12-20 15:21:28
1046
原创 Hive Serde
1、hive主要用来存储结构化数据,如果结构化数据存储的格式嵌套比较复杂的时候,可以使用serde的方式,利用正则表达式匹配的方法来读取数据,例如,表字段如下:id,name,map<string,array<map<string,string>>> Hive Serde用来做序列化和反序列化,构建在数据存储和执行引擎之间,对两者实现解耦。不希望数据显示的时候包含[]或者"",此时可以考虑使用serde的方式。
2023-12-20 14:46:01
570
原创 hive DML
/* 从查询语句中获取数据插入某张表 语法: Standard syntax: INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement; INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val
2023-12-19 18:07:22
583
原创 HIVE基本操作
1、启动远程服务端:hive --service metastore启动(这里是阻塞式),然后在客户端操作。3、创建语法(建议拷贝到notepad++中,查看类型时比较方便有高亮)2、Hive DDL(数据库定义语言)
2023-12-18 17:48:22
723
原创 hadoop集群搭建之HA模式
1.在node01上创建hadoop安装路径:2.解压hadoop软件包3.配置hadoop环境便令4.使配置生效5.检测在任意目录输入hd按Tab建看是否能联想出hdfs命令,有侧安装配置成功6.从node01分发到其他节点(node02,node03,node04)cd /opt。
2023-12-11 16:18:15
931
原创 hadoop集群基础环境搭建
etc/selinux/config中将SELINUX=enforcing改成SELINUX=disabled即可。
2023-12-11 09:43:43
749
原创 redis高可用
启动 Sentinel 实例必须指定相应的配置文件, 系统会使用配置文件来保存 Sentinel 的当前状态, 并在 Sentinel 重启时通过载入配置文件来进行状态还原。如果启动 Sentinel 时没有指定相应的配置文件, 或者指定的配置文件不可写(not writable), 那么 Sentinel 会拒绝启动。Redis 源码中包含了一个名为 sentinel.conf 的文件, 这个文件是一个带有详细注释的 Sentinel 配置文件示例。两种方法都可以启动一个 Sentinel 实例。
2023-11-17 18:06:15
34
原创 redis复制(主从复制)
自 Redis 4.0 开始,可以配置 Redis 使删除旧数据集的操作在另一个不同的线程中进行,但是,加载新数据集的操作依然需要在主线程中进行并且会阻塞 slave。但是,这个设置必须小心处理,因为重新启动的 master 程序将从一个空数据集开始:如果一个 slave 试图与它同步,那么这个 slave 也会被清空。除了多个 slave 可以连接到同一个 master 之外, slave 之间也可以像层叠状的结构(cascading-like structure)连接到其他 slave。
2023-11-17 17:58:28
47
原创 Redis持久化
save操作是在主线程中保存快照的,由于redis是用一个主线程来处理所有 client的请求,这种方式会阻塞所有client请求。由于OS系统的写时复制机制(copy on write)父子进程会共享相同的物理内存,当父进程处理写请求时OS会为父进程要修改的数据创建副本,而不是写共享的数据。3. 当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件即 rename 成一个正式文件 dump.rdb(只有一个文件),然后子进程退出(fork一个进程入内在也被复制了,即内存会是原来的两倍)。
2023-11-16 17:59:46
332
原创 Redis中的过期可以通过两种方式
命令可以为一个键设置一个过期时间戳,该时间戳表示到达该时间点时该键将过期。时间戳应该是一个整数,单位是秒。当一个键的过期时间到达时,Redis会自动删除该键。如果你需要检查一个键是否已经过期,可以使用。命令可以为一个键设置过期时间,单位是秒。命令将返回-2,如果该键没有设置过期时间,命令将返回-1,否则将返回剩余的秒数。命令获取它的剩余时间。
2023-11-16 14:15:38
700
原创 Redis 有五种主要的数据类型
Sorted Set(有序集合):Redis 中的有序集合是一个有序的字符串集合,每个元素都有一个分数值,可以用于排序和范围查询。Hash(哈希表):Redis 中的哈希表类似于其他编程语言中的 Map 或 Dictionary,用于存储键值对。List(列表):Redis 中的列表是一个有序的字符串列表,可以在列表的两端插入或删除元素。Set(集合):Redis 中的集合是一个无序的字符串集合,可以用来存储不重复的字符串。ZADD zset score value:向有序集合中添加一个带分数的值。
2023-11-16 14:03:20
179
原创 Scala安装与配置
1、安装Scala需要Java运行时库,安装Scala需要首先安装JVM虚拟机,推荐安装JDK1.8。在http://www.scala-lang.org/ 下载Scala2.11.8程序安装包根据不同的操作系统选择不同的安装包,下载完成后,将安装包解压到安装目录。注意:安装时,安装路径中不能含有空格。将scala安装目录下的bin目录加入到PATH环境变量:SCALA...
2019-06-07 23:38:28
462
原创 sacal简介
Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。它也能运行于CLDC配置的Java ME中。目前还有另一.NET平台的实现,不过该版本更新有些滞后。Scala的编译模型(独立编译,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库(对于.NET实现则可调用.NE...
2019-06-07 23:14:19
2422
原创 导出csv文件乱码
private static void writeBcp( ) throws IOException { //Create bcp file if not exist File bcpFile = new File("test.csv"); //bcpFi...
2019-06-07 00:45:44
689
原创 XML解析
import java.io.InputStream;import java.util.List;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import junit.framework.TestCase;public class SAXPerson exten...
2019-06-07 00:44:55
135
oracle 配套资料 超详细的哦
2011-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人