自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 OpenResty的文件IO操作

OpenResty提供了很好的网络IO能力,甚至高性能的访问MySQL、Memcached 以及 Redis 等能力,但对文件的IO,却缺少高效的封装,只能写原生的lua文件处理函数。也可能是我孤陋寡闻,如果知道OpenResty的文件操作函数,麻烦告诉我一声。为什么OpenResty需要写文件,不是有ngx.log(level,message)函数提供写日志的功能吗?因为有些时候需要对数据进行落盘,只靠ngx.log数据,格式有限,而且与log混在一起,数据不好处理,所以需要单独的写文件功能。

2022-09-20 11:48:56 1535 1

原创 IO的演进

从上图可以看出,阻塞程度:阻塞I/O>非阻塞I/O>多路复用I/O>信号驱动I/O>异步I/O,越往后,阻塞越少,效率是由低到高的。

2022-09-20 11:32:05 286

原创 网上PHP+Redis分布式锁的实现都有问题

除了使用,使用Lua脚本,保证SETNX + EXPIRE两条指令的原子性,我们还可以巧用Redis的SET指令扩展参数!假使执行完setnx加锁,正要执行expire设置过期时间时,进程crash了,那么这个锁就“长生不老”了,别的客户端就永远获取不到锁啦。假设A客户端要去释放锁时,获取完锁的信息后,锁就过期,并且被B客户端获取了锁,A客户端因为得到的是旧数据,以为锁是自己的,会把锁释放掉。这两份代码,虽然解决原子性问题,但是没有解决,任务执行时间超过锁的超时时间,锁过期的,业务还没执行完问题。

2022-09-20 11:05:14 288

原创 关于RSA常见的错误理解

关于RSA常见的错误理解

2022-09-20 11:01:36 525

原创 关于Kafka Producer 的消息丢失,消息重复,消息乱序问题。

一、消息什么时候会丢失?1.异步导致消息丢失:kafka的producer默认是异步的方式,在调用send命令时,只是将消息放入一个缓存队列(RecordAccumulator),同时后台IO线程会不断扫描此缓存队列,将消息封装成batch发送出去。在这个过程中就会存在一个数据丢失的窗口:如果在IO线程发送之前producer端挂掉,存放在缓存队列中的数据就会丢失。解决方法:既然异步存在数据丢失风险,那改为同步就可以,但要明白同步时效率会变差。producer.send("topic_na

2020-11-16 12:06:14 2046

原创 kafka 命令行手动调整offset

使用Kafka bin目录下带有kafka-consumer-groups.sh脚本可随意设置消费者组(consumer group)的offset,设置的前提是:consumer group状态是inactive的,即不能是处于正在工作中的状态。重设位移的流程由下面3步组成:一、确定位移重设策略——当前支持8种设置规则:–to-earliest:把位移调整到分区当前最小位移–to-latest:把位移调整到分区当前最新位移–to-current:把位移调整到分区当前位移–to-offset :

2020-07-14 18:40:24 7395

原创 为什么类不能多继承,而接口可以多继承

**类不能多继承的原因是:**防止两个相同的方法被子类继承,如果是两个相同的继承 既不会知道重写哪个被继承的父类,又不是重载.且会导致方法体合并。接口可以多继承的原因是:当有相同的方法时候 二合一,因为接口里面的方法没有方法体。...

2020-07-13 20:27:15 1512

原创 PySpark集群出错解决记要

一、现象用java写的在spark on yarn 模式下正常。用python写的在spark on local 模式下正常,在spark on yarn 模式下出错。Exception: Randomness of hash of string should be disabled via PYTHONHASHSEED at org.apache.spark.api.python.PythonRunner$$anon$1.read(PythonRDD.scala:193)

2020-07-01 11:49:34 386

原创 flume自定义sink开发——flume clickhouse sink

flume优点之一就是支持插件扩展功能,现在clickhouse流行,数据想直接写入clickhouse,flume官网看不了一样,没有clickhouse sink,没有咱们就自已写呗。网上开发自定义拦截器的文章很多,开发sink的反而找不到,特记录一下,供大家参考。一、开发流程搭建flume开发环境。新建一个类,实现Configurable接口,继承AbstractSink类。重写configure、start、stop、process方法。编译打jar包,放到flume的lib目录下。

2020-06-01 12:33:39 2720 5

原创 CDH hostname名包含下划线致agent启动失败

一、问题现象agent一启动就闪退,日志里没有任务错误信息。二、问题原因hostname命名带了_(下划线)。三、修改hostname后agent正常启动。

2020-05-20 14:22:38 399 1

原创 CDH kudu ImportCsv NoClassDefFoundError 问题解决

一、问题现象:hadoop jar /opt/cloudera/parcels/CDH/jars/kudu-client-tools-1.10.0-cdh6.3.2.jar org.apache.kudu.mapreduce.tools.ImportCsv -Dkudu.master.addresses=cdh001:7051 -Dimportcsv.skip.bad.lines=true '-Dimportcsv.separator=\t' 'id,name' impala::kududb.my_fir

2020-05-20 11:06:39 389 1

原创 有验证集了为什么还要测试集?

测试集与验证集的存在主要是为了把调参与评估泛化能力分为两个相对独立的步骤,体现了正交化思想。验证集一般用于进一步确定模型中的超参数(例如正则项系数、神经网络中隐层的节点个数,k值等),而测试集只是用于评估模型的精确度(即泛化能力)。举个例子:假设建立一个BP神经网络,对于隐含层的节点数目我们并没有很好的方法取确定,此时一般将节点数设为某一具体的值,通过训练出相应的参数后,再由验证集取检测该模型...

2020-04-14 20:03:08 1941

原创 Spark异常Randomness of hash of string should be disabled via PYTHONHASHSEED

一、现象用java写的在spark on yarn 模式下正常。用python写的在spark on local 模式下正常,在spark on yarn 模式下出错。Exception: Randomness of hash of string should be disabled via PYTHONHASHSEED at org.apache.spark.api.p...

2020-04-02 18:50:15 267

原创 释伴:Linux上的shebang符号(#!)

Shebang在Unix系统的脚本第一行开头写,它指明了执行这个脚本文件的解释程序。没有声明shebang,则默认用当前的shell去解释这脚本文件。声明了shebang,但解释程序不存在,或没有执行权限,会报“bad interpreter”错误。声明了shebang,且解释程序存在并有执行权限,但它不是合法的可执行文件,会被忽略,转交给当前shell去解释这个脚本文件。显式指定解释程...

2020-04-01 21:38:35 317

原创 superset连接clickhouse异常处理

问题superset在配置clickhouse Databases时,总是报“User default is not allowed to connect from address xxx.xxx.xxx.xxx”错误。原因经网上查找,是infi.clickhouse_orm组件的版本问题,需要降成1.0.4。解决infi.clickhouse_orm降版本操作:pip uninsta...

2020-04-01 21:34:50 1468 1

原创 关于JMX三个端口的说明

JMX(Java Management Extensions) 是一个为应用程序提供管理功能的框架。也就是应用程序暴露一个端口,可以通过这个端口,查看程序的状态,修改程序的配置。网上关于程序员四个层次,很形象说明JMX的功能。程序新手,配置是写死在程序中,修要修改时就去改代码,然后重新编译发布。程序熟手,配置在文件中(JAVA一般都是properties文件),修要修改时就去修改配置文件,...

2020-04-01 15:46:03 11503 1

原创 PHP正则的递归写法,解决类似括号嵌套问题

业务开发需要把SQL转成Array,在匹配()时,遇到括号里还有括号的情况。原有的正则是这样写的/\([^\)]+\)/当出现括号里还有括号的情况,字段数据解析错误。经过寻找,有一种正则的递归写法,叫Recursive pattern,关键字?R。举个例子/a(?R)*/ 表示/a(正则本身(正则本身).....)*/,也就等于/a(a(a).....)*/表示连续多个a回到括号...

2020-04-01 15:35:33 399

原创 PHP做文件下载服务解决方案

要求:文件有权限验证。文件大小可能会很大。性能要好。传统做法一:直接源始地址下载就是直接给出文件的地址 http://www.xxx.com/file.rar,这种方式最直接,性能好,文件大小无限制,但没办法做权限验证。传统做法二:PHP中转下载例子代码:header("Content-Type:application/octet-stream;charset=utf-8");...

2020-04-01 15:28:46 644

原创 HBase 填坑之RegionServers异常退出2

RegionServers又崩溃了,真是让人头疼。1.日志:2019-11-20 03:47:34,174 INFO [sync.3] wal.FSHLog: Slow sync cost: 464 ms, current pipeline: [DatanodeInfoWithStorage[125.94.213.41:50010,DS-cfd2851f-a298-4976-b0e9-f054...

2020-04-01 15:17:20 2689

原创 HBase 填坑之RegionServers异常退出

用HBase的过程中遇到很多问题,这个问题是最无头绪的,而且影响最大的。记录下来免其他人一样躺坑。1.问题表现RegionServers日志里报NPE,然后程序就退出了,每天不定时出现,晚上任务繁忙时,出现频率更高。2019-11-18 18:24:55,049 ERROR [regionserver/hdpv-014/125.94.213.41:16020-shortCompactions...

2020-04-01 15:07:11 1543

原创 递归遍历寻找地图最短路径算法(js版)

//地图实现class Map {constructor(cities) {this.cities = cities; //保存所有城市this.road = {}; //保存所有城市道路this.res = []; //最短路径结果this.hasRes = false; //是否至少有一个可以到达的路径}addRoad(v, w) {//这里实现道路是否双向,如果只是单向,只...

2020-03-31 20:50:29 1163

原创 CentOS通过yum安装高版本gcc

一、问题在某些应用场景中,需要高版本的gcc支持,编译gcc耗时耗力,这里介绍一种简便的方法。二、解决方案红帽官方Developer Toolset文档地址:https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/8/用红帽官方提供的开发工具包来管理gcc版本,可以做到多版本并存,随时切换,还不破坏原有...

2020-03-30 15:37:00 2348 1

原创 centos6.5安装Node.js时,gcc、glibc版本过低升级

一、Node.js安装1.下载nodewget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz2.解压后安装cd /usr/localmv ~/node-v12.16.1-linux-x64/ ./ln -s ./node-v12.16.1-linux-x64/ ./nodejsecho ‘PATH=$P...

2020-03-30 12:29:29 2332 9

原创 hive分区数据批量导入

1.一般导入分区数据用:INSERT OVERWRITE TABLE target_table PARTITION (store_day=20200303) SELECT column1,column2 FROM source_table WHERE store_day=20200303;但如果有很多个分区,逐个导的话很麻烦,而且每个分区一个job,要执行很多个jpb,效率很低。2.批量...

2020-03-06 15:39:13 2541 1

原创 部署Flume Hive Sink时因jar包版本不匹配引起的错误解决

1.问题现象部署 Flume Hive Sink时,出现的错误在此记录一下。java.lang.NoSuchMethodError: org.apache.hadoop.hive.metastore.HiveMetaStoreClient.2.问题原因这个问题是由于hive-hcatalog-core.jarhive-hcatalog-pig-adapter.jarhive-hc...

2020-03-01 14:40:36 983 1

原创 mac brew 安装 redis客户端 redis-cli

安装第三方库brew tap ringohub/redis-cli更新Homebrew(可有可无)brew update && brew doctor安装redis客户端brew install redis-cli

2020-03-01 14:24:40 4689 1

空空如也

空空如也

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

TA关注的人

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