自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (5)
  • 收藏
  • 关注

原创 Spark低版本适配Celeborn

下载patch,这里下载spark-3版本,将Celeborn_Dynamic_Allocation_spark3_3.patch放至spark-3.3.1源码目录下,和core同一层级,执行如下命令代码合并。Spark-3.5版本以下使用Celeborn时,无法使用动态资源,对于低版本的Spark,Celeborn提供了patch。各版本patch如下。重新编译spark源码,并生成spark tgz包。

2023-12-01 12:08:51 770

原创 flink规则引擎设计思路

在我们的规则引擎里,数据主体通常作为关联数据的主键id,所以在数据预处理阶段,我们需要尽可能的将数据主体梳理全,并补充到数据中。这里就需要介绍下”维度数据“模块。

2023-01-11 20:06:20 2893 1

原创 画像平台全攻略

文章所涉及的业务场景、图片、代码以及相关数据,皆为虚构,酌情参考。

2022-12-29 11:51:47 1702 1

原创 数据平台建设指南(上)

前言年底了,整理了下过去做的一些项目,希望能够给大数据行业的同学提供些大数据平台建设的思路。内容大致分五部分:数据采集,数据存储、数据计算、基础平台以及数据治理篇。由于涉及到的内容较多,打算分成两篇文章,本文主要介绍前四部分,也就是大数据平台相关。文章以介绍思路为主,部分技术细节可以参照文章的链接(后续会逐步完善)。

2022-12-28 17:28:57 1426

原创 数据服务

如下图所示,一个数据应用想要一份数据,首先可以到数据API集市去检索,看看是否有现成的API能够满足需求,如果API集市中已经存在能够满足需求的API,数据应用需求方只需要使用认证凭证发起API请求权限申请(提供QPS,需求场景),并且数据API的提供者完成授权,这样数据应用就完成了数据对接。数据调用无法被追踪?数据开发了生产了很多数据,但随着业务的调整,有些数据会慢慢的被弃用,被弃用的数据是应该进行下线的,同时释放相应的存储和计算资源,但是数据开发根本不知道,数据被哪些应用使用,也就无法下线数据。

2022-10-26 18:07:57 2991

原创 指标归因平台建设思路

在GMV归因例子中,GMV环比下降8%,从“单一维度波动贡献”列表中,得知在“user_type”维度下,波动贡献最大,因此可以点击“+”,从弹框中选择对“user_type”进行下钻,同时勾选需要分析的维度枚举值(“0”,“1”)。在上面例子中,GMV关联指标“活动收入”环比波动较其他关联指标要大的多,显示为红色,这也是分析人员需要重点关注的地方。往常的做法是,对可能影响指标GMV,DAU的维度进行关联、下钻分析,这无疑带来了巨大的工作量,而且效率也低,重要的是整个归因分析思路无法沉淀,同样无法共享。

2022-10-11 16:58:45 1302

原创 指标体系建设的一些思考

OSM是一套业务分析框架,其中“O”代表业务目标(Object),需要我们思考或者回答,我们的业务、产品、甚至是其中的一个小的功能存在的目的是什么、能够解决用户什么问题、满足用户的什么需求?而我们要就是维护好“战略目标”与“指标之间的关系,并根据UJM重新梳理用户旅程,删减或补充指标,同时对这些关联关系进行沉淀,形成相应的指标归因平台,辅助决策者直观、快速的了解产品状态,指导策略调整。核心指标通常指的是比较宏观指标,无论业务形态怎么变化,都会存在的,例如:DAU,GMV,这种指标也是公司决策最关注的指标。

2022-09-22 18:43:55 377

原创 事件流匹配的另类方式

一个用户的行为数据流:"A","B","A","C","B","D","C","A","B","B","C","D",从这段事件流中,用户一共完成两次:ABCD。直接说下实现思路,为了演示方便,这是用系统时间代替时间时间,用户的历史状态保存在内存里,状态的保存方式"0_0_0_0"(ABCD四个事件,初始状态用0表示,后续逐渐替换成实践戳,具体细节看下图)如果有一个实时数据需求:一个用户在指定事件内依次完成了事件A,B,C,D,那就给该用户推送消息。在不使用Flink Cep的情况下,有什么办法呢?....

2022-08-09 19:50:19 621

原创 maxwell timestamp时区问题

maxwell在处理timestamp字段类型时,默认使用utc时间,会差8个小时。尝试修改配置`jdbc_options`和`replication_jdbc_options`,但无法解决问题,参照git

2021-08-25 13:32:32 1078

原创 解决类似java.security.AccessControlException: access denied

报错的完整信息java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "createClassLoader")在 $JAVA_HOME/lib/security/default.policy文件最开头添加grant { permission java.lang.RuntimePermission "createClassLoader";};...

2020-10-29 14:44:43 1033 1

原创 文章相似度计算

先扯闲扯下pyspark环境的问题前端时间在帮助算法组的同学使用spark跑一些模型,因为那边的同学没有使用过spark,且不会scala和java,而他们的诉求是使用python跑一些spark的任务;所以我这边就协助配置了一下python on spark的环境,这个环境配置起来还是挺费劲的;python的环境没有使用conda[为啥没用?个人习惯;但需要注意的是,如果使用conda的话python的版本必须低于3.8],我使用的是自己编译的python-3.6,而且每台hadoop每台机器都需.

2020-10-19 14:30:11 1625 1

原创 使用spark tf-idf 提取文章的关键字

HashingTF无法获得词索引关系,所以tf需要替换成CountVectorizer,具体看代码from pyspark.ml.feature import HashingTF, IDF, Tokenizerfrom pyspark.ml.feature import CountVectorizersentenceData = spark.createDataFrame([ (1, "Hi I heard about Spark Spark".split(" ")), (2,.

2020-09-21 11:14:04 1140

原创 presto catalog 动态加载

最近我们在尝试在k8s上部署presto,现在有一个比较难处理的问题就是:presto的catalog的出现变更的时候(增,删,改),只能重新打包镜像,进行滚动升级;而比较理想的方式是:presto的catalog可以动态的增删改,只在presto版本升级的时候才进行镜像发版;目前公司catalog主要有hive,mysql,kudu这3种类别;hive和kudu的catalog几乎不存在变更的情况,所以我们只需要考虑mysql连接器的变更需求;实现presto catalog的动态加载有两种比较简

2020-08-10 14:17:25 4088

原创 Neo.TransientError.Transaction.DeadlockDetected

最近在倒腾neo4j,在使用多线程方式往neo4j插入关系数据时,有些线程抛出异常:Neo.TransientError.Transaction.DeadlockDetected查了下原因,在创建关系数据时(nodea->nodeb),nodeb(endnode)会被write-lock,当这个节点上了写锁后,其他的线程就会抛出这个异常,解决办法就是让相同的endnode使用同一个线程处理,我这边直接将相同的endnode的相关数据放在了同一个文件,一个线程单独处理一个文件,避免多线程处理统

2020-07-01 10:49:02 2119

原创 kafka topic 删除异常

公司kafka集群是允许删除topic,但是前段时间组里小伙伴有个topic总是删不掉,也不知道他是怎么删的;后来我尝试手动删除zookeeper中的元数据,看看能否删掉这个topic,操作如下rmr /brokers/topics/nginx_clean_error_datarmr /admin/delete_topics/nginx_clean_error_data命令执行了,但是zookeeper目录依旧存在,这就有点奇怪了,查看日志发现这个topic自动重建了,这也就是为什么zookee

2020-05-20 17:16:01 4796 2

原创 flink sql包冲突异常

使用flink on yarn方式提交Flink sql,抛出如下异常org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Unable to instantiate java compiler at org.apache.flink.client.progr...

2020-04-21 14:34:16 16046 5

原创 线上kudu集群优化

公司上线了kudu有段时间了,主要有两个用途:1.实时落地流量日志以便满足灵活的olap查询2.解析mysql binlog日志,生成业务库实时映射表最近发现有张业务库的实时映射表数据查询起来非常慢,随着不断解析插入binlog数据,这张表查询起来越来越慢;由于kudu集群的内存和cpu使用率都不高,就没当回事,解决办法也比较简单粗暴:直接将kudu中的映射表的binlog重...

2020-04-01 13:10:39 7688

原创 从checkpoint恢复flink job

flink使用checkpoint方式保存task的状态,当task失败时,可以从之前checkpoint地方恢复状态;如果说整个应用挂了,如何根据之前checkpoint来恢复应用的状态;首先应用挂了的话,它默认会删除之前checkpoint数据,当然我们可以在代码中设置应用退出时保留checkpoint数据CheckpointConfig config = env.getChec...

2020-03-26 18:26:47 12404 3

原创 kudu master uuid异常修复

线上kudu集群有3个master,无意间发现有个主节点连不上且无法识别,查看主节点页面每个master节点都会有一个唯一标识UUID,并且每个master都会保存master所有节点的uuid,而现在有个master的uuid变更了,而其他的master节点上保存的还是老的uuid;具体什么原因产生的,没办法追溯了,怎么解决?其实就是如何更新现有的活跃的master节点的UUID...

2020-03-25 14:16:19 7687

原创 flink cep pattern动态加载

通常我们在提交一个flink cep任务,流程基本上是:开发,打包,部署;例如我们有一个任务:计算在60秒内,连续两次登陆失败的用户begin("begin").where(_.status=='fail').next("next").where(_.status=="fail").within(Time.seconds(60))然后又来一个任务:计算60秒内,用户登陆失败1次,然后第二...

2020-03-05 11:27:31 13668 14

原创 kafka运维

启动:./bin/kafka-server-start.sh -daemon config/server.properties创建1replica 1 partition 的topic bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic t...

2020-02-11 15:02:24 2024

原创 topic partition leader rebalance

leader rebalance之前,有好几个分区的leader都在broker1上[root@hzv_stat_es1 ~]# kafka-topics.sh --describe --zookeeper localhost:2181 --topic resshows_testTopic:resshows_test PartitionCount:6 ReplicationFactor...

2020-01-17 14:10:32 1224

原创 nio之postion,limit,capacity

postion:当前可读可写的位置capacity:缓冲区容量,初始化后,固定不变limit:缓存区最小不可读写的区域的位置,缓冲区域limit索引以后的区域不可读写(含limit位置)先初始化一个IntBufferIntBuffer intBuffer = IntBuffer.allocate(10);初始化完后,limit等于capacity,也就是指向缓冲区末尾的虚线框位置,po...

2020-01-10 15:19:53 1025

原创 airflow集成ldap问题

airlfow集成ldap默认需要开启ssl/tls,但是配置文件中有没有开关选项,所以只能修改代码,只需要修改一个地方,vi /root/python3/lib/python3.6/site-packages/airflow/contrib/auth/backends/ldap_auth.py,找到ldap_auth.py这个文件中的get_ldap_connection方法修改前 t...

2020-01-09 12:01:28 1933

原创 Specified key was too long; max key length is 767 bytes

初始化azkaban数据库时报这个错误,这个错误在初始化hive元数据时也会出现,老忘记,记录下解决办法set global innodb_large_prefix=1;索引长度超过了767就会报这个错误,默认情况下mysql索引前缀长度限制为767字节,开启长索引前缀后限制为3072字节...

2020-01-02 15:44:12 656

原创 深入理解kerberos票据生命周期

查看当前服务器票据[root@myrepo ~]# klistTicket cache: FILE:/tmp/krb5cc_0Default principal: [email protected] starting Expires Service principal2019-11-27T14:01:44 2019-11-28T14:...

2019-11-27 16:23:18 5751 4

原创 kerberos安全hadoop集群开启高可用

https://docs.cloudera.com/documentation/enterprise/6/latest/topics/cdh_hag_hdfs_ha_config.html开启高可用后,需要修改的地方1.hive相关的所有服务必须全部关闭,然后更新Hive Metastore Namenode如果开启了hive on spark,不更新Hive Metastore Namen...

2019-11-19 10:24:01 906

原创 am-memory,driver-memory,executor-memory

先搞清几个概念:spark 提交任务方式spark 提交任务有两种方式,一种是yarn-client,一种是yarn-cluster,这两种方式的区别就是:yarn-cluster的ApplicationMaster在任一一台NodeManager上启动,此方式ApplicationMaster包含driver,am的内存:driver.memory+driver.memoryOverhea...

2019-10-17 14:34:45 5054 1

原创 连续登录天数计算

最近有个需求,计算用户连续登录的最大天数,查了查网上的解决方案,基本上都没有解决跨月和跨年的情况;废话不多少,先看下登录日志数据表hive.traffic.access_user只有两个字段:uid,day;日期辅助表hive.ods.dim_date,这个表只有一个字段day;先说下思路,uiddayrownumberday-rownumber【days】10120...

2019-09-24 14:03:56 64368 15

原创 [Azkaban] Unable to get scheduled flow triggers问题解决

版本:3.77.0解决办法,删掉executor选择器的过滤条件:MinimumFreeMemory#Multiple Executorazkaban.use.multiple.executors=true#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatusazkaban...

2019-09-12 18:18:46 4941 4

原创 zeppelin集成openldap,以及admin用户设置

之前写过一篇文章集成FreeIPA,今天尝试集成OpenLdap,出现了一些问题,这里记录下配置过程修改zeppelin-site.xml<property> <name>zeppelin.anonymous.allowed</name> <value>false</value> <description>An...

2019-09-05 17:22:22 2292 2

原创 presto sql优化

distinct 与approx_distinctdistinct这种操作会把所有计算集中在一个节点上,速度慢可想而知;如果不是精准计算的话可以考虑使用approx_distinct(x)代替count(distinct x),速度大概能够提升3倍左右,但缺点是approx_distinct有2-3%的误差(官方,有次数据测试误差达到6-7%,这个还和数据整体分布有关),如果没办法接受这个误差,...

2019-08-14 16:33:22 2617

原创 presto on yarn生产实践

presto on yarn方案缺点hadoop集群的jdk版本过低无法满足prestoserver需求配置文件不易维护,特别是如果涉及多个hadoop集群,这点在大公司很常见hadoop集群单独团队维护,自己没有权限创建目录之类的,这个也很常见指定coordinator节点需要使用yarn label,否则每次重启都得找coordinator节点针对上述问题,解决方案如下:hado...

2019-08-07 15:35:20 1889

原创 ClickHouse高可用集群

和一些在使用clickhouse的同学聊了下,有不少中小型公司使用的还是单机版,这点还是出乎意料;可能真的是因为clickhouse秒天秒地的性能,加上数据量不大,数据恢复成本不高,才出此策略;入正题:今天尝试搭建了一个2*2的clickhouse集群,两个分片,每个分片有两个副本,共四个节点,逻辑拓扑图如下hostshardreplicahadoop20101...

2019-07-29 17:22:14 3263

原创 clickhouse可视化Tabix,添加用户密码

Tabix安装官方提供了五种安装方式,这里我们介绍下Embedded和Local这两种方式Embedded这种方式使用的clickhouse内置的服务,直接打开config.xml中http_server_default_response标签的注释就行<http_server_default_response><![CDATA[<html ng-app="SMI2"...

2019-07-26 14:55:02 8767 1

原创 clickhouse install on centos

下载clickhouse repocurl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash查看clickhouse rpm包[root@ipa clickhouse-server]# sudo yum list 'clickhouse*'Loade...

2019-07-16 10:59:44 1254

原创 kudu异常:Server connection negotiation failed: server connection

异常信息:W0708 10:36:45.122157 16043 negotiation.cc:320] Unauthorized connection attempt: Server connection negotiation failed: server connection from x.x.x.x:24262: authentication token expired原因:kudu中缺...

2019-07-15 10:17:44 3567

原创 实时数仓设计之mysql binlog

maxwell启动的时候指定需要同步的表,因为并不是所有的表都需要同步到实时数仓,指定表可以大大的减少发送到kafka的数据量,启动命令例子:./bin/maxwell --user=root --password=123456 --host=127.0.0.1 --producer=stdout --client_id test1 \--replica_server_id 1 --filt...

2019-06-13 14:14:40 1285

原创 hadoop集成kerberos后,报org.apache.hadoop.security.AccessControlException

报错信息:[root@hadoop001 qun]# hdfs dfs -ls /19/05/29 18:06:15 WARN ipc.Client: Exception encountered while connecting to the server : org.apache.hadoop.security.AccessControlException: Client cannot au...

2019-05-29 18:14:23 7369

原创 kerberos集成ldap

注意:在安装过程中一定要注意目录/var/lib/ldap和/etc/openldap/slapd.d这两个目录权限,集成过程中很多问题都是因为这两个目录权限设置错误引起的;因为安装的时候需要使用root账户,生成的配置文件不经意间就被改成了root;所以出现问题第一步就检查这两个目录权限chown -R ldap:ldap /etc/openldap/slapd.d && ch...

2019-05-29 13:12:00 2673 1

leetcode大全

leetcode 刷题面试必备

2018-10-10

iphone消息推送APNS

用https实现iphone消息推送,短连接形式 有问题,请留言

2013-05-24

构建高性能的大型分布式Java应用

构建高性能的大型分布式Java应用

2013-05-21

nosql之MOngoDB,java测试类,涵盖常用方法

nosql之MOngoDB,java测试类,涵盖常用方法

2013-05-21

FastDFS安装文档以及测试类,redis单点故障解决方案之keepalived

FastDFS安装文档以及测试类,redis单点故障解决方案之keepalived, 测试通过,有问题即时沟通

2013-05-21

空空如也

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

TA关注的人

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