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包。
数据平台建设指南(上) 前言年底了,整理了下过去做的一些项目,希望能够给大数据行业的同学提供些大数据平台建设的思路。内容大致分五部分:数据采集,数据存储、数据计算、基础平台以及数据治理篇。由于涉及到的内容较多,打算分成两篇文章,本文主要介绍前四部分,也就是大数据平台相关。文章以介绍思路为主,部分技术细节可以参照文章的链接(后续会逐步完善)。
数据服务 如下图所示,一个数据应用想要一份数据,首先可以到数据API集市去检索,看看是否有现成的API能够满足需求,如果API集市中已经存在能够满足需求的API,数据应用需求方只需要使用认证凭证发起API请求权限申请(提供QPS,需求场景),并且数据API的提供者完成授权,这样数据应用就完成了数据对接。数据调用无法被追踪?数据开发了生产了很多数据,但随着业务的调整,有些数据会慢慢的被弃用,被弃用的数据是应该进行下线的,同时释放相应的存储和计算资源,但是数据开发根本不知道,数据被哪些应用使用,也就无法下线数据。
指标归因平台建设思路 在GMV归因例子中,GMV环比下降8%,从“单一维度波动贡献”列表中,得知在“user_type”维度下,波动贡献最大,因此可以点击“+”,从弹框中选择对“user_type”进行下钻,同时勾选需要分析的维度枚举值(“0”,“1”)。在上面例子中,GMV关联指标“活动收入”环比波动较其他关联指标要大的多,显示为红色,这也是分析人员需要重点关注的地方。往常的做法是,对可能影响指标GMV,DAU的维度进行关联、下钻分析,这无疑带来了巨大的工作量,而且效率也低,重要的是整个归因分析思路无法沉淀,同样无法共享。
指标体系建设的一些思考 OSM是一套业务分析框架,其中“O”代表业务目标(Object),需要我们思考或者回答,我们的业务、产品、甚至是其中的一个小的功能存在的目的是什么、能够解决用户什么问题、满足用户的什么需求?而我们要就是维护好“战略目标”与“指标之间的关系,并根据UJM重新梳理用户旅程,删减或补充指标,同时对这些关联关系进行沉淀,形成相应的指标归因平台,辅助决策者直观、快速的了解产品状态,指导策略调整。核心指标通常指的是比较宏观指标,无论业务形态怎么变化,都会存在的,例如:DAU,GMV,这种指标也是公司决策最关注的指标。
事件流匹配的另类方式 一个用户的行为数据流:"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的情况下,有什么办法呢?....
maxwell timestamp时区问题 maxwell在处理timestamp字段类型时,默认使用utc时间,会差8个小时。尝试修改配置`jdbc_options`和`replication_jdbc_options`,但无法解决问题,参照git
spark消费kafka的两种方式 转载:http://blog.csdn.net/wisgood/article/details/51815845Spark-Streaming获取kafka数据的两种方式Receiver与Direct一、基于Receiver的方式这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实现的。receiver从Kafka中获取的数据...
python调用jar 下载jpypegit clone https://github.com/originell/jpype.git/home/work/soft/python/bin/python setup.py install被调用的jar/home/work/soft/common-utils-1.0-SNAPSHOT.jar测试:import os.path from jp...
MapReduce读取sequencefile文件 博客地址:http://www.fanlegefan.com 文章地址:http://www.fanlegefan.com/index.php/2017/08/18/mapreducesequencefile/创建sequencefile格式hive表create table test_seqencefile(name string,age int) stored as SEQUENCEFILE
[Azkaban] Unable to get scheduled flow triggers问题解决 版本:3.77.0解决办法,删掉executor选择器的过滤条件:MinimumFreeMemory#Multiple Executorazkaban.use.multiple.executors=true#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatusazkaban...
zeppelin集成openldap,以及admin用户设置 之前写过一篇文章集成FreeIPA,今天尝试集成OpenLdap,出现了一些问题,这里记录下配置过程修改zeppelin-site.xml<property> <name>zeppelin.anonymous.allowed</name> <value>false</value> <description>An...
hdfs磁盘均衡 背景:之前hdfs磁盘使用率已经达到了80%以上,所以对每台机器增加了3块1TB的硬盘,加完硬盘后立马对集群进行了一次Balancer,各个节点数据总量确实得到均衡,但是各个磁盘数据并没有想象中均匀分布,新磁盘的数据很少,大部分数据还是分布在老磁盘上,就像下边[hdfs@hadoop3 ~]$ df -hlFilesystem Size Used Avail Use% Mount...
解决类似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";};...
文章相似度计算 先扯闲扯下pyspark环境的问题前端时间在帮助算法组的同学使用spark跑一些模型,因为那边的同学没有使用过spark,且不会scala和java,而他们的诉求是使用python跑一些spark的任务;所以我这边就协助配置了一下python on spark的环境,这个环境配置起来还是挺费劲的;python的环境没有使用conda[为啥没用?个人习惯;但需要注意的是,如果使用conda的话python的版本必须低于3.8],我使用的是自己编译的python-3.6,而且每台hadoop每台机器都需.
使用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,.
presto catalog 动态加载 最近我们在尝试在k8s上部署presto,现在有一个比较难处理的问题就是:presto的catalog的出现变更的时候(增,删,改),只能重新打包镜像,进行滚动升级;而比较理想的方式是:presto的catalog可以动态的增删改,只在presto版本升级的时候才进行镜像发版;目前公司catalog主要有hive,mysql,kudu这3种类别;hive和kudu的catalog几乎不存在变更的情况,所以我们只需要考虑mysql连接器的变更需求;实现presto catalog的动态加载有两种比较简
Neo.TransientError.Transaction.DeadlockDetected 最近在倒腾neo4j,在使用多线程方式往neo4j插入关系数据时,有些线程抛出异常:Neo.TransientError.Transaction.DeadlockDetected查了下原因,在创建关系数据时(nodea->nodeb),nodeb(endnode)会被write-lock,当这个节点上了写锁后,其他的线程就会抛出这个异常,解决办法就是让相同的endnode使用同一个线程处理,我这边直接将相同的endnode的相关数据放在了同一个文件,一个线程单独处理一个文件,避免多线程处理统