自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何参与开源项目协作提交pr

1、首先在主仓库fork到自己的仓库2、clone自己fork的项目到本地3、使用git remote -v查看本地仓库和远程哪些仓库关联4、如果没有和远程主仓库关联,使用git remote add upstream 原作者项目url5、根据主仓库的规则去提issue或者认领issue6、在本地仓库建立相关issue分支7、在issue分支开发一段时间后,测试通过,需要去提pr,这时候需要首先将本地修改暂存,使用git stash8、本地切换回master,需要保证本地仓库和远程主仓库mas

2022-05-13 22:38:02 504

原创 hive相关参数使用---持续更新

hive.fetch.task.conversion参数可以在hive,jdbc连接中添加该参数。hive查询对应的底层可以是MR任务,也可以不是即直接读取存储在目录下的文件。决定这个行为的参数是 hive.fetch.task.conversion。当设置为none时表示所有任务都是生成MR任务当设置成minimal时,select *,分区列上的筛选(where 子句), limit才不会生成MR任务,其他都生成MR任务当设置成more时,不限定列,简单的查找select filter lim

2021-10-27 16:15:26 1068

原创 spark sql并行读取实践

spark sql 并行查询第一种使用指定分区列的方式http://spark.apache.org/docs/latest/sql-programming-guide.html#jdbc-to-other-databasespartitionColumn must be a numeric, date, or timestamp column from the table in question.partitionColumn, lowerBound, upperBound These optio

2021-10-27 15:23:41 1418

原创 portainer的使用

1、背景portainer是一个可视化docker操作工具,可以不用写docker命令实现容器的生命周期进行管理,方便的实现容器的创建、运行、停止、暂停、恢复、删除、复制等。但是作为第一次使用该工具的人,还是比较难理解各个功能对应到docker命令的效果是怎么样的。本文将记录一些使用过程中对portainer的好的实践。2、简单介绍下portainer的工作原理portainer就是一个web程序,我们首先部署在自己的服务器上,运行成功后,我们通过浏览器访问这个应用,首先将我们的docker集群添加到

2021-10-27 14:22:56 31931

原创 hive查询时取消对应yarn任务

hive查询时取消对应yarn任务主要有两种方式一种是通过hive jdbc的hivestatement的getQueryLog方法获取yarn任务日志,解析日志内容,获取到application id,然后通过ssh的方式执行yarn application --kill 命令。一种是通过设置hive查询时的任务名,如在使用mr引擎时,执行set mapred.task.name=jobname, 然后通过yarn rest api查询指定的任务名得到application id, 然后通过ss

2021-09-24 11:22:03 785

原创 spark streaming和kafka相关应用

kafka优势kafka相比于其他消息系统能够实现有序的并行化的读取,其他的消息系统如果需要实现有序,是通过独占的形式,那样就不能并行化,每次只能有一个消费者读取数据。kafka通过topic和partition的方式实现有序的并行化,每个消费者可以独占一个partition,同时多个消费者读取同一个topic的数据,这样就实现了并行化,但是一个消费群组的消费者不能比一个topic的分区数多,这样如果继续保持有序,会导致资源竞争,降低读取并行效率。概念kafka 集群包含一个或者多个服务器,

2021-09-17 17:33:27 169

原创 java 应用状态监控

java 应用状态监控1.jps查看当前运行的java应用线程的pid2.jmap -heap pid查看pid运行的堆栈各个年代区域的内存占用3.jstat -gcutil pid查看当前进程gc的次数和gc时间4.ps -mp pid -o THREAD,tid,time查看cpu占用高的线程5.top -Hp pid查看最耗时的线程6.printf “%x” tid转换线程id为16进制表示7.jstack pid |grep tid -A 30打印问题线程的堆栈信息 -A

2021-09-17 17:28:13 1027

原创 java反编译工具介绍

java开发中,使用到反编译工具的地方不少,我们为了检查正在运行的代码是不是最新的,需要把jar包拉下来,反编译下。目前我已经使用过两款反编译工具:jd-guiLuyten这两款工具都是开源的,在github上可以找到,jd-GUI的地址:https://github.com/java-decompiler/jd-gui luyten的地址:https://github.com/deathmarine/Luyten两款反编译器都提供了windows的exe文件,但是我却在使用时遇到了问题,所以最后

2021-09-17 17:26:17 196

原创 kafka 写入数据时分区的选择规则

写入kafka的数据根据key决定数据写到哪个分区,下面是实现代码:if (record.partition() != null) { // they have given us a partition, use it if (record.partition() < 0 || record.partition() >= numPartitions) throw new IllegalArgumentException("Invalid partition gi

2021-09-17 17:22:38 1526

原创 谈谈ECC和RSA

RSARSA加密算法是现在广泛使用的现代加密的第一代加密算法,它是基于大素数分解难的数学问题来保证加密算法的安全性。设计一个加密算法需要满足一个条件,就是能够找到一个满足trapdoor的函数,也就是在计算上保证在一个方向是计算容易而在另一个方向上计算困难的特性,RSA刚好满足这一特性。随着硬件的发展,为了继续保证RSA的安全性,RSA现在的密钥长度要求越来越大了,密钥长度的变大虽然能够保证安全性,但是对于之前容易的乘法运算因为数据的变大而变的计算不容易和需要消耗更多的能量,而现在发展的潮流是移动端,移动

2021-09-17 17:16:24 3211

原创 http/2的发展和使用

http/2的前世今生背景2012年时谷歌推出了spdy/2协议,这个协议就是http/2发展的前身。2015年9月nginx开始正式推出了http/2替换spdy(nginx 1.9.5). http/2是从http/1.x开始最大版本的更新,国内貌似还没有将http2作为主流,依然使用这http/1.1。这个背后肯定是有着底层原因。对比http1.1,它一样也有优势和劣势。介绍http/2的新功能有哪些?1.多路复用2.头部压缩3.原生二进制4.优先级传输机制多路复用将同一个hos

2021-09-17 17:12:41 408

原创 springboot rabbitmq的使用

1 客户端api的使用1.1 依赖引入<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>1.2 在配置类中初始化queue exchange binding@Bean(name = "mac")public Queue queue() {

2021-09-17 17:05:28 87

原创 几种拦截器,Filter,HandlerInterceptor,Aop

Filter这个是Servlet的过滤器,基于回调函数实现,实现接口Filter就可以,可以使用@Compoent将实现的Filter托管给spring的ioc容器,也可以在@Configuration注解实现的配置类中注册,可以使用如下方式进行代码注册:FilterRegistrationBean registrationBean = new FilterRegistratonBean();XXFilter xxFilter = new XXFilter();registrationBean.se

2021-09-17 16:54:53 631

原创 hive 的架构

从上图中可以看到hive的架构组成,一般的DBMS主要分为存储和查询,而hive是做了查询,存储依赖于hdfs,hive的存储可以细分为meta data和real data,meta data存储表结构信息,存放在mysql中,real data表示真实的数据,存放在hdfs中,可以在hive的warehouse目录看到具体的数据库和表名。hive有自己查询语言hive QL,它是一种sql-like语言,hive自己会将hive查询解析成任务给执行引擎去做计算,具体支持的执行引擎包含mapReduce.

2021-09-17 16:32:54 193

原创 gaussdb 优化建议

建表存储选择表的存储类型及场景存储类型适用场景行存1. 点查询(返回记录少,基于索引的简单查询)。 2. 增、删、改操作较多的场景。列存1. 统计分析类查询 (关联、分组操作较多的场景)。2. 即席查询(查询条件不确定,行存表扫描难以使用索引)数据分布方式选择数据存储分布主要是hash 均匀分布和副本分布。水平分表策略策略描述适用场景散列(Hash)方式根据元组中指定字段的值计算出哈希值,根据节点与哈希值的映射关系获得该元组的目标存

2021-08-26 23:26:03 1190

原创 hive动态分区表的创建

hive分区表分为静态表和动态表,静态表就是插入数据时指定分区,动态分区不用指定分区,根据数据动态的写入不同的分区。关于动态分区表的建立也比较特殊。下面举一个例子,阐述动态分区表的创建。首先在hive shell中设置开启动态分区功能set hive.exec.dynamic.partition =true;set hive.exec.dynamic.partition.mode=nonstrict;创建动态分区表CREATE TABLE `event_car_pass_partiti

2021-08-26 23:02:59 2713 1

原创 地图区域绘制

背景需要实现地图区域绘制,并能提供给业务实现联动交互,可以按照省市县进行下钻,地图样式如下:绘制实现方式对于这种简约地图区域的绘制,需要提供区域的geo json文件,做地图的公司已经提供这种数据,比如http://datav.aliyun.com/tools/atlas/#&lat=30.236044750804467&lng=106.720060693723&zoom=4.5这种json数据格式应该是统一的规范,echarts也是使用这种json数据来实现绘制,但

2021-08-26 22:57:34 923

原创 neo4j数据备份与恢复

备份关闭neo4j ./neo4j stop导出数据 ./neo4j-admin dump --database=graph.db --to=/xxx/graph.db.dump恢复导入数据 ./neo4j-admin load --from=/xxx/graph.db.dump --database=graph.db --force启动neo4j ./neo4j start注意: 从高版本neo4j导出数据再导入低版本neo4j,会报数据格式不正确...

2021-08-26 22:50:40 277

原创 一点neo4j导入数据实践

neo4j版本使用3.5.3unwind测试使用jdbc批量插入的形式,驱动使用bolt协议,测试发现使用http协议数据库服务端直接承受不了负载不响应请求。load csvload csv 可以定时提交数据到neo4j,使用语法using periodic commit 10000,这种方式写是很方便的,但是有个问题,比如我们的导入的数据是一个点很多关系的,那我们肯定希望点不能重复,那我们需要使用merge语法来写数据,因为merge = match + create,所以我们需要对点建立索引(

2021-08-26 22:45:34 463

原创 maven上传本地jar到私服

首先我们需要准备本地私服的地址和用户名密码在需要上传的工程pom文件配置私服地址,如下<distributionManagement> <repository> <id>mymaven</id> <url>http://ip/content/repositories/releases</url> </repository></distributionManagement>在s.

2021-08-17 11:24:52 158

原创 apache camel

apache camelcamel是一种的路由规则引擎,可以用来作为中间者连接不同的接口,其中的from表示读取源接口的数据,to表示向目的接口写数据,在from和to后面可以接processor,根据from和to的链式顺序,我们可以将from后面processor的叫前置处理器,to后面的processor叫后置处理器。componentcamel可以对接很多种生态,比如rest api,jdbc,rabbitmq等。camel和spring进行集成后,对于spring相关项目的开发很方便,只需要

2021-07-21 09:58:01 657

原创 ES修改字段数据类型

ES修改字段数据类型reindex的方式步骤为:首先使用get的方式获取原始的索引的mapping 和setting新建一个index,修改获取的原始mapping的字段类型put index_name{ "mapping":{},"setting":{}}reindex将原始索引的数据写到新建的索引里面去post _reindex { "source": { "index": "old_index" }, "dest": { "index"

2021-07-15 11:43:22 3008

原创 es搜索api的使用

es搜索api的使用match表示使用全文检索,即先将查询的字符串分词,再去term查询match_phrase表示短语匹配,可以用来作为精确匹配,使用slop参数来决定分隔多少个词也可以匹配上multi_match这个其实是跟上面两个是包容的关系,match和match_phrase可以说是并列的关系"query":{ "multi_match":{ "query": "thread", "fields": [ "content^1.0"

2021-07-15 11:42:08 400

原创 hbase挂掉后出现的问题

hbase挂掉后出现的问题问题和解决的心路历程业务系统查询hbase超时,由于我们的集群采用ambari安装的,我首先想到了去webUI查看集群状况,发现虚拟机上hbase集群中的Hmaster挂掉了,然后重启了HMaster节点,但是业务系统还是连接超时,我于是想使用hbase cli客户端看看,执行命令hbase shell后进入命令行,我执行list命令,这时候遇到了错误ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException

2021-07-15 11:40:12 229

原创 hbase基本概念及使用注意事项

hbase基本概念及使用注意事项hbase的特点多维:key是复合的,列族,列,rowkey,时间戳,操作类型构成物理存储的key稀疏:同行下不同的列可以为空,不填充null,由于列可以无限扩展这会导致空间浪费排序:rowkey->column(列族+列)->timestamp分布式:依托于hadoop,一个表可以有多个region,每个region可以存在不同的region server上,region server对应于hadoop的dataNodehbase的设计目标hb

2021-07-15 11:39:35 496

原创 hbase 多网卡问题

hbase 多网卡问题背景有一个hbase集群,部署在两台机器上,两台机器上有两个网卡,一个通外网一个通内网,现在我们远程连接使用外网连接hbase。hbase版本是1.1版本,hbase集群有一个active master,一个standby master,一个region server。问题连接不到hbase,一直超时重试原因集群中Hmaster绑定的ip是内网,导致连接不通,但是查看hbase-site.xml,不能找到修改绑定ip的配置,0.9的hbase是可以修改hbase.mast

2021-07-15 11:38:42 207

原创 quartz 调度问题

背景项目出现定时任务在某些时间点任务没有触发执行的问题,经过对quartz的调度使用的研究,发现可能导致这一问题的原因可能存在两个原因。第一个是quartz使用数据库持久化调度任务,同时采用集群模式部署,这是不同的调度任务会被分配到不同的节点执行,而某个节点出了故障会导致任务执行出问题;第二个原因可能是quartz执行线程数太小,而并发的任务太多,导致有任务等待,而任务等待有一个超时时间,misfireThreshold,这个配置表示超时时间阈值,当等待的任务小于这个时间时和线程池有资源时,等待的任务才会

2021-07-15 11:36:50 929

原创 datax执行流程

datax执行流程首先开启一个job对源数据连接进行检查,判断是否是通的,检查源表有哪些字段,开启job容器,readerJob,writerJob,job容器分割为小的task,job设置通道大小N,查询分割主键的最小值和最大值,分割后的所有的查询sql,job容器开启调度调度开启一个taskGroup,task容器为所有的task开启N个通道,异步的执行各个task所有的任务完成后开始post操作,WriterJob和ReaderJob都进行post操作datax监控读写记录的方式:采用

2021-07-15 11:34:49 816

原创 <<高性能spark>>相关笔记

窄宽依赖转换窄依赖转换不需要与driver节点通信,窄依赖不需要数据跨分区迁移,在一个stage中执行计算,宽依赖的转换需要跨机器,数据需要跨分区迁移,尾端的计算需要等shuffle执行完成才能开始。举个例子对于尾端计算需要等shuffle完成,如sortByKey由于需要全部的数据有序,不是单个分区的有序,所以需要宽依赖转换,因为分区的数据会改变,所以排序后面的窄依赖转换计算需要等宽依赖转换完成。除了join的操作,多个RDD进行计算时,stage可以并行,stage一般是串行执行,串行计算必然是影响性

2021-07-15 11:31:30 67

原创 spark 读取hive table时分区数由什么决定

spark 读取hive table时分区数由什么决定这个话题比较复杂,他不是一个单一的指标的来决定。主要是取决于表存储的文件大小,hdfs的块文件大小,hive是否是分区表,如果是分区表一个hive表分区一个hadoopRDD, 最后会union成一个RDD,如果不是分区表就是一个HadoopRDD。如果hive底层存储单个文件大小超过块大小,这一个文件的读取就会被hdfs的块大小除以max(“mapreduce.job.maps”,2)来划分,如果块大于文件大小就使用文件大小除以max(“mapred

2021-07-15 11:26:47 965

原创 性能监控

性能监控改善性能有三个步骤要做:性能监控、性能分析、性能调优性能监控是一种以非侵入式方式收集或查看应用运行性能数据的活动。性能分析是一种 以侵入式方式收集运行性能数据的活动,它会影响应用的吞吐量和响应性。性能分析很少在生产环境中进行,通常是在质量评估、测试或者开发环境中,一般是性能监控之后的行为。性能调优是一种为改善应用响应性或吞吐量而更改参数、源代码或属性配置的活动。cpu使用率分为用户态CPU使用率和系统态CPU使用率。用户态使用率是指执行应用程序代码的时间占总CPU时间的百分比。系统态CP

2021-07-15 11:24:52 553

原创 线程管理解释

线程管理线程管理涉及从线程创建到终止的整个生命周期,以及HotSpot VM线程间的协调。线程管理包括Java代码创建的线程、直接与HotSpot VM关联的本地线程,以及HotSpot为其他目的的而创建的内部线程。线程模型HotSpot VM的线程模型中,Java线程(java.lang.Thread实例)被一对一映射为本地操作系统线程。Java线程启动时会创建一个本地操作系统线程,当该Java线程终止时,这个操作系统线程也会被回收。Java线程的优先级和操作系统线程的优先级之间关系复杂,各个系统之

2021-07-14 14:52:03 174

原创 同步机制解释

同步同步是一种并发操作机制,用来预防、避免对资源不适当的交替使用(一般称为竞争),保障交替使用资源的安全。Java使用线程来实现并发。互斥是同步的特殊情况,即同一时间最多允许一个线程访问受保护的代码或者数据。HotSpot VM使用监视器(monitor)对象来保障线程运行代码之间的互斥。HotSpot VM吸收了非竞争和竞争性同步操作的最先进技术,极大的提高了同步性能。非竞争性同步,指的是同一个线程里在其他无归属monitor对象(未被任何线程拥有的对象)上的同步操作,Java 5 HotSpot

2021-07-14 14:50:41 449

原创 系统性能优化指标

系统性能优化指标提高应用性能和扩展性的一个目标是尽可能降低系统态CPU使用率IPC:每时钟周期的指令数CPI:每指令的时钟周期CPU停滞:表示等待数据从内存装入到CPU寄存器CPU停滞会浪费时钟周期CPU调度程序运行队列数为CPU核数的4倍时需要注意此时系统响应就非常迟缓页面交换:内存不足时将整个进程交换到磁盘上 JVM垃圾收集在系统发生页面交换时性能很差,由于一部分被置换出内存的java堆数据需要必须先置换进来以便GC扫描存活对象,这会增加GC时间可用内存少,也没有页面调度,说明系统没有页

2021-07-14 14:49:26 153

原创 分代垃圾收集

分代垃圾垃圾收集器基于弱分代假设大多数分配对象的存活时间很短存活时间久的对象很少引用存活时间短的对象新生代空间小且收集发生频繁,新生代大部分对象存活时间短,新生代收集(Minor GC)之后存活的对象很少。由于Minor GC专注于小对象且有大量垃圾对象的空间,所以收集效率很高。老年代新生代长期存活的对象会被晋升(Tenure)到老年代,老年代收集(Full GC)发生频率低,但是发生时间长。垃圾收集器不需要扫描整个老年代就可以知道新生代中存活的对象,因为老年代中使用了Card Table结构

2021-07-14 14:47:39 44

原创 janusgraph 可视化工具

janusgraph 可视化工具对比市面上已有的几款支持浏览janusgraph的可视化工具Gephi plugin for Apache TinkerPop使用麻烦,本地安装,再需要去部署gremlin-server的机器连接本地安装的gephi,并且不能直接在本地安装的可视化软件去访问需要访问的节点数据,也不支持修改数据Graphexp使用简单,浏览器打开html即可,支持修改存储数据和方便自定义查询语句访问存储,但是还存在缺陷,似乎更新不是很及时Linkurious收费,好像

2021-07-14 14:46:15 799

原创 janusgraph 常见问题

janusgraph 常见问题1. 提示字符串无法转为Map这是remote方式访问遇到的问题,需要将remote.yaml配置文件中的序列化配置serializeResultToString改为false2. org.apache.tinkerpop.gremlin.driver.ser.SerializationException: org.apache.tinkerpop.shaded.kryo.KryoException: Encountered unregistered class ID:

2021-07-14 14:45:30 515

原创 janusgraph index

janusgraph index查看index首先shell的方式连接到janusgraph启动bin/gremlin.sh,进入gremlin控制台连接本地的gremlin server,gremlin>:remote connect tinkerpop.server conf/remote.yamlgremlin>:remote console打印索引情况gremlin>mgmt = graph.openManagement();mgmt.printSchema();

2021-07-14 14:44:49 89

原创 janusgraph:cypher-for-gremlin

janusgraph:cypher-for-gremlincypher-for-gremlin使用cypher语法写数据到janusgraph时遇到一些问题,我们采用先写点再写边的方式,gremlin-server配置为force-index,写点语句为unwind %s as row merge (s:node{obj_id:row.obj_id,ontology_id:row.ontology_id,ontology_type:row.ontology_type,obj_type:row.obj

2021-07-14 14:44:10 459 1

原创 CAS5.3版本的部署和使用

前言:本次部署为了测试集成CAS使用,部署使用oauth2.0协议的sso服务1.打包首先拉取工程 git [email protected]:apereo/cas-overlay-template.git切换到5.3分支如果需要启用mysql 数据库存用户名和密码和oauth协议,需要在pom文件添加下面的依赖<!--...Additional dependencies may be placed here...--><dependency>.

2021-07-14 14:41:59 1614

cypher-refcard-3.4.pdf

neo4j查询语言

2021-07-14

gmp6.1.2最新文档

GNU MP 密码学库 大数运算库

2017-05-16

空空如也

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

TA关注的人

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