![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
文章平均质量分 70
L13763338360
这个作者很懒,什么都没留下…
展开
-
小表join顺序和广播问题
小表join顺序和广播问题原创 2022-11-07 19:03:25 · 1074 阅读 · 0 评论 -
spark广播导致的问题
spark广播导致的问题原创 2022-11-02 17:21:06 · 1564 阅读 · 0 评论 -
spark-sql: insert overwrite分区表问题
spark-sql: insert overwrite分区表问题原创 2022-11-02 16:39:06 · 4045 阅读 · 0 评论 -
kafka限流导致spark写异常
最近上线一个业务,大量数据从hive加工后,写入kaka。规模:200+任务spark任务并发数量:30每个spark任务vocres:20运行一段时间后,抛出异常。原创 2022-10-07 14:28:42 · 1115 阅读 · 0 评论 -
hudi更新失败
Caused by: org.apache.hudi.exception.HoodieException: (Part -) field not found in record原创 2022-09-03 22:46:20 · 1903 阅读 · 0 评论 -
zookeeper提示包太大问题
现象描述beeline访问zookeeper报错beeline报错(base) -bash-4.2$ ./beeline -u 'jdbc:hive2://10.169.49.131:2181/default?spark.yarn.queue=szopam-test;username=leon'Connecting to jdbc:hive2://10.169.49.131:2181/default?spark.yarn.queue=szopam-test;username=leon21/1原创 2021-11-12 18:31:47 · 4433 阅读 · 0 评论 -
yarn相关常见知识点
1. YARN架构1.1 ResourceManager整个集群资源的主要协调者和管理者,负责给用户提交的所有应用程序分配资源。1.2 NodeManager每个节点的管理者,主要负责该节点内所有容器的生命周期管理,监视资源和跟踪节点健康。1.3 ApplicationMaster在用户提交一个应用程序时,yarn会启动一个轻量级的进程ApplicationMaster负责协调来自RM的资源,通过NM监视容器内资源的使用情况。...原创 2021-09-15 20:29:36 · 823 阅读 · 0 评论 -
hadoop四种集群模式
1Single Node Cluster伪分布式模式(单机模式)。将hadoop安装在一台机器上,通过进程来模拟各主机节点的协作和运行,其可靠性、稳定性都是非常差的,并且具备糟糕的性能效率,一般只是用来开发调试。2Full Distributed Cluster完全分布式集群模式。将hadoop部署在至少两台机子上,数据块副本的数量通常也设置为2以上。 特点:该模式的集群,无论规模多大,只拥有1台Namenode节点,且也是唯一Activ...原创 2021-09-15 09:38:13 · 1388 阅读 · 0 评论 -
Lamda架构和Kappa构架对比
优点 缺点 Lambda 1、架构简单 2、结合离线批处理和实时流处理的优点 4、稳定且实时计算成本可控 5、离线数据易于订正 1、实时、离线数据很难保持一致结果 2、需要维护两套系统 Kappa 1、流批一体,维护一套代码 2、统一口径,无需离线实时数据合并 1、强依赖消息中间件缓存能力 2、实时数据处理时存在丢失数据可能...原创 2021-08-19 20:07:53 · 220 阅读 · 0 评论 -
用户画像分类及验证
1. 用户画像分类基于日常业务,用户画像大概分三大类:基本信息画像、用户行为画像、用户分群画像。1.1 基本信息画像主要包含用户基本信息性别 年龄 地区 职业 学历 收入 有房 有车 ……1.2 用户行为画像消费行为 消费能力 消费内容 支付方式 消费时间偏好 …… 社交行为 加群行为 关注行为 互动行为 …… 1.3 用户分群画像此类画像基于统计方法(聚类)将同类型用户划为一类,根据不同业务需求,群体特征也不尽相同。风原创 2021-08-18 19:55:22 · 2317 阅读 · 0 评论 -
Mapreduce的排序
1. Mapreduce排序排序是MapReduce的灵魂,MapReduce在Map和Reduce的两个阶段当中,都在反复地执行排序。1.1 全局排序排序分为全局排序、部分排序、二次排序、辅助排序。全局排序,就是在一个MapReduce程序产生的输出文件中,所有的结果都是按照某个策略进行排序的,例如降序还是升序。MapReduce只能保证一个分区内的数据是key有序的,一个分区对应一个reduce,因此只有一个reduce就保证了数据全局有序,但是这样又不能用到Hadoop集群的优势。1.原创 2021-08-16 14:15:16 · 4584 阅读 · 0 评论 -
presto源码修改升级问题
修改了presto-main的源码,在测试环境单个节点上测试也没有问题。因为只影响主节点上的功能,所以只更新了主节点上jar包,重启主节点后,发现所有从节点都丢失了,jps查看进程是正常的 web ui是正常的;恢复成原来的jar包,又正常 了。来回试了三次,都一个样。初步怀疑presto节点之前通信,要求的某些唯一的id,确保所有节点上的id都相同才行,只更新了主节点的包,其他从节点的包没更新,就会导致无法通信。看看主节点presto-main包更新前的web ui再看看主节点pres原创 2020-05-13 20:45:42 · 361 阅读 · 3 评论 -
Hive 3.0新特性简介
1. 执行引擎MR变更为TEZApache TEZ是一个针对Hadoop数据处理应用程序的分布式计算框架,基于Yarn且支持DAG作业的开源计算框架。 Apache TEZ的核心思想是将Map和Reduce拆分成若干子过程,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,分解后可以灵活组合成一个大的DAG作业。 Apache TEZ提供了较低级别的抽象,为了原创 2020-06-29 10:51:36 · 8048 阅读 · 0 评论 -
python操作influxdb插入数据失败问题
最近做实时和离线数据监控,对比离线和实时的数据量是否一致,用python调用第三方influxdb包插入到influxdb时序数据库,碰到一些问题。influxdb的表叫measurements,不需要创建,只要插入数据,会自动生成。python插入inluxdb代码大概如下from influxdb import InfluxDBClientclient = InfluxDBClient(host='xxx.xxx.xxx.xxx', port=8086, username='', pas原创 2020-06-23 16:13:59 · 1879 阅读 · 0 评论 -
mapreduce、tez和spark三者比较
MapReduceMapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。TezTez是Apache开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一原创 2020-06-23 00:16:21 · 2640 阅读 · 0 评论 -
Parquet和Orc存储格式对比
两者主要共性都是apache顶级项目,都是高性能的列式存储格式 Parquet和Orc都是以二进制方式存储的,所以不可以直接读取 支持的编码格式(游程,字典,增量,bit),压缩格式(zlib,snappy,LZO等等)基本一致两者主要差异摘自网上的两张图,基本概括了Parquet和Orc两种存储格式的主要差异...原创 2020-06-22 23:49:54 · 1136 阅读 · 0 评论 -
spark和presto比较
一般来说,很难说Presto肯定比Spark SQL更快或更慢,取决于您正在执行的查询类型,环境和引擎调整参数。关于presto和spark sql对比的文章很少,主要原因是Presto没有那么主流,但已用用了presto,那就有必要研究一下。相同点presto和spark都是MPP架构的系统(Presto/Impala/SparkSQL/Drill等),有很好的数据量和灵活性支持,都是基于内存(spark基于内存和磁盘),但是对响应时间是没有保证的。当数据量和计算复杂度增加后,响应时间会变慢,从秒原创 2020-06-13 14:13:26 · 7566 阅读 · 8 评论 -
solr和elasticsearch
lucence简介Lucene是apache软件基金会一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。lucence特点独立于应用平台的索引文件:Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同原创 2020-06-13 11:25:38 · 238 阅读 · 0 评论 -
hbase的key设计原则和实践方法
1. 三大原则1.1长度原则rowkey是一个二进制码流,可以为任意字符串,最大长度为64kb,实际应用中一般为10-100bytes,它以byte[]形式保存,一般越短越好,不要超过16个字节,注意原因如下:目前操作系统都是64位系统,内存8字节对齐,控制在16字节,8字节的整数倍利用了操作系统的最佳特性。 hbase将部分数据加载到内存当中,如果rowkey过长,内存的有效利用率就会下降。1.2 散列原则如果rowkey按照时间戳的方式递增,不要将时间放在二进制码的前面,建议将ro.原创 2020-06-09 14:18:20 · 579 阅读 · 0 评论 -
zookeeper的一些常见知识点
Zookeeper架构图数据一致性zookeeper是通过zab协议来保持数据一致性。ZAB协议包括2个阶段:leaderelection阶段和Atomicbroadcast阶段。leaderelection阶段:当leader崩溃或者leader失去大多数的follower时,需要重新选举出一个新的leader,(使用选举算法,少数服从多数)让所有的服务器都恢复到一个正确的状态。 Atomicbroadcast阶段:当leader被选举出来,且大多数服务器完成了和leader...原创 2020-06-03 21:41:35 · 238 阅读 · 0 评论 -
Mapreduce具体执行过程分析
MapReduce执行过程MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示Mapper任务执行过程每个Mapper任务是一个java进程,它会读取HDFS中的文件,解析成很多的键值对,经过我们覆盖的map方法处理后,转换为很多的键值对再输出,整个Mapper任务的处理过程又可以分为以下几个阶段,如图所示。 第一阶段是把输入文件按照一定的标准分片 (InputSpl.原创 2020-06-01 15:27:08 · 272 阅读 · 0 评论 -
presto主节点启动异常问题
问题描述presto集群有几十个节点,修改了功能,需要拿几台节点验证一下。选择一个从节点作为主节点,修改了配置,但发现服务启动后一直报错:Service announcement failed2020-05-25T15:05:03.664+0800 INFO main Bootstrap cassandra.load-policy.use-token-aware false false2020-05-25...原创 2020-05-25 16:03:51 · 2885 阅读 · 1 评论 -
分布式事务:二阶段、三阶段、TTC
二阶段提交二阶段提交,是指将事务提交分成两个部分:准备阶段和提交阶段。事务的发起者称之为协调者,事务的执行者称为参与者。阶段一:准备阶段由协调者发起并传递带有事务信息的请求给各个参与者,询问是否可以提交事务,并等待返回结果。各个参与者执行事务操作,将Undo和Redo放入事务日志中(但是不提交)如果参与者执行成功就返回YES(可以提交事务),失败NO(不能提交事务)阶段二:提交阶段 提交事务:(所有参与者均反馈YES) 协调者向所有参与者发出正式提交事务的请求(即Commit请原创 2020-05-21 14:48:30 · 2942 阅读 · 1 评论 -
解决ORC元数据片段超过protobuf message大小限制问题
问题描述用datax将数据从业务库同步到数仓,hive表采用的是orc存储格式。业务表数据量比较大,4000多万,表有点复杂,表字段超过100个。花了3个小时左右同步完,select count(*)统计表数据量时报错,如下Diagnostic Messages for this Task:Error: java.io.IOException: java.lang.reflect.In...原创 2020-05-06 18:58:41 · 3440 阅读 · 0 评论 -
数据分析常用三种方法
数据分析常用三种方法:趋势分析、对比分析、细分分析1. 趋势分析趋势分析般而言,适用于产品核心指标的长期跟踪,比如,点击率,GMV,活跃用户数等。做出简单的数据趋势图,并不算是趋势分析,趋势分析更多的是需要明确数据的变化,以及对变化原因进行分析。趋势分析,较好的产出是比值。在趋势分析的时候需要明确几个概念:环比,同比,定基比。环比:是本期统计数据与上期比较,例如2月份与1月份相比较...原创 2020-04-28 09:31:59 · 2085 阅读 · 0 评论 -
hive常见行列转换示例
1. 列转行举例select * from xy_temp.leon_test;+------+--------+--+| uid | tag |+------+--------+--+| 1 | 1,2,3 |+------+--------+--+1 row selected (0.818 seconds)列转行> select>...原创 2020-04-27 22:43:24 · 203 阅读 · 0 评论 -
hive窗口函数rank()/dense_rank()/row_number()的区别
hive中一般取top n时,都会用到row_number(),rank,dense_ran()这三个函数,row_number()、rank()、dense_rank()三个函数相当于group by之后再来个order by。例1有三列数据,商品id、商品名称product、销售金额amount,数据如下id product amount1 a 102 a 1...原创 2020-04-27 22:12:53 · 323 阅读 · 0 评论 -
分布式订ID生成策略
基于数据库基于雪花算法基于redis实现各种方案对比原创 2020-04-07 15:00:51 · 102 阅读 · 0 评论 -
三种常见分布式锁实现方案
基于redis实现基于zookeeper实现分布式锁应用场景原创 2020-04-07 13:03:50 · 490 阅读 · 0 评论 -
分布式一致性算法和常见协议
基本概念term——一个任期的编号index——在一个term内的序号,一般是连续递增的message——分布式系统中各个server交互的单元log——一次操作记录,比如一条redolog日志或者binlogslot——log序列中每一个log entry的全局位点paxosbasic paxos prepare阶段 acceptor阶段 mulit-p...原创 2020-04-03 11:32:17 · 566 阅读 · 0 评论 -
ACID、CAP、BASE简单介绍
1.ACIDACID是传统的单机事务模型,已经很难胜任现代高访问、高并发的分布式互联网系统。A-原子性原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中一个sql语句执行失败,则已执行的 语句也必须回滚,数据库退回到事务前的状态。InnoDB实现原子性的关键——undo log(回滚日志):当事务对数据库进行修改时,InnoDB会生成对应的undo...原创 2020-04-02 20:25:50 · 536 阅读 · 0 评论 -
常见数据倾斜及解决方法
1.group by导致数据倾斜 设置hive.map.aggr:默认为true,在map端做聚合,推荐使用 设置hive.groupby.skewindata:reduce操作的时候,相同key值并不是都给同一个reduce,而是随机分发到各个reduece做聚合。这个参数其实跟hive.map.aggr做的类似,只是在reduce端做,要额外启动一轮job,不推荐使用 ...原创 2020-04-01 14:41:14 · 1806 阅读 · 0 评论 -
atlas导入hive元数据失败
错误提示# bin/import-hive.shFailed to import Hive Meta Data!!!解决方法参考:https://www.cnblogs.com/barneywill/p/12180277.html原创 2020-02-27 19:59:37 · 1625 阅读 · 0 评论 -
hdfs命令报内存溢出错误
现象$ hdfs dfs -ls -R /user/spark/spark2ApplicationHistory > temp.Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded at java.lang.invoke.MethodType$Concurre...原创 2020-02-27 17:52:03 · 1350 阅读 · 0 评论