- 博客(257)
- 资源 (21)
- 收藏
- 关注

原创 CDH6安装教程(亲自测试越坑版)
一、Hadoop大数据平台1、Hadoop 发行版 (1) 完全开源的原生的Apache Hadoop (2) Cloudera与Hortonworks公司的CDH和HDP:在Cloudera和Hortonworks合并后,Cloudera公司推出了新一代的数据平台产品CDP Data Center(以下简称为CDP) (3) MapR公司的MapR(已经被HPE收购) (4) AWS亚马逊的EMR (5) 国内华为的fusioninsight (
2021-09-12 03:12:12
6452
6

原创 分布式存储ceph(Luminous/Nautilus版)安装教程
一、节点规划| 节点 | IP地址 | 主机名 | 挂载磁盘设备 || – | – | – ||deploy/mon/mgr/mds | 172.17.207.244 | node1 | /dev/sdb ||osd | 172.17.207.246 | node2 | /dev/sdb ||osd | 172.17.207.247 | node3 | /dev/sdb ||osd | 172.17.207.248 | node4 | /dev/sdb |二、每台机器通用配置1
2020-12-31 11:36:10
2661

原创 CentOS7系统下KVM虚拟机的安装与常用命令使用
一、环境准备1、检测是否支持KVMcat /proc/cpuinfo | egrep 'vmx|svm'注:如果是在vmware上跑的话,需要勾选虚拟化引擎:2、关闭SELinuxsetenforce 0sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config3、关闭防火墙systemctl stop firewalldsystemctl disable firewalldsystemc.
2020-12-15 18:15:14
2856
1

原创 基于SpEL的SpringBoot含有动态参数的日志记录与管理的实现
一、功能介绍在SpringBoot的项目应用中,常常需要记录日志到数据库中,例如系统访问日志(登录日志)、用户操作日志等,日志文本中需要含有动态的参数(发送http请求的请求参数),此情景下,可基于Spring Expression Language的动态日志信息记录功能。二、需求场景场景需求如下:package com.tang.demo.controller;import javax.validation.Valid;import org.springframework.validati
2020-12-03 09:49:57
1139

原创 基于kubeadm的k8s集群安装(亲自测试无坑版)
一、节点规划主机名主机IPk8s-master172.17.185.91k8s-node01172.17.185.92k8s-node02172.17.185.93k8s-node03172.17.185.94二、所有节点操作1、关闭防火墙及selinuxsystemctl stop firewalld && systemctl disable firewalldsed -i 's/^SELINUX=.*/SELINUX=disa
2020-10-19 12:25:37
868

原创 基于Promethues与Grafana的Greenplum分布式数据库监控的实现
一、前言Greenplum是面向数据仓库应用的分布式关系型MPP数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好,大部分PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上。GPCC是Greenplum数据库官方商业版的数据库监控软件,对于只能用得起开源的用户来说,只能考虑其他的监控方案了。本文里介绍一种基于Promethues与Grafana的Greenplum分布式数据库监控的实现方案。二、Promethues与Grafana简介
2020-09-19 22:30:42
3689
7

原创 Greenplum分布式数据库的一键安装方法汇总
Greenplum是面向数据仓库应用的分布式关系型MPP数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好,大部分PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上。对于初学者来说,如果想快速安装一个Greenplum集群来说,复杂的操作过程可能会比较麻烦,为此,本文介绍了一种在CentOS7系统下使用Docker安装Greenplum6的方法。内容大致包括如下:1、Docker环境的安装;2、Greenplum6镜像的拉取与启动;
2020-09-19 21:42:51
2622
10

原创 异构数据库结构与数据同步工具dbswitch
一、背景 开源MPP数据库Greenplum是一种基于PostgreSQL的分布式数据库,其采用shared-nothing架构,其架构专门用于管理大规模分析数据仓库,Greenplum主要定位在OLAP领域,利用Greenplum MPP数据库做大数据计算或分析平台非常适合,典型的就是数据仓库系统。 虽然Greenplum支持JDBC 、libpg、copy、gpfdi...
2020-05-29 22:32:24
10919
4

原创 一个网站新闻页通用的正文抽取组件libnpce
一、背景 在舆情系统中,通常会有一个网络新闻爬虫子系统,准实时的采集互联网上的媒体新闻数据,以供上层聚类事件分析。这类新闻数据的组成元素包括:标题 发布时间 来源及其URL链接地址 正文文本内容 正文图片信息(图片位置、图片的URL路径等) 其他二、libnpce组件 新闻文章正文抽取News Passage Content Extractor (NPCE),是...
2019-12-28 00:12:54
387
1
原创 完全开源的SQL2API低代码工具SQLREST
SQLREST是一款完全开源的SQL2API低代码工具,帮助用户同步编写SQL或简单的Groovy脚本即可编写系统中常用的CRUD等的RESfull规范的接口,简化了后端开发人员的工作量。SQLREST 自动生成基于SQL的 API 接口,开发者无需手动编写 Java/Python等重复逻辑的代码即可完成常见的增删改查操作,大大缩短了开发周期。只需配置数据库连接,按照MyBatis的语法编写SQL,简单的进行接口的常规配置,SQLREST 即可自动生成完整的 Swagger API 在线接口文档。
2025-03-15 13:44:45
934
转载 Spring Boot中的 6 种API请求参数读取方式
使用Spring Boot开发API的时候,读取请求参数是服务端编码中最基本的一项操作,Spring Boot中也提供了多种机制来满足不同的API设计要求。接下来,就通过本文,为大家总结6种常用的请求参数读取方式。如果你发现自己知道的不到6种,那么赶紧来查漏补缺一下。如果你知道的不止6种,那么告诉大家,一起互相学习一下吧~
2024-07-19 10:08:06
121
转载 UnexpectedRollbackException解决方案
最近在项目中发现了一则报错:“org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only”。根据报错信息来看是spring框架中的事务管理报错:事务回滚了,因为它被标记为回滚状态。
2024-07-19 10:07:00
412
原创 Windows10安装配置nodejs环境
【Note】如果安装完成后 npm报错throw err;^ Error:Cannot find module, 主要是环境配置问题,选择控制面板 ---> 程序和功能 找到nodejs, 点击修复即可。
2024-04-20 22:07:55
604
原创 关于Linux上的$ORIGIN解说
RPATH代表运行时搜索路径。根据Wikipedia的说法,“rpath指定在可执行文件或库中硬编码的运行时搜索路径。动态链接加载程序使用rpath查找所需的库” 动态链接是所需共享库的一种“惰性”链接,不是在编译阶段,而是在运行一个可执行文件的后期。如果设置了rpath,覆盖或补充系统默认的共享库搜索路径,则共享库的路径将被编码到可执行文件的头中,就像扩展PATH系统变量链一样。$ORIGIN是一个特殊的变量,指示实际的可执行文件名。它在运行时解析到可执行文件的位置,在设置RPATH时非常有用。示例。
2024-03-05 18:56:09
1109
1
转载 Linux命令之nc命令
nc是的简写,是一个功能强大的网络工具,有着网络界的瑞士军刀美誉。nc命令在linux系统中实际命令是ncat,nc是软连接到ncat。
2023-08-11 21:57:59
687
原创 学习之Lemon语法分析生成器
https://blog.youkuaiyun.com/larryliuqing/article/details/7355101https://blog.youkuaiyun.com/yawsh/category_825966.htmlhttps://sqlite.org/src/doc/trunk/doc/lemon.htmlhttps://souptonuts.sourceforge.net/readme_lemon_tutorial.html
2023-07-10 21:25:17
165
原创 Hazelcast 在springboot下的使用集成
Hazelcast是一款由Hazelcast公司开发的基于jvm环境的为各种应用提供分布式集群服务的分布式缓存解决方案。可以嵌入到java、c++、.net等开发的产品中使用。其实我们最简单的一个理解就是,以Map接口为例,在Hazelcast中创建了一个map之后,当我们通过Hazelcast创建一个Map实例后,我们在节点A调用 Map::put("A","A_DATA") 方法添加数据,然后可以在节点B使用 Map::get("A") 获取到值为"A_DATA" 的数据。
2022-12-22 20:46:13
2317
原创 Spring中SecurityContextHolder的异步使用解说
Spring中SecurityContextHolder的异步使用解说
2022-09-17 00:02:53
1642
1
原创 MySQL的数据库不能重命名问题处理方法
对于MySQL数据库,并未提供修改库名的SQL方法,那如何修改库名呢?处理方法如下:1、重命名旧库下边的所有表到新库:create databases `test2`;RENAME TABLE `test1`.`t_user` TO `test2`.`t_user`;使用如下SQL导出上述SQL:SELECT CONCAT('RENAME TABLE `test1`.`',TABLE_NAME,'` TO `test2`.`',TABLE_NAME,'`;') as statemen
2022-03-15 14:50:17
3630
原创 基于正则对JDBC的URL中提取有效参数的方法
一、背景需求在Java的实际开发中,可能会遇到如下需求:(1)给定一个数据库的JDBC-URL连接字符串,要求去判断该字符串格式的合法性;(2)给定一个数据库的JDBC-URL连接字符串,要求去判断连接该数据库的可达性;(3)给定一个数据库的JDBC-URL连接字符串,要求去判断连接串中的某些参数配置信息;二、基于正则的提取方法通过搜集互联网上对jdbc-url提取参数的方法,感觉相对通用且合适的几乎没有,于是通过阅读合分析dbeaver工具的代码,发现了一个基于正则改进的提取jdb
2021-11-20 23:12:59
4862
4
转载 Spring容器中Bean的生命周期内所有可扩展的点
1.背景在这篇文章里,我总结了几乎Spring & Springboot所有的扩展接口,以及各个扩展点的使用场景。并且整理出了一个bean在spring内部从被加载到最后初始化完成所有可扩展点的顺序调用图。从而我们也能窥探到bean是如何一步步加载到spring容器中的。2.可扩展的接口启动调用顺序图以下是我整理的spring容器中Bean的生命周期内所有可扩展的点的调用顺序,下面会一个个分析3.ApplicationContextInitialize
2021-11-09 10:02:05
899
转载 git cherry-pick 使用教程
一、基本用法git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。$ git cherry-pick <commitHash>上面命令就会将指定的提交commitHash,应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。举例来说,代码仓库有master和feature两个分支。 a - b - c - d Master \ e - f - g Fea
2021-09-18 10:24:00
1038
转载 MyBatis拦截器原理探究
MyBatis拦截器介绍MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢?我们进入官网看一看:MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed) Pa
2021-09-16 14:34:54
243
转载 Mybatis自定义拦截器与插件开发
在Spring中我们经常会使用到拦截器,在登录验证、日志记录、性能监控等场景中,通过使用拦截器允许我们在不改动业务代码的情况下,执行拦截器的方法来增强现有的逻辑。在mybatis中,同样也有这样的业务场景,有时候需要我们在不侵入原有业务代码的情况下拦截sql,执行特定的某些逻辑。那么这个过程应该怎么实现呢,同样,在mybatis中也为开发者预留了拦截器接口,通过实现自定义拦截器这一功能,可以实现我们自己的插件,允许用户在不改动mybatis的原有逻辑的条件下,实现自己的逻辑扩展。本文将按下面的结构进行m
2021-09-16 14:33:22
429
转载 基于DAG的任务编排框架/平台
一、任务编排工作流任务编排是什么意思呢,顾名思义就是可以把"任务"这个原子单位按照自己的方式进行编排,任务之间可能互相依赖。复杂一点的编排之后就能形成一个 workflow 工作流了。我们希望这个工作流按照我们编排的方式去执行每个原子 task 任务。如下图所示,我们希望先并发运行 Task A 和 Task C,Task A 执行完后串行运行 Task B,在并发等待 Task B 和 C 都结束后运行 Task D,这样就完成了一个典型的任务编排工作流。二、DAG 有向无环图首先我们了解图这
2021-08-02 22:52:27
6044
1
转载 使用 Google Guava Striped 实现基于 Key 的并发锁
写 Java 代码至今,在应对可能冲突的共享资源操作时会尽量用 JDK 1.5 开始引入的并发锁(如 Lock 的各类实现类, ReentrantLock 等) 进行锁定,而不是原来的synchronized关键字强硬低性能锁。这里是应用 JDK 1.5 的Lock的基本操作步骤private Lock lock = new ReentrantLock();private void operate() { // 安全操作 .... lock.lock(); tr...
2021-08-02 22:47:07
2486
转载 ListenalbeFuture的使用总结
为了提高任务处理速度,我们经常会将一些可并行处理的步骤用异步的方式去处理,如果想要获取异步计算的结果,在Java 8之前更多的用的是Future + Callable的方式来实现,下面是使用Future和Callable的一个demo,其中的是executor.submit()方法实际返回的就是FutureTask的实例,另外Future的get方法会一直阻塞直至获取结果。public class FutureTest { public static void main(String[] ar
2021-07-26 15:00:22
1557
转载 Jackson之JSON序列化和多态反序列化
SerDe是Serialize/Deserilize的简称,目的是用于序列化和反序列化。一、Jackson之序列化和反序列化JSON作为一种轻量级的数据交换格式,其清晰和简洁的结构能够轻松地与Java对象产生映射关系。Java开发中常常使用Jackson对JSON文本格式进行序列化和反序列化:序列化:是指将Java对象转换成Json文件或者Json字符串;反序列化:是指将Json文件或者Json字符串转换成Java对象。例如,有如下定义的java的bean:public cl.
2021-07-19 23:21:30
7723
原创 Hive3.1.2版本的UDF开发教程
一、UDF简介1、UDF函数:UDF(User-Defined Functions)即是用户定义的hive函数。hive自带的函数并不能完全满足业务需求,这时就需要我们自定义函数了。2、UDF的分类:UDF:one to one,进来一个出去一个,row mapping。是row级别操作,如:upper、substr函数UDAF:many to one,进来多个出去一个,row mapping。是row级别操作,如sum/min。UDTF:one to many ,进来一个出去多个。如a
2021-07-16 22:30:12
2215
1
原创 MySQL的TinyInt类型及JDBC的url中的tinyInt1isBit参数
一、问题描述问题:在使用Java的jdbc读取tinyint(1)类型的数据时,rs.getObject(i)的值为Boolean类型的true/false。而数据库中存储的是1或0,那为啥用JDBC读取到的就是true或false了呢?所以,JAVA数据类型 和 MYSQL的数据类型转换,要注意tinyInt 类型,且存储长度为1的情况。二、原因分析MYSQL官方的JDBC文档定义转换规则如下:MySQL Types to Java Types for ResultSet.getObj
2021-07-13 23:09:26
2390
原创 两个相同结构的关系数据库表的差异比较方法
当您有两个表(或来自 SELECT 语句的结果集)要比较,并且您想查看任何列中的任何更改,以及查看 1 个表中存在哪些行而不是另一个(在任一方向)时,我发现 UNION 运算符工作得很好。基本思想是:如果我们对所有列上的两个表的并集进行 GROUP,那么如果这两个表相同,所有组将导致 COUNT(*) 为 2。但是对于在任何列上不完全匹配的任何行GROUP BY 子句,COUNT(*) 将是 1 -- 而这些就是我们想要的。我们还需要在 UNION 的每个部分添加一列来指示每行来自哪个表,否则无法区分哪
2021-06-15 18:48:03
2342
3
原创 Java 9中--add-exports和--add-opens有什么区别?
在Java 9(jdk-9 + 170)默认情况下不允许应用程序查看来自JDK的所有类,而不像以前的所有Java版本。Java 9中--add-exports和--add-opens有什么区别?使用--add-exports包被导出,意味着所有的公共类型和成员都可以在编译和运行时访问。随着--add-opens打开包,这意味着其中的所有类型和成员(不仅是公共的!)在运行时可以访问。所以在运行时的主要区别是--add-opens允许“深度反射”,意思是非公共成员的访问。您通常可以通过拨打setAcce
2021-06-10 22:53:53
12445
2
转载 Paxos、Raft分布式一致性算法应用场景
一、分布式一致性 (Consensus)分布式一致性问题,简单的说,就是在一个或多个进程提议了一个值应当是什么后,使系统中所有进程对这个值达成一致意见。这样的协定问题在分布式系统中很常用,比如:领导者选举(leader election):进程对leader达成一致; 互斥(mutual exclusion):进程对进入临界区的进程达成一致; 原子广播(atomic broadcast):进程对消息传递(delivery)顺序达成一致。对于这些问题有一些特定的算法,但是,分布式一致性问题试
2021-06-10 13:41:35
440
MongoDB3集群的搭建及验证.docx
2020-08-29
greenplum_exporter-1.0-1.x86_64.rpm
2020-07-26
greenplum-6.6.0-distribute-installer.tar.gz
2020-04-30
jclasslib_win64_5_5.zip
2020-03-07
数据库访问工具dbeaver7.0
2020-03-07
HTML网页截图工具CutyCapt源代码
2015-11-25
Windows下采用IOCP实现的ACE的Proactor框架剖析
2015-04-20
显示或隐藏桌面窗口(VC++6.0源代码).rar
2011-09-13
IP地址设置器(VC++6.0源代码)
2011-07-15
精美时钟(VC++6.0源代码)
2011-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人