自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ASN_forever的博客

记录技术小白的成长之路!

  • 博客(209)
  • 资源 (3)
  • 收藏
  • 关注

原创 基于redis实现延时任务

基于redis实现延迟任务

2022-04-25 18:29:38 3430 1

原创 一种接口幂等性实现方案

接口幂等性方案

2022-04-24 18:35:02 937

原创 HttpClientUtil

Apache httpclient自定义重试策略

2022-03-16 13:00:27 2501

原创 JanusGraph入门实操

JanusGraph入门实操安装hbase查看hbase web UI安装janusgraph启动janusgraph服务配置conf/janusgraph-hbase-test01.properties修改gremlin-server.yaml配置启动janusgraph服务客户端交互gremlin控制台交互idea应用交互本篇博客主要记录在centos上安装janusgraph以及在idea中开发图应用的简单示例过程,对于janusgraph和gremlin相关的概念和语法不做介绍。具体可自行查阅相关

2021-08-04 18:06:39 2052

原创 shell中0是true

程序世界中一般都用1表示true,0表示false。但0表示失败的话,没有具体详细的失败含义,比如失败原因可能是输入参数不合法,可能是数据不存在等等,使用0来涵盖这些所有的异常原因不利于问题排查。因此在Bash中,用0表示true,非0表示false。我们可以使用1-255中的任何一个数字来表示某个具体的错误,1是一个普遍的错误,126意味着一个文件不能被执行,127意味着’找不到命令’等。#!/bin/bashf1(){ return 1;}f2(){ return 0;}

2021-07-08 16:58:02 1968 2

原创 2021-07-08

shell无限循环方式一方式二方式一while [ true ]; do echo "2222"done方式二while [ 1 ]; do echo "2222"done

2021-07-08 15:40:08 137

原创 spring boot扫描不到dao层对象

今天发现一个问题,就是在dao层用@Repository注解的话,spring boot是扫描不到的,会报错,需要改成用@Mapper注解。import org.apache.ibatis.annotations.Mapper;import org.springframework.stereotype.Repository;import java.util.List;//@Repository@Mapperpublic interface UserDao{}...

2021-06-05 13:08:27 1172

原创 @Inherited注解的作用

今天在开发中遇到一个小知识点,在这里记录一下。项目中要处理来自mq的不同类型的消息(主要是将不同的消息处理后入库到对应的表),因此这里采用了策略模式来实现不同的处理逻辑。这部分的代码结构大体如下:其中Table1Vo,Table2Vo,Table3Vo是实体bean对象;ConsumeType是自定义的注解;ConsumeStrategy是策略接口;Table1Consumer,Table2Consumer,Table3Consumer是三张表各自的消费策略实现类;StrategyCon

2021-05-20 10:29:52 489

转载 网络基础之网络协议篇(转)

转自:https://www.cnblogs.com/linhaifeng/articles/5937962.html阅读目录一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 网络层 2.3.4 传输层 2.3.5 应用层 2.3.6 socket 2.3.7 小结 三.网络通信实现 四.DNS域名解析 4.1 dns的作用 4.

2021-02-26 10:43:59 294

转载 Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系和Application,Driver,Job,Task,Stage理解

梳理一下Spark中关于并发度涉及的几个概念File,Block,Split,Task,Partition,RDD以及节点数、Executor数、core数目的关系。输入可能以多个文件的形式存储在HDFS上,每个File都包含了很多块,称为Block。当Spark读取这些文件作为输入时,会根据具体数据格式对应的InputFormat进行解析,一般是将若干个Block合并成一个输入分片,称为InputSplit,注意InputSplit不能跨越文件。随后将为这些输入分片生成具体的Task。Inpu

2021-01-19 10:37:44 693

原创 HBase2.1.0分页查询(支持跳页)

HBase分页hbase中的数据是按照rowkey字典排序存储的,实现分页的思路有两个,一个是获取页面的起始rowkey,然后使用PageFilter来限制每页的数量。另一种是获取页面的起始rowkey和结束rowkey,然后直接调用scan的withStartRow和withStopRow查询即可。方案一、PageFilterhbase中有自带的PageFilter,能够实现分页功能,但是局限性很大,实际很少使用。就是说,PageFilter的作用域是单个的region,会从每个r

2020-12-31 17:38:16 3627

原创 使用group_concat出现的问题

问题描述今天在使用group_concat拼接字符串时,遇到一个问题,就是select的结果是没有数据的,但使用group_concat就出现一条空数据。select group_concat(studentID) as studentIDfrom studentwhere studentID = '1231231';类似上面这条SQL,student表并没有studentID为1231231的记录,但这样写就会返回一条空记录。问题原因之所以出现这个奇怪的问题,是因为忘了加gr

2020-12-01 14:18:32 879

原创 hive3.1.2安装

下载安装包https://pan.baidu.com/s/17qYstZwDRV5tjkysCfeEZw提取码:ue1l解压到指定目录,如/opt/bigdata/hive-3.1.2配置环境变量export HIVE_HOME=/opt/bigdata/hive-3.1.2export PATH=$PATH:$HIVE_HOME/bin修改配置文件hive-site.xmlHive的默认配置文件是hive-default.xml.template,但里面有些错误。因此这里

2020-11-23 18:37:06 1037

原创 js实现get和post两种方式的导出/下载请求

项目需求: 前端需要传入过多的参数给后端,get请求会超长,只能接受post方式去导出数据。1、get方式let url = xxxx.action?a=xx&b=yy;window.location.href = url;// 或者window.open(url, '_self')弊端:当请求参数较多时,get的方式无法使用,这时候需要考虑post的方式,但是直接通过ajax的post的方式无法调用浏览器的下载功能2、post方式原理: 创建一个隐藏form表单,通.

2020-08-06 20:21:50 2954

原创 could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node

问题描述在使用hive insert overwrite更新分区表的时候出现这个报错。意思是没用可用的DataNode了。解决方案网上看到的类似的解决方案有以下两种:但我这里都不是。我这里的原因是hdfs空间被占满了,而hive在执行的时候会往/tmp下读写大量的临时数据,由于没有空间而报错。默认情况下,hive脚本执行完之后会自动清理掉这些临时文件。这里之所以出现/tmp下大量文件没被清理,是因为之前自己有多次没等hive脚本执行完就Ctrl +c掉了,所以有大量临时文件未

2020-07-28 15:43:30 4471 3

原创 left join条件放在on后面和where后面的区别

on后面的条件:对于左表来说,不管on的条件是否为真,左表都会全部返回 对于右表来说,当on的条件为假时,左表数据用null返回where后面的条件:对连接后的结果表进行过滤如果将右表的过滤条件放在了where中,就可能会出现左连接后部分数据丢失的情况。举个例子有两个表,leader和department下面看这两个SQL执行结果的区别select * from department d LEFT JOIN leader l on d.departmentID=l...

2020-07-13 16:19:01 1034

原创 datax同步mysql数据到hive时,时间类型字段少8小时问题

现象在使用datax同步mysql数据到hive的时候,发现有些时间字段同步之后时间少了8小时。下面分析一下具体情况。背景知识首先,明确一下hive支持的时间类型和datax支持的时间类型有哪些。先看一下datax支持的数据类型:这是datax GitHub上的文档,可以看到datax支持的时间类型只有date和timestamp。接下来看一下hive3.x支持的数据类型:可以看到,hive也支持date和timestamp两种时间类型。但是datax和hive.

2020-07-09 10:13:41 3949 2

原创 datax同步mysql数据到hive

datax hdfswriter文档https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdfswriter.md需要注意的是,hdfswriter写入时的字段分隔符,需要用户保证与创建的Hive表的字段分隔符一致,否则无法在Hive表中查到数据。另外,虽然hive3支持decimal格式,但是datax还不支持。。。因此datax作业中应该用string代替decimal。建表语句create external t.

2020-07-07 10:11:40 2193

原创 伪分布Hadoop2.7.6 hbase2.1.8升级到Hadoop3.1.3 hbase2.1.10

如果Hadoop集群配置了高可用,则可以进行不停服的滚动升级。但现在是伪分布的单节点集群,因此需要停止Hadoop及相关的应用,包括hbase、zookeeper等。Hadoop升级因为目前有跑flink作业,checkpoint是放在hdfs上的,因此先停掉对应的job(只需要停job,不用关flink集群) 停止hbase集群:stop-hbase.sh 停止Hadoop集群:stop-all.sh 备份hdfs元数据:包括namenode元数据、datanode元数据、临时数据,我都备份

2020-07-03 16:55:08 483

原创 flink读取有界流时开时间窗遇到的问题

有界流:不知道有没有这个概念,我这里用它表示以流处理的方式读取的批数据,比如streamExecutionEnvironment.fromCollection(...)其实这种做法或需求是比较奇怪的,要用流处理,但读的却是批数据,最好用流处理api处理流数据,用批处理api处理批数据。我这里之所以有这样反人类的设计,是出于批处理一次性读取全部数据有可能会内存溢出的情况下考虑的。想通过流的方式读取批数据来解决。但是后面想了想,这好像简直是一厢情愿。批量读取数据后交给流处理api,这只是处理的过程按

2020-07-01 15:56:46 589

原创 flink countWindow计算每个学生的总成绩

需求假设学校的财务系统要出一个新功能,类似于年度账单。统计每个学生过去一年往一卡通中的总充值金额。其实这种需求完全不用开窗,可以直接使用批处理,groupBy()后reduce()即可。当然,也可以使用流处理通过开窗实现聚合。下面分别介绍。批处理public static void main(String[] args) throws Exception { ExecutionEnvironment env = ExecutionEnvironment.getExecu

2020-06-30 17:00:30 1661

原创 flink窗口相关概念

窗口窗口是无界流处理程序的核心。窗口能够将一个无界流切分成一个个有限大小的桶,以便进行计算。窗口根据流的类型(keyed stream和non-keyed stream)分为两种,分别是keyed window和non-keyed window。它们的结构如下所示(方括号表示是可选的),可以看到,区别就是是否使用了keyBy。窗口的声明周期简而言之,当属于此窗口的第一个元素到达窗口时此窗口才创建(created)。当时间(event or processing time)经过截止时间+.

2020-06-29 16:40:13 607

原创 mysql事务、脏读、幻读

什么是事务?百度百科事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。在关系数据库中,一个事

2020-06-24 19:03:40 413

原创 flink reduce算子

reduce算子是flink流处理中的一个聚合算子,可以对属于同一个分组的数据进行一些聚合操作。但有一点需要注意,就是在需要对聚合结果进行除聚合操作之外的操作时,有可能会失效。比如下面一段代码:public static void main(String[] args) throws Exception { StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnviro

2020-06-11 13:55:41 2073

原创 flink table无法取非group by的字段

有的时候我们希望获取非group by的字段,这时候发现flink的table api不支持,会报错。比如groupbya,b的时候selectc,d,则会报错expressioncisnotbeinggrouped。其实这是一个SQL规范(SQL92标准),像在mysql5.7及以上版本中,默认的sql_mode=only_full_group_by。这个配置就要求select后的字段要么是group by后的字段,要么是聚合函数。否则会报错。mysql中可以通过修改配置来解决这...

2020-06-10 15:27:36 3247 1

原创 flink不同环境动态传参

在实际生产中一般都有多个环境,比如开发环境,测试环境,生产环境等等。不同的环境机器不同,一些组件的配置也不同,因此一个flink作业在不同的环境运行时需要指定对应的参数。本文以动态配置不同环境的apollo.meta为例,介绍在web ui以及flink shell两种方式提交作业时如何动态指定参数。jobpublic static void main(String[] args) throws Exception { StreamExecutionEnvironmen

2020-06-09 12:36:40 1599

原创 centos安装airflow

首先需要安装python,pip,建议安装python3。我这里因为之前使用datax,安装的时python2,图省事就没有升级到python3.之后直接pip installapache-airflow进行安装,结果报一堆下面的错Requirement already satisfied: scandir; python_version < "3.5" in /home/kduser/.local/lib/python2.7/site-packages (from pathlib2; p.

2020-06-06 18:09:21 595

原创 exceeded the 80 characters length limit and was truncated.

flink任务在idea调试时没有问题,但提交到standalone集群上运行时,发现没有数据。看日志发现下面这段信息:2020-06-04 21:05:05,897 WARN org.apache.flink.metrics.MetricGroup - The operator name DataSource (at createInput(ExecutionEnvironment.java:576) (com.asn.re.warehouse.d

2020-06-04 21:35:57 5362 1

原创 flink读kafka报错:Undefined offset with no reset policy for partitions

Caused by: org.apache.kafka.clients.consumer.NoOffsetForPartitionException: Undefined offset with no reset policy for partitions: [test-topic-1]这是因为设置的auto.offset.reset为none,表示如果在kafka broker中找不到当前消费者组的offset时,则抛出异常。下面是源码中的解释:/** * <code&gt.

2020-05-28 14:56:41 7275

原创 flink1.10配置rocksdb保存checkpoint时,idea运行报错

首先,使用rocksdb需要引入依赖:<!-- https://mvnrepository.com/artifact/org.apache.flink/flink-statebackend-rocksdb --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-statebackend-rock

2020-05-27 15:51:46 812 1

原创 flink1.10 在yarn上运行job报内存超出

./bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 -s hdfs://master:9000/flink/checkpoints/d15750eebe118cccb93b4450a008e4d3/chk-158/_metadata -c stream.TestKafkaCheckpoint /var/flink/data/jars/flink-1.0-SNAPSHOT.jarorg.apache.flink.client.program.Prog.

2020-05-27 09:25:10 5021 1

原创 datax从mysql同步数据到elasticsearch(使用es的动态模板)

elasticsearch中设置动态模板PUT _template/hkey_transferbill{ "index_patterns": "hkey_transferbill", "settings": { "number_of_shards": 2, "number_of_replicas": 1 }, "mappings": { "data":{ "dynamic_templates" : [ { "keyword.

2020-05-25 20:07:00 2834 3

原创 datax动态传参指定SQL语句

需求:动态的修改sql语句来读mysql,动态的修改hbase表名来指定写入的hbase表。脚本:{ "job": { "setting": { "speed": { "byte": 8388608, "channel": 3 }, "errorLimit": { "record": 0, "percentage": 0

2020-05-25 17:22:29 5456 3

原创 hbase regionserver挂掉报错has too many store files delaying flush up to 90000ms

今天在使用datax同步数据到hbase的时候,随着同步的数据越来越多,发现同步的速度越来越慢,且慢慢的出现同步数据为0的情况,以及regionserver间歇性挂掉,最后完全挂掉了。首先说一下,使用的hbase是单节点的,自己用来测试的。没有做过多的配置。hbase的表只设置了一个列族,列数不到30列。机器内存16G。当数据写到500万之后,开始变慢。最后写到800万regionserver崩溃。2020-05-25 10:31:53,453 INFO [RpcServer.defau

2020-05-25 12:08:31 1215 1

原创 Error occurred in starting fork, check output in log

今天在使用maven package的时候遇到这个报错,通过在pom中添加以下插件解决:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId&g

2020-05-22 11:42:32 5936 3

原创 hbase shell中查看16进制的中文

默认情况下,通过hbase shell的scan或get等命令获取的中文内容都是16进制的,无法直观的查看数据。其实hbase shell中是有方法将16进制中文转换成utf-8格式的中文的。主要有两种方式:使用FORMATTER => 'toString' 使用:toString示例:hbase(main):037:0> scan 'test'ROW COLUMN+CELL row1

2020-05-21 09:00:48 5528 4

原创 flink1.10.0 on yarn三节点高可用集群搭建

jobmanager高可用jobmanager负责任务调度和资源管理。默认情况下,一个flink集群中只有一个jobmanager实例。这就存在单点故障:当jobmanager宕机时,不仅无法提交新的任务,同时正在运行的任务也会失败。通过配置jobmanager的高可用,就可以从jobmanager的失败中恢复过来,解决jobmanager的单点故障问题。对于standalone集群和yarn集群,都可以配置jobmanager的高可用。本文主要介绍yarn集群下的jobmanager高可用

2020-05-20 15:45:03 1141

原创 flink1.10三节点集群之yarn-session模式

提前搭建Hadoop集群环境,可以参考这篇文章。本文章的集群环境:机器 ip 服务 flink1 172.21.89.128 flink2 172.21.89.129 flink3 172.21.89.130 安装配置flink安装参考这篇文章启动一个yarn session(分配1g的jobmanager和4g的taskmanager)[root@flink1 flink-1.10.0]# ./bin/yar...

2020-05-19 21:05:15 9614 3

原创 flink1.10三节点集群standalone模式搭建

各台机器上提前准备jdk1.8以及上的java环境,并且配置ssh免密登录。集群环境flink1:172.21.89.128 jobmanager flink2:172.21.89.129 taskmanager flink3:172.21.89.130 taskmanager 在flink1上做flink配置,主要是flink-conf.yaml、masters和slavesflink-conf.yaml:jobmanager.rpc.address: fl

2020-05-19 16:59:45 2937

原创 flink报错:JobManager responsible for xxx lost the leadership

查看jobmanager日志:standalonesession-0-master.log2020-05-16 21:46:53,511 WARN akka.remote.ReliableDeliverySupervisor - Association with remote system [akka.tcp://flink-metrics@master:3821] has failed, address is now gated for [50] m.

2020-05-18 09:50:18 4746 1

canal 1.1.4 安装包合集,包括deployer admin adapter

国内下载GitHub上的安装包会失败或很慢。这里直接把安装包提供给大家,包括deployer,admin和adapter。

2020-04-09

11-深度探索区块链:Hyperledger技术与应用_区块链技术丛书_-_张增骏.epub

本书详细介绍了Hyperledger Fabric1.0的相关技术原理,并通过票据背书项目进行实战演练。对于初学Fabric的同学来说,浅显易懂,上手较快。

2019-05-27

networkx开发文档.pdf

networkx2.3官方开发文档,详细的介绍了各种图及相关算法的使用。

2019-05-27

空空如也

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

TA关注的人

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