
大数据
文章平均质量分 95
疯狂哈丘
这个作者很懒,什么都没留下…
展开
-
ClickHouse集群搭建部署
文章目录一、单机版安装和启停二、集群部署搭建1、手动搭建clickhouse集群2、使用docker-compose快速搭建clickhouse集群三、集群扩容如何保证扩容后的数据均匀分布?四、集群缩容docker-compose 中的一些文件一、单机版安装和启停单机版的安装相对简单,官网介绍了好几种办法:https://clickhouse.com/docs/zh/getting-started/install/这里提一下tgz安装包的方式,目前官网的文档有点问题(不知道将来会不会更新)。从21原创 2022-01-27 11:40:55 · 17254 阅读 · 11 评论 -
Hive提交到yarn的任务一直在running问题排查-V2
解决hive已经停止的任务一直在yarn上运行的问题原创 2021-12-24 17:34:52 · 31658 阅读 · 0 评论 -
Yarn LevelDb文件过大导致重启NM失败问题分析
文章目录一、问题描述二、问题分析代码分析三、解决方案1、定期重启NM2、修改源码一、问题描述近期滚动重启Yarn NodeMagager时,发现滚动重启NM会卡很久,然后滚动重启失败(测试了好几台,基本都滚动重启失败)深入排查后,发现失败的原因如下:NM在启动的时候会去加载yarn-nm-recovery下面的leveldb数据库,主要是为了恢复机器上正在运行的container的相关信息。我们发现,重启失败的NM在启动的时候一直卡在读取leveldb数据库中,之后MRS的进程健康检查脚本发现NM启原创 2021-11-26 17:36:32 · 3592 阅读 · 3 评论 -
Hbase慢请求常规排查流程
文章目录一、确定慢请求是否突然暴增二、慢请求暴增可能的因素1、系统繁忙导致的慢请求2、GC导致的慢请求3、系统故障导致的慢请求4、HDFS因素**三、系统负载高根因排查****1、CPU 持续飙高**2、IO负载持续打满3、导致 IO 负载升高的情况汇总**用户请求突增**Hbase在进行大量compact缓存命中率变低四、总结一、确定慢请求是否突然暴增查看RegionServer日志,搜索responseTooSlow,确认用户反馈的时间点是否出现慢请求。如果所有的RS在该时间点都没有明显的慢请求日志原创 2021-11-25 17:44:02 · 8133 阅读 · 1 评论 -
基于Java实现编程式提交Spark任务
最近接到一个需求,需要提供给平台一个java sdk,用于spark任务的提交。这个sdk不能依赖用户机器的任何环境。网上找了一些资料,基本都是基于原生的SparkSubmit来提交任务的,都不符合我们的需求。因此决定自己手动撸。首先做了一些调研,先梳理了下原生spark-submit的提交流程(Spark on Yarn)一、常规Spark on Yarn的提交流程(基于SparkSubmit)我们平时使用spark-submit脚本或者直接使用SparkSubmit类进行Spark任务的提交时,流原创 2021-04-17 11:14:08 · 5194 阅读 · 0 评论 -
大数据SQL引擎架构浅析
文章目录一、SQL引擎实现:从简单到复杂,从单机到分布式最简单的实现—使用正则解析SQL标准实现—支持更复杂的SQL语法性能优化—执行计划优化大数据SQL引擎架构二、执行计划的一些常见优化手段RBO(基于规则优化)CBO(基于代价优化)三、总结随着技术的不断发展,大数据领域出现了越来越多的技术和框架。如果细心的话,我们会发现,越来越多的大数据技术和应用开始支持SQL进行数据查询。SQL作为一个学习成本很低的语言,支持SQL进行数据查询可以降低用户使用大数据的门槛,让更多的用户能够使用大数据。首先,什么是原创 2021-03-06 20:05:49 · 3276 阅读 · 0 评论 -
Spark任务输出文件过程详解
文章目录一、Spark任务输出文件的总过程二、Commit细节分析1、commitTask 介绍1.1、判断是否需要commit1.2、task的commit细节2、commitJob 介绍三、V1和V2 commiter版本比较1、性能方面2、数据一致性方面3、总结参考资料一、Spark任务输出文件的总过程当一个Job开始执行后,输出文件的相关过程大概如下:1、Job启动时创建一个目录: ...原创 2019-06-14 19:47:52 · 7111 阅读 · 0 评论 -
spark-submit 任务提交过程分析
文章目录一、spark-submit脚本分析二、Main类的作用三、SparkSubmit类提交任务的过程如何和ResourceManger建立连接spark任务配置的优先级client模式的真正运行方式一、spark-submit脚本分析spark-submit的脚本内容很简单:# 如果没设置SPARK_HOME的环境变量,调用find-spark-home文件寻找spark-homei...原创 2019-06-11 19:05:13 · 3905 阅读 · 0 评论 -
Spark MetadataFetchFailedException 问题排查
文章目录一、问题描述二、问题定位Executor异常退出的原因猜测1、OOM导致Executor异常退出2、linux OOMKiller3、因磁盘问题Executor被yarn Kill4、因内存问题Executor被yarn Kill问题总结三、解决方案四、扩展:Executor因内存问题被Yarn Kill的情况1、Overhead 区域使用超过预期值2、Executor又开启了子进程导致总...原创 2019-06-25 16:33:15 · 28239 阅读 · 0 评论 -
Hive导出数据时输出_SUCCESS文件解决方案
文章目录一、_SUCCESS的作用和实现1、 输出 _SUCCESS 文件的代码实现二、Hive任务导出数据时没生成_SUCCESS的原因三、解决方案1、自己实现一个OutputCommitter替代NullOutputCommitter(不建议)2、改写FileSinkOperator(不建议)3、改写MoveTask一、_SUCCESS的作用和实现我们在跑完mr或者spark程序时,会发现...原创 2019-07-02 18:54:50 · 13471 阅读 · 1 评论 -
HiveServer2 架构源码详解
文章目录一、HiveServer2的启动二、HiveServer2的各个服务组件1、ThriftCLIService2、CLIService3、SessionManager4、OperationManager三、一个命令的具体处理过程1、一个命令的处理流程2、关于SessionHandle和OperationHandlebeeline客户端是如何获取日志输出的四、HiveServer2中的那些重要...原创 2019-06-29 17:46:29 · 8360 阅读 · 5 评论 -
Spark TaskAttempt目录未删除问题排查
文章目录一、问题描述二、问题分析三、总结一、问题描述有业务反馈spark任务结束后会遗留一些attempt目录在输出目录上,影响数据的读取。主要现象如下:二、问题分析之前排查过一个类似的问题,也是输出目录下有个遗留的_temporary目录未删除干净:Spark 任务输出目录_temporary目录未删除问题排查一开始以为就是这个问题,但是仔细分析了下,发现逻辑走不通。因此仔细做了下...原创 2019-08-03 17:47:40 · 4332 阅读 · 1 评论 -
【Hive任务优化】—— Map、Reduce数量调整
文章目录一、如何调整任务map数量1、FileInputFormat的实现逻辑介绍1.1 getSplits方法实现2、CombineFileInputFormat的实现逻辑介绍2.1 getSplits方法实现3、HiveInputFormat 的实现逻辑介绍4、CombineHiveInputFormat的实现逻辑介绍5、map数量调整总结二、如何调整任务reduce数量三、关于map tas...原创 2019-07-26 10:30:40 · 8146 阅读 · 1 评论 -
MapReduce任务运行慢问题排查
文章目录一、问题描述二、问题分析1、第一次失败(yarn的磁盘健康检查机制导致的任务失败)2、第二次失败(map和reduce资源竞争导致的死锁)三、总结参考资料一、问题描述今天有业务反馈有个MapReduce任务运行很慢,于是看了下JobHIstory上任务的运行情况,发现任务就剩一个reduce还在执行,当时第一反应以为是出现了数据倾斜。但实际排查后发现不是,因为这个任务的reduce t...原创 2019-07-31 18:11:04 · 8329 阅读 · 0 评论 -
Hbase中的各个组件介绍
文章目录一、Hbase中的4大组件1、hbase-client2、Zookeeper3、HMaster4、HRegionServer二、Hbase 组件的HA保证1、zk的HA保证2、HMaster的HA保证3、HRegionServer的HA保证一、Hbase中的4大组件1、hbase-client客户端,用来访问hbase集群。可以和Hbase交互,也可以和HRegionServer交互...原创 2019-08-28 19:23:56 · 17882 阅读 · 0 评论 -
【转发】算力提升117%,资源使用下降50%,打开集群优化正确姿势
导读:美图日益增长的庞大数据和计算任务,对大数据集群的计算能力、存储能力、稳定性、扩展性等都提出了较大的挑战。目前美图技术团队针对大数据集群做了系列的优化,通过对计算引擎进行改造而达到算力的提升,通过对集群的不断优化提升稳定性的同时规范集群使用。在大数据集群优化的实践中,我们也总结了一些实践经验,也期待和大家有更多的探讨。作者简介:余谦,来自数据智能部的大数据部团队,2018 年 2 月加入美图,...转载 2019-09-05 10:17:36 · 2725 阅读 · 0 评论 -
【Hive任务优化】—— 小文件合并相关参数
set hive.merge.mapfiles=true;set hive.merge.mapredfiles=true;set hive.merge.smallfiles.avgsize=256000000;set hive.merge.size.per.task = 256000000;(未完待续)原创 2019-08-31 21:31:38 · 12825 阅读 · 0 评论 -
Spark Adaptive Execution调研
文章目录一、Spark 目前现有的一些问题问题一:Shuffle partition数量没有达到最优问题二:现有执行计划的一些不足问题三:数据倾斜的问题二、Spark Adaptive Execution提出的相关解决方案1、自动设置Shuffle Partition数量一些关键点:开启方式:2、执行过程中动态调整执行计划开启方式:3、自动处理数据倾斜开启方式:三、总结参考资料一、Spark 目...原创 2019-05-29 20:15:33 · 2197 阅读 · 0 评论 -
Spark Thrift Server 架构和原理介绍
文章目录一、Spark Thrift Server介绍二、部署Spark Thrift Server三、Spark Thrift Server的架构四、Spark Thrift Server如何执行SQL五、和HiveServer2的区别Spark Thrift Server的优点Spark Thrift Server的缺点六、结论一、Spark Thrift Server介绍Spark Th...原创 2019-05-19 10:32:23 · 23340 阅读 · 11 评论 -
Kafka Producer详解(二)
一、Producer介绍在kakfa中,生产者采用push的方式想kafka集群提交数据。kakfa官方提供了一个producer的api,方便我们调用代码向集群发送消息。 Producer所需要的maven依赖如下:<dependency> <groupId&g原创 2018-07-31 22:30:04 · 7698 阅读 · 0 评论 -
kafka server启动流程 & shutdown实现(三)
平常我们通过命令 kafka-server-start /usr/local/etc/kafka/server.properties 启动,kafka的启动类是Kafka.scala,最终会调用Kafka.scala类的main方法。 另外,启动脚本中还会设置相关JVM参数,如log4j配置文件地址、JVM堆大小等等。下面通过源码简单分析下kafka的启动流程以及shutdown的实现。本系...原创 2018-08-01 20:47:17 · 2417 阅读 · 0 评论 -
kafka 请求处理与RPC原理解析(四)
kafka server启动后,会监听一些端口,然后开始接收请求进行日常的工作。 与请求处理相关的组件有 SocketServer、KafkaApis、KafkaRequestHandlerPool。这些都是在kafka server启动时初始化并开始运行的。SocketServer是一个NIO服务,基于N+M的线程模型,由N个Acceptor线程以及M个Processor线程组成,和netty...原创 2018-08-02 21:03:14 · 5024 阅读 · 0 评论 -
CAP原理详解
文章目录一、CAP原理介绍对CAP原理的一些常见的理解误区二、CAP原理简单证明三、CAP原理在各个系统的应用四、总结一、CAP原理介绍先简单介绍一下CAP原理是什么:C:Consistency即一致性,访问所有的节点得到的数据应该是一样的。注意,这里的一致性指的是强一致性,也就是数据更新完,访问任何节点看到的数据完全一致,要和弱一致性,最终一致性区分开来。A:Availability...原创 2018-09-27 21:59:47 · 25458 阅读 · 6 评论 -
mac 下编译hadoop源码
本篇博客主要介绍社区版的hadoop源码的编译,以及会遇到的一些问题。一、获取hadoop源码可以通过hadoop的官网获取hadoop相关源码包:https://hadoop.apache.org/releases.html。或者直接通过git去github拉取最新的源码:git clone https://github.com/apache/hadoop# 拉完代码后进入源码目录cd...原创 2018-12-23 11:37:22 · 1190 阅读 · 0 评论 -
docker上从零开始搭建hadoop和hive环境
文章目录一、构建自己的centos镜像二、hadoop 伪分布式环境安装3种安装模式伪分布式环境安装1. 解压安装包2. 修改相关配置文件3. 指定HADOOP环境变量4. namenode 初始化5. 启动hdfs和yarn6. 验证程序已经正确启动三、hive环境安装编译hive安装hive1. 解压安装包2. 修改配置文件3. 初始化hive数据库4. 配置hive相关环境变量5. 验证配置...原创 2018-12-23 16:02:46 · 6533 阅读 · 7 评论 -
大数据安全管理框架 Ranger 原理介绍
文章目录一、Ranger是什么二、Ranger的权限模型三、Ranger架构Ranger-adminPluginHive Plugin 授权流程四、一些思考1. 关于组件策略的缓存2. 插件类加载器的实现Java中的类加载器双亲委派类加载机制:五、总结一、Ranger是什么ranger大数据领域的一个集中式安全管理框架,它可以对诸如hdfs、hive、kafka、storm等组件进行细粒度的权...原创 2019-01-12 14:52:15 · 12198 阅读 · 25 评论 -
大数据常用文件格式介绍
文章目录一、SequenceFile二、Avro三、parquet四、Orc五、同为列式存储, orc和parquet的区别列式存储的优化点orc和parquet的一些区别和对比六、一些总结查询资料附录最近在做hdfs小文件合并的项目,涉及了一些文件格式的读写,比如avro、orc、parquet等。期间阅读了一些资料,因此打算写篇文章做个记录。这篇文章不会介绍如何对这些格式的文件进行读写,只...原创 2019-01-13 16:36:24 · 8042 阅读 · 0 评论 -
hive insert overwrite directory 问题排查
文章目录一、问题描述二、问题定位三、问题总结四、解决方案五、一些题外话一、问题描述线上某条hive语句出现错误,hive语句如下insert overwrite directory '/tmp/data_works_server/41109/904723/1547802020/' STORED AS ORC select 20190117, device_model, meios_vers...原创 2019-01-22 22:16:26 · 34740 阅读 · 2 评论 -
hive 替换第三方jar包不生效 问题排查
文章目录一、问题描述二、排查过程1. 梳理hive程序的执行流程2. 推测问题产生的原因3. 通过arthas找出罪魁祸首4. 问题总结和解决办法三、个人反思和一些总结想直接看结论和解决方案的同学可以直接跳到2.4章节。一、问题描述前几天有用户反馈将hive查询结果以orc导入到hdfs目录时出现异常,sql大概如下:insert overwrite directory '/tmp/' s...原创 2019-01-22 22:18:33 · 28558 阅读 · 0 评论 -
大数据日知录——数据分片和路由(一)
文章目录一、哈希分片Round Robin虚拟桶一致性hash一致性hash路由算法节点的新增和离开一致性hash的一些优化思路二、范围分片参考资料随着数据规模越来越大,光靠一个机器是无法承载这些数据的。因为业内常见的做法是将数据进行分片,存储在各个机器上面。由于数据存储在集群的多台服务器上面,就需要一个有效的办法快速找到某个数据的存储位置,这就是数据路由。这节主要介绍数据分片以及数据路由的一些...原创 2019-02-21 22:24:54 · 566 阅读 · 0 评论 -
Ranger 编译安装
文章目录一、编译代码二、安装ranger-admin三、Ranger HDFS plugin安装四、Ranger Hive plugin 安装五、安装其他插件ranger的相关介绍可以看我的下面这篇博客,这里不多做介绍https://blog.youkuaiyun.com/u013332124/article/details/86360756一、编译代码git clone https://github...原创 2019-02-19 18:55:28 · 2672 阅读 · 5 评论 -
Spark History Server 架构原理介绍
文章目录一、eventLog日志文件以及相关参数eventLog日志文件介绍相关配置参数二、两个定时任务解析eventLog日志文件线程清理过期的eventLog日志文件的线程三、History Server的架构缓存机制四、一些潜在的问题1. spark.history.retainedApplications 设置太大导致的OOM问题2. eventLog 日志文件过大导致的OOM问题3. H...原创 2019-03-08 14:02:44 · 4663 阅读 · 0 评论 -
yarn ResourceManager Active频繁易主问题排查
文章目录一、故障现象二、问题分析RM的HA机制分析ZK问题分析部分任务状态更新失败问题分析三、解决和优化方案1. 调大 jute.maxbuffer 参数2. 修改yarn的源码3. 快速让集群恢复稳定的方法四、总结本周三公司的yarn集群出现故障,导致两台ResourceManger频繁易主,并且许多提交到集群的任务状态为NEW_SAVING,无法执行。这里对此次的故障排查进行一个总结。一、...原创 2019-03-23 11:44:37 · 2475 阅读 · 5 评论 -
Hive ACID和事务表支持详解
文章目录一、ACID介绍二、使用限制三、支持的一些新的语法四、主要设计和实现base和delta文件夹的基本结构事务表的读取delta文件的压缩1、 压缩类型2、Initiator 组件3、 Worker4、Cleaner5、 AcidHouseKeeperService6、 SHOW COMPACTIONS事务表的隐藏字段五、相关配置客户端方面的修改服务端方面为事务新增的相关配置一些旧的配置修改...原创 2019-04-28 19:17:10 · 8452 阅读 · 0 评论 -
Spark Streaming架构原理剖析
文章目录一、Spark Streaming 原理概述二、DStream生成RDD实例的过程1、什么是DStream2、DStreamGraph3、通过DStream生成RDD实例3.1 何时生成RDD实例3.2 如何通过DStream生成RDD实例3.3.1、一般DStream生成RDD的过程3.3.2、InputDStream生成RDD的过程三、数据的收集和划分1、Receiver的启动过程2、...原创 2019-05-06 20:43:33 · 3053 阅读 · 0 评论 -
kafka 架构设计简介(一)
一、概述kafka是一个分布式的消息系统,由LinkedIn开发,后成为Apache的一部分。它以水平扩展和高吞吐率被广泛使用。最近开始深入学习kafka,然后打算写一个kafka系列文章,这是第一篇。虽然目前网上关于kafka的文章有很多,很多都写的很详细,但是还是想自己整理一遍。一方面为了更好的巩固,另一方面也为了以后复习起来方便。本篇对kafka的整个架构以及概念做一些简单的介绍...原创 2018-05-15 22:48:44 · 1105 阅读 · 0 评论