persist

(转载)JPA的CascadeType和FetchType

时间秒杀一切 提交于 2020-05-08 18:23:14
链接: https://www.jianshu.com/p/b8595aee06ac CascadeType 概述 cascade表示级联操作,在hibernate配置注解 @OneToOne ,@OneToMany, @ManyToMany ,@ManyToOne中的属性 级联在编写触发器时经常用到,触发器的作用是当主控表信息改变时,用来保证其关联表中数据同步更新。若对触发器来修改或删除关联表相记录,必须要删除对应的关联表信息,否则,会存有脏数据。所以,适当的做法是,删除主表的同时,关联表的信息也要同时删除,在hibernate中,只需设置cascade属性值即可 参考 设置CascadeType,表示给当前设置的实体操作另一实体的权限,如: public class Student { @ManyToMany ( cascade = CascadeType . PERSIST , fetch = FetchType . LAZY ) private Set < Course > courses = new HashSet < > ( ) ; //其他代码略。 } 上述代码中,Student为当前实体,Course即为另一实体,允许Student实体对于Course实体进行PERSIST操作,即保存Student实体时,与之关联的Course实体也会保存,而没有这个权限

Spark(六)Spark之开发调优以及资源调优

帅比萌擦擦* 提交于 2020-05-07 16:35:29
Spark调优主要分为开发调优、资源调优、数据倾斜调优、shuffle调优几个部分。开发调优和资源调优是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础;数据倾斜调优,主要讲解了一套完整的用来解决Spark作业数据倾斜的解决方案;shuffle调优,面向的是对Spark的原理有较深层次掌握和研究的同学,主要讲解了如何对Spark作业的shuffle运行过程以及细节进行调优。 本文作为Spark性能优化指南的基础篇,主要讲解开发调优以及资源调优。 一 开发调优 调优概述 Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则。开发调优,就是要让大家了解以下一些Spark基本开发原则,包括:RDD lineage设计、算子的合理使用、特殊操作的优化等。在开发过程中,时时刻刻都应该注意以上原则,并将这些原则根据具体的业务以及实际的应用场景,灵活地运用到自己的Spark作业中。 1 避免创建重复的RDD 通常来说,我们在开发一个Spark作业时,首先是基于某个数据源(比如Hive表或HDFS文件)创建一个初始的RDD;接着对这个RDD执行某个算子操作,然后得到下一个RDD;以此类推,循环往复,直到计算出最终我们需要的结果。在这个过程中,多个RDD会通过不同的算子操作(比如map、reduce等)串起来,这个“RDD串”

Three patterns for using libevent

戏子无情 提交于 2020-05-05 07:41:10
pattern 1 client #include<sys/types.h> #include <sys/socket.h> #include <netinet/ in .h> #include <arpa/inet.h> #include <errno.h> #include <unistd.h> #include <stdio.h> #include < string .h> #include <stdlib.h> #include < event .h> #include <event2/util.h> int tcp_connect_server( const char * server_ip, int port); void cmd_msg_cb( int fd, short events, void * arg); void socket_read_cb( int fd, short events, void * arg); int main( int argc, char ** argv) { if ( argc < 3 ) { printf( " please input 2 parameter\n " ); return - 1 ; } // 两个参数依次是服务器端的IP地址、端口号 int sockfd = tcp_connect_server(argv[ 1

什么是Spark RDD以及我们为什么需要它?

蹲街弑〆低调 提交于 2020-05-03 20:34:34
随着时间的推移,大数据分析已达到一个新的程度,反过来又改变了其运作模式和期望。 今天的大数据分析不仅处理大量数据,而且还具有快速周转时间的既定目标。 虽然Hadoop是大数据分析背后无与伦比的技术,但它在快速处理方面存在一些不足。 但是,随着Spark的出现,数据处理速度便有了更大的期望。 当我们谈到Spark时,我们想到的第一个术语是弹性分布式数据集(RDD)或Spark RDD,它使数据处理更快。此外,这也是Spark的关键特性,它支持在计算期间对数据集进行逻辑分区。 在此文中,我们将讨论Spark RDD的技术方面,进一步了解Spark RDD的底层技术细节。除此之外,还将概述RDD在Spark中的使用。 Spark RDD及其特性 RDD定义为 Resilient Distributed Dataset (弹性分布式数据集),其中每个术语都表示其特性。 Resilient: 通过使用RDD谱系图(DAG)实现容错。因此,当节点发生故障时,可以进行重新计算。 Distributed: Spark RDD的数据集驻留在多个节点中。 Dataset: 您将使用的数据记录。 在Hadoop设计中,RDD是一个挑战。然而,使用Spark RDD解决方案似乎非常高效,这取决于它的惰性计算。Spark中的RDDs按需工作。因此,它节省了大量的数据处理时间和整个过程的效率。 Hadoop

Spark 性能调优提高任务效率

丶灬走出姿态 提交于 2020-05-02 11:04:32
资源调优 ① 搭建Spark集群的时候要给Spark集群足够的资源(core,memory) 在spark安装包的conf下spark-env.sh SPARK_WORKER_CORES --worker节点的可用核数 SPARK_WORKER_MEMORY SPARK_WORKER_INSTANCE 在提交Application的时候给Application分配更多的资源。 提交命令选项:(在提交Application的时候使用选项) --executor-cores --executor-memory --total-executor-cores 配置信息:(在Application的代码中设置,在 Spark-default.conf 中设置) spark.executor.cores spark.executor.memory spark.max.cores 并行度调优 原则:一个core一般分配2~3个task,每一个task一般处理1G数据(task的复杂度类似wc) ① 提高并行度的方式: 1) .如果读取的数据在HDFS上,降低block块的大小 2) .sc.textFile(path,numPartitions) 3) sc.parallelize(list,numPartitions) 一般用于测试 4) coalesce

【java框架】JPA(2) -- JPA基础

纵然是瞬间 提交于 2020-05-02 09:01:09
1. JPA核心API对象 1.1.Persistence持久化对象 Persisitence主要用于创建EntityMangerFactory,它可以根据传入的持久化单元名称来创建对应的EntityMangerFactory。 // 对应配置文件里面的persistence-unit name="cn.yif.jpa02" // 通过持久化类创建一个实体类管理工厂 EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("cn.yif.jpa02"); 1.2.EntityMangerFactory实体管理工厂 EntityMangerFactory是一个线程安全的对象,在一个项目中只需要一个EntityManger对象,对应一个数据库资源,EntityMangerFactory对象是一个重量级对象,创建与销毁是比较耗费资源的,其中包含了数据库的配置信息,所有实体及关系,预定义JPQL语句、二级缓存。 1.3.EntityManger实体管理对象 EntityManger提供和持久化相关的操作:包括增、删、改、查等,是线程不安全的对象,因此在项目中应该每次只能让一个线程所使用,避免多个线程共享使用。EntityManger是轻量级的,创建与销毁不需要消耗太多的资源

SpringBoot进阶教程(六十一)intellij idea project下建多个module搭建架构(下)

ぃ、小莉子 提交于 2020-05-01 02:50:52
在上一篇文章《 SpringBoot进阶教程(六十)intellij idea project下建多个module(上) 》中,我们已经介绍了在intellij idea中创建project之后再分化多个module,今天再大致介绍介绍各个module之间详细工作的细分。 如果是不考虑细分多个module的话,可以看看这篇文章《 SpringBoot入门教程(一)详解intellij idea搭建SpringBoot 》。 v 设计数据库 CREATE TABLE `useraccount` ( `id` int ( 10 ) unsigned NOT NULL AUTO_INCREMENT, `username` varchar ( 255 ) NOT NULL , `age` int ( 10 ) NOT NULL , `phone` bigint NOT NULL , `email` varchar ( 255 ) NOT NULL , `account` varchar ( 100 ) NOT NULL UNIQUE , `pwd` varchar ( 255 ) NOT NULL , PRIMARY KEY (`id`) )ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8; insert into

桥接和路由模式编译安装open***虚拟专用网络

蓝咒 提交于 2020-04-30 14:57:37
openv_n2.1编译安装 一、服务端安装 1.安装openv_nserver 安装其他版本的v_n2.1版本 2.安装环境: yum -y install pam-devel openssl-devel lzo-devel automake gcc gcc-c++ patch yum install -y pkcs11-helper pkcs11-helper-devel 10.168.10.0/24为 的网段地址 192.168.8.0/24为内网地址段 10.168.10.4 为 的内网地址 下载地址: wget https://static.saintic.com/download/thirdApp/Openv_n/openv_n-2.1_rc21.tar.gz wget https://static.saintic.com/download/thirdApp/Openv_n/openv_n-2.1_rc21_eurephia.patch 百度网盘屏蔽了v_n的程序了 3.编译安装: /usr/local/openv_n tar xvf openv_n-2.1_rc21.tar.gz cd openv_n-2.1_rc21 patch -p1 < ../openv_n-2.1_rc21_eurephia.patch ./configure && make && make

Spark 缓存机制 + 共享变量

 ̄綄美尐妖づ 提交于 2020-04-28 07:26:19
一、Spark中的缓存机制:   避免spark每次都重算RDD以及它的所有依赖,cache()、persist()、 checkpoint()。 1、cache():会被重复使用,但是不能太大的RDD,将其cache()到内存当中,catch()属于 memory only 。cache 是每计算出一个要 cache 的 partition 就直接将其 cache 到内存中。缓存完之后,可以在任务监控界面storage里面看到缓存的数据。 spark cache (几种缓存方法): https://blog.csdn.net/zhuiqiuuuu/article/details/79290221 2、persist():可以设置缓存级别,如只在内存,只在磁盘,内存磁盘都用。 MEMORY_ONLY MEMORY_AND_DISK MEMORY_ONLY_SER MEMORY_AND_DISK_SER DISK_ONLY MEMORY_ONLY_2, MEMORY_AND_DISK_2, 等等 持久化级别详解: http://bcxw.net/article/425.html 3、checkpoint():computing chain 计算链过长或依赖其他 RDD 很多的 RDD,就需要进行checkpoint,将其放入到磁盘当中。   checkpoint 需要等到job完成了

Spark学习之键值对操作总结

安稳与你 提交于 2020-04-27 18:59:23
  键值对 RDD 是 Spark 中许多操作所需要的常见数据类型。键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口(比如统计每个产品的评论,将数据中键相同的分为一组,将两个不同的 RDD 进行分组合并等)。我们也会讨论用来让用户控制键值对 RDD 在各节点上分布情况的高级特性:分区。有时,使用可控的分区方式把常被一起访问的数据放到同一个节点上,可以大大减少应用的通信开销。这会带来明显的性能提升。分布式数据集选择正确的分区方式和本地数据集选择合适的数据结构很相似——在这两种情况下,数据的分布都会极其明显地影响程序的性能表现。 一、动机   Spark 为包含键值对类型的 RDD 提供了一些专有的操作。这些 RDD 被称为 pair RDD。PairRDD 是很多程序的构成要素,因为它们提供了并行操作各个键或跨节点重新进行数据分组的操作接口。例如,pair RDD 提供 reduceByKey() 方法,可以分别归约每个键对应的数据,还有 join() 方法,可以把两个 RDD 中键相同的元素组合到一起,合并为一个 RDD。我们通常从一个 RDD 中提取某些字段(例如代表事件时间、用户 ID 或者其他标识符的字段),并使用这些字段作为 pair RDD 操作中的键。 二