摘要: 阅读全文
posted @ 2022-11-07 16:10 niutao 阅读(45) 评论(0) 推荐(0) 编辑
摘要: spark sql 执行的流程图: SQL 语句经过 SqlParser 解析成 Unresolved LogicalPlan; 使用 analyzer 结合数据数据字典 (catalog) 进行绑定, 生成 resolved LogicalPlan; 使用 optimizer 对 resolved 阅读全文
posted @ 2022-07-22 18:51 niutao 阅读(2561) 评论(6) 推荐(2) 编辑
摘要: 先说结论:要把hive上的bitmap数据同步到clickhouse的bitmap里面 参考连接: https://blog.csdn.net/nazeniwaresakini/article/details/108166089 https://blog.csdn.net/qq_27639777/a 阅读全文
posted @ 2021-12-14 17:25 niutao 阅读(3574) 评论(0) 推荐(0) 编辑
摘要: 背景: 服务器个数:ck小集群4台 单台服务器内存:256G CPU:48核 bitmap存储结构,一条数据大概在2M左右 表的结构如下: CREATE TABLE yiche_index.dms_pds_user_dvid_interest_bitmap ( `dt` LowCardinality 阅读全文
posted @ 2021-11-17 14:53 niutao 阅读(2278) 评论(1) 推荐(1) 编辑
摘要: 阅读全文
posted @ 2021-11-10 19:44 niutao 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 1、什么是bitmap bitmap的介绍:https://www.cnblogs.com/cjsblog/p/11613708.html 2、Clickhouse的RoaringBitmap介绍 https://blog.csdn.net/yizishou/article/details/7834 阅读全文
posted @ 2021-09-29 11:57 niutao 阅读(3480) 评论(0) 推荐(0) 编辑
摘要: 1、展示一下order by 在上亿级别数据量有多慢 对于clickhouse来说,当表的基础大到亿级别, 如果做查询后,在做order by 速递是非常慢的; 比如我有一张表有3亿条数据,表结构是: { dvid 设备ID , json 每个设备的信息 , dt 时间 , filter 过滤条件 阅读全文
posted @ 2021-09-19 22:50 niutao 阅读(7567) 评论(2) 推荐(0) 编辑
摘要: 背景: 一个切词、一个自然语言处理 原算法程序情况: 切词程序.py :每次读取数据,需要从数仓把数据文件拉取出来,然后手动导给算法同学处理 , 然后算法同学本地笔记本跑数据,得到切词数据 自然语言处理.py : 依赖上一个切词程序的结果数据,然后做情感分析。得到结果后,在手动导入数仓 问题: 1) 阅读全文
posted @ 2021-08-24 11:38 niutao 阅读(938) 评论(0) 推荐(0) 编辑
摘要: namenode在管理元数据层面,除了去维护内存中的目录树以外,还需要维护磁盘上的元数据; 但是: 我们在做大数据的时候,都知道在服务器的处理速度中,它有一个金字塔模型: 最慢的处理速度就是本地磁盘和二级存储; 但是我们生产环境中namenode可以说是整个集群的中心,我们会在hadoop的基础上提 阅读全文
posted @ 2021-04-16 15:03 niutao 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 公司前期做智能营销,其中有一个基于标签全选人群的操作,让广告主能看到在当前标签条件下,能够全选多少人群,从而做到最大投放收益效果 1、产品背景 公司要实现一套基于标签的投放平台;主要想基于广告主给定的标签来圈定人群。然后在将广告投放出去,达到精准投放的效果; 2、页面产品 页面大概涨这个样子: 3、 阅读全文
posted @ 2021-02-19 19:58 niutao 阅读(1614) 评论(2) 推荐(0) 编辑
摘要: 上一篇:基于calcite做傻瓜式的sql优化(二) 上一篇说到的是Hive是如何对sql进行解析,生成ASTNode 那么Hive拿到ASTNode之后,就会触发:BaseSemanticAnalyzer.analyze这个方法; 这个方法非常的重要,从AST到task的生成这一系列的操作,都会在 阅读全文
posted @ 2020-11-23 23:34 niutao 阅读(3449) 评论(4) 推荐(2) 编辑
摘要: 上一篇:基于calcite做傻瓜式的sql优化(一) 因为主要想借助hive的思路来实现对sql的优化,所以这一篇主要是梳理一条sql在hive内部大概是什么样的生命周期 首先通过一张图看下,内部sql大概执行流: sql经过一系列的规则处理后,最后变成task tree,然后mapreduce通过 阅读全文
posted @ 2020-11-23 21:42 niutao 阅读(2944) 评论(0) 推荐(0) 编辑
摘要: 我们要做的事情大概分3步: 1、需求的描述(主要把问题点抛出来) 2、解决如何优化sql性能的问题(hive关于一条sql的生命周期源码的分析),也就是如何对你的sql进行RBO和CBO的优化 3、解决如何自动识别sql元数据的问题(antlr关于如何深度优先遍历语法树) 背景: 我们有一套智能中台 阅读全文
posted @ 2020-11-15 22:53 niutao 阅读(2026) 评论(0) 推荐(3) 编辑
摘要: 负责的一个任务平台项目的spark版本是1.6.1的,主要变成语言是python; 现阶段要把spark从1.6.1 直接 升级到2.4.6版本,这期间遇到很多问题,特此记录: 1、语法兼容问题 数据平台任务会分成天任务、小时任务,我们会把处理后的数据写入到hive的表里面(分区里面) 比如: 1. 阅读全文
posted @ 2020-09-25 19:03 niutao 阅读(1345) 评论(2) 推荐(1) 编辑
摘要: 先说历史情况: 在spark2.0版本之前(比如1.6版本),spark sql如果读取csv格式数据,要导入: <dependency> <groupId>com.databricks</groupId> <artifactId>spark-csv_2.11</artifactId> </depe 阅读全文
posted @ 2020-09-15 18:05 niutao 阅读(1748) 评论(0) 推荐(0) 编辑
摘要: 1、spark的ThriftServer介绍 spark的thriftServer是在hiveServer2基础上实现的 , 提供了Thrift服务 ,也就是提供了远程的ODBC服务 用户画像,对受众目标进行筛选 , 数据源是在hive数仓的; 早期直接通过hive on spark的方式去做处理 阅读全文
posted @ 2020-04-02 22:22 niutao 阅读(1381) 评论(0) 推荐(0) 编辑
摘要: 代码流程: NameNode.main() // 入口函数 |——createNameNode(); // 通过new NameNode()进行实例化 |——initialize(); // 方法进行初始化操作 |——startHttpServer(); // 启动HttpServer |——loa 阅读全文
posted @ 2020-04-02 22:00 niutao 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 首先Namenode启动的总体流程大概是这样的: NameNode.main() // 入口函数 |——createNameNode(); // 通过new NameNode()进行实例化 |——initialize(); // 方法进行初始化操作 |——startHttpServer(); // 阅读全文
posted @ 2020-03-31 23:58 niutao 阅读(843) 评论(0) 推荐(0) 编辑
摘要: 阅读源码第一步是要编译源码; 源码版本:hadoop2.6+ ~ hadoop2.7 这个范围均可,改动不是特别大 编译源码教程连接:https://www.jianshu.com/p/a66ab0235fb9 https://www.cnblogs.com/hequn/articles/48396 阅读全文
posted @ 2020-03-31 23:34 niutao 阅读(1996) 评论(0) 推荐(0) 编辑
摘要: 如何让sparkSQL在对接mysql的时候,除了支持:Append、Overwrite、ErrorIfExists、Ignore;还要在支持update操作 1、首先了解背景 spark提供了一个枚举类,用来支撑对接数据源的操作模式 通过源码查看,很明显,spark是不支持update操作的 2、 阅读全文
posted @ 2019-11-07 00:48 niutao 阅读(9220) 评论(1) 推荐(1) 编辑
摘要: 环境: kafka 0.10 spark 2.1.0 zookeeper 3.4.5-cdh5.14.0 公司阿里云测试机,十月一放假前,没有在继续消费,假期过后回来再使用spark streaming消费某个消费组下的kafka时报错如下: As I regularly kill the serv 阅读全文
posted @ 2019-10-11 15:48 niutao 阅读(2000) 评论(0) 推荐(0) 编辑
摘要: 场景:重构spark 2.1版本的sql语法。因此 需要使用antlr; 前期准备:idea安装了antlr插件(antlr的4.7.2版本) 因此在maven工程中添加了antlr的依赖: <dependency> <groupId>org.antlr</groupId> <artifactId> 阅读全文
posted @ 2019-10-08 13:40 niutao 阅读(10658) 评论(0) 推荐(0) 编辑
摘要: 执行后程序报错: libc.so.6: version GLIBC_2.14 not found 这种情况是因为当前服务器glibc的版本比较低造成的(不出意外是glibc_2.12是最高版本); 1、首先通过命令查看服务器的glibc的版本 strings /lib64/libc.so.6 |gr 阅读全文
posted @ 2019-09-06 16:17 niutao 阅读(1136) 评论(0) 推荐(1) 编辑
摘要: 背景: 网约车预约单查询: 这里面恶心的地方是: 1个时间窗口要查询6种时间:推送订单时间(来自mongodb)、有效抢单时间(来自mongodb)、抢单成功时间(实时kafka)、取消订单时间(实时kafka)、到达目的地时间(实时kafka)、支付时间(实时kafka) 根据现实的业务情况,乘客 阅读全文
posted @ 2019-08-20 22:02 niutao 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: INSERT INTO maxwell.bootstrap (database_name, table_name,where_clause) VALUES ('och_prd', 'order_info_201907','create_time >= '2019-07-18''); INSERT I 阅读全文
posted @ 2019-07-30 22:10 niutao 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 场景: 希望使用phoenix做查询服务,给服务端提供接口 设计: 通过springboot做restful的接口发布,通过mybatis做phoenix的sql处理,因此是springboot+mybatis+phoenix的集成方案; 但是会遇到一个坑! 我是华丽的分割线 先简单汇报下场景: 做 阅读全文
posted @ 2019-07-23 21:23 niutao 阅读(2719) 评论(8) 推荐(0) 编辑
摘要: 场景: 一套自己编译的Hbase集群 A 一套自己通过cloudera平台搭建的Hbase集群 B 注意:( 我的两套集群是同一个网段的) 方式1:通过快照方式进行数据迁移(不需要提前建表) 1):首先现在老集群A上进行快照制作(hbase命令行) hbase> snapshot '要快照的表名ta 阅读全文
posted @ 2019-07-20 17:45 niutao 阅读(1630) 评论(0) 推荐(0) 编辑
摘要: 1:创建表 create 'MY_TABLE', 'CF1','CF2' 2:在hbase上插入一条数据 put 'MY_TABLE','1' ,'CF1:V1', 'uwo1' 3:在phoenix上创建视图 create view MY_TABLE (PK varchar primary key 阅读全文
posted @ 2019-07-09 14:27 niutao 阅读(997) 评论(1) 推荐(0) 编辑
摘要: 往常maxwell是正常跑的,但是突然今天报错: Couldn't find table 'violation_info' in database och_evcard_data 而且这个库和这个表,可以肯定的是,完全不是自己想要的(在include中过滤出来的) 解决: 进入mysql的Maxwe 阅读全文
posted @ 2019-07-03 18:32 niutao 阅读(1033) 评论(0) 推荐(2) 编辑
摘要: 使用protobuf生产模板代码,使用的版本是: <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.6.1</version> </depende 阅读全文
posted @ 2019-07-02 18:38 niutao 阅读(5593) 评论(1) 推荐(0) 编辑
摘要: 冲突的地放其实很多,大概都是类似,找不到哪个方法了: 类似于: Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 19/0 阅读全文
posted @ 2019-07-02 16:29 niutao 阅读(9038) 评论(0) 推荐(0) 编辑
摘要: 在struct streaming提供了一个类,用来监听流的启动、停止、状态更新 StreamingQueryListener 实例化:StreamingQueryListener 后需要实现3个函数: abstract class StreamingQueryListener { import S 阅读全文
posted @ 2019-05-30 15:26 niutao 阅读(1557) 评论(0) 推荐(0) 编辑
摘要: spark sql中有一个类: org.apache.spark.sql.internal.SharedState 它是用来做: 1、元数据地址管理(warehousePath) 2、查询结果缓存管理(cacheManager) 3、程序中的执行状态和metrics的监控(statusStore) 阅读全文
posted @ 2019-05-23 23:33 niutao 阅读(549) 评论(0) 推荐(0) 编辑
摘要: 因为做了cdh的迁移,启动后所有服务都是正常执行,不影响操作,但是尴尬的是,页面上的图表监控不见了 这种情况的根本原因就是: Host Monitor和Service Monitor服务失效! 解决: 去主节点中的/var/lib目录,然后删掉:cloudera-host-monitor , clo 阅读全文
posted @ 2019-05-23 09:51 niutao 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 组件:cdh5.14.0 spark是自己编译的spark2.1.0-cdh5.14.0 第一步:确认spark-defaults.conf中添加了如下配置: spark.shuffle.service.enabled true //启用External shuffle Service服务 spar 阅读全文
posted @ 2019-05-09 10:41 niutao 阅读(1634) 评论(0) 推荐(0) 编辑
摘要: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments.hand 阅读全文
posted @ 2019-05-08 15:05 niutao 阅读(1721) 评论(0) 推荐(0) 编辑
摘要: 现象: + + + + + + + + + + + + + + +|totalCount|January|February|March|April| May|June|July|August|September|October|November|December|totalMileage|+ + + 阅读全文
posted @ 2019-05-07 12:46 niutao 阅读(1039) 评论(1) 推荐(0) 编辑
摘要: 错误大概这样: Caused by: java.util.concurrent.ExecutionException: Boxed Error Caused by: java.lang.UnsatisfiedLinkError: /opt/cdh/hadoop-2.6.0-cdh5.14.0/tmp 阅读全文
posted @ 2019-05-06 10:23 niutao 阅读(1379) 评论(0) 推荐(0) 编辑
摘要: 自定义sparkSQL数据源的过程中,需要对sparkSQL表的schema和Hbase表的schema进行整合; 对于spark来说,要想自定义数据源,你可以实现这3个接口: BaseRelation 代表了一个抽象的数据源。该数据源由一行行有着已知schema的数据组成(关系表)。 TableS 阅读全文
posted @ 2019-05-01 23:34 niutao 阅读(1615) 评论(1) 推荐(1) 编辑
摘要: op.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) at org.apache.hadoop.yarn.server.nodemanager.conta 阅读全文
posted @ 2019-04-29 20:10 niutao 阅读(738) 评论(0) 推荐(0) 编辑