自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u013332124的专栏

疯狂的哈丘,一个专注后端的Java程序员

  • 博客(110)
  • 资源 (2)
  • 收藏
  • 关注

原创 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 2875

原创 Hive ACID和事务表支持详解

文章目录一、ACID介绍二、使用限制三、支持的一些新的语法四、主要设计和实现base和delta文件夹的基本结构事务表的读取delta文件的压缩1、 压缩类型2、Initiator 组件3、 Worker4、Cleaner5、 AcidHouseKeeperService6、 SHOW COMPACTIONS事务表的隐藏字段五、相关配置客户端方面的修改服务端方面为事务新增的相关配置一些旧的配置修改...

2019-04-28 19:17:10 7430

原创 Java Attach机制简介

文章目录一、利用Attach机制实现一个简单的Jstack二、Attach实现原理Attach Listener线程的启动1. 启动的时候通过jvm参数指定启动该线程。2. attach目标JVM成功后,目标JVM启动该线程。Attach Listener线程工作原理参考资料在JVM运行时,我们经常需要获取目标JVM运行时的相关信息。最典型的一个场景就是通过jstack命令输出当前的线程dump...

2019-03-09 09:43:09 10079 1

原创 JVM进程诊断利器——arthas介绍

文章目录一、安装和使用arthas安装卸载二、athas的各个命令1. dashboard2. thread3. jvm4. sysprop和sysenv5. getstatic6. ognl7. sc 和 sm8. dump9. jad10. classloader11. redefine12. monitor13. watch14. trace15. stack16. tt17. option...

2018-12-07 22:12:17 8489 4

原创 Kafka Producer详解(二)

一、Producer介绍在kakfa中,生产者采用push的方式想kafka集群提交数据。kakfa官方提供了一个producer的api,方便我们调用代码向集群发送消息。 Producer所需要的maven依赖如下:<dependency> <groupId&g

2018-07-31 22:30:04 7172

原创 初探推荐系统-02

快速了解常见的几种推荐算法,以及他们的应用场景

2023-03-31 14:42:38 389 1

原创 初探推荐系统-01

简单介绍了什么是推荐系统,它的意义,以及推荐系统中涉及到的一些算法

2023-02-28 16:58:14 528

原创 初探机器学习-梯度下降法求解最优值

本文介绍了什么是算法模型,如何通过最简单的梯度下降算法训练出一个算法模型

2023-01-30 15:47:17 1280 1

原创 系统分析师备考经验分享

本文介绍笔者关于系统分析师考试的一些备考经验。包括如何备考、准备时间、考试难度的一些经验

2022-08-01 19:18:26 5054 5

原创 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 16471 11

原创 Hive提交到yarn的任务一直在running问题排查-V2

解决hive已经停止的任务一直在yarn上运行的问题

2021-12-24 17:34:52 29945

原创 Yarn LevelDb文件过大导致重启NM失败问题分析

文章目录一、问题描述二、问题分析代码分析三、解决方案1、定期重启NM2、修改源码一、问题描述近期滚动重启Yarn NodeMagager时,发现滚动重启NM会卡很久,然后滚动重启失败(测试了好几台,基本都滚动重启失败)深入排查后,发现失败的原因如下:NM在启动的时候会去加载yarn-nm-recovery下面的leveldb数据库,主要是为了恢复机器上正在运行的container的相关信息。我们发现,重启失败的NM在启动的时候一直卡在读取leveldb数据库中,之后MRS的进程健康检查脚本发现NM启

2021-11-26 17:36:32 3282 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 7330 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 4628

原创 大数据SQL引擎架构浅析

文章目录一、SQL引擎实现:从简单到复杂,从单机到分布式最简单的实现—使用正则解析SQL标准实现—支持更复杂的SQL语法性能优化—执行计划优化大数据SQL引擎架构二、执行计划的一些常见优化手段RBO(基于规则优化)CBO(基于代价优化)三、总结随着技术的不断发展,大数据领域出现了越来越多的技术和框架。如果细心的话,我们会发现,越来越多的大数据技术和应用开始支持SQL进行数据查询。SQL作为一个学习成本很低的语言,支持SQL进行数据查询可以降低用户使用大数据的门槛,让更多的用户能够使用大数据。首先,什么是

2021-03-06 20:05:49 3134

原创 Hbase RegionServerGroup配置重启后失效问题排查

文章目录一、问题描述二、问题定位三、解决方案四、网上相关patch使用Hbase 版本:2.1.1一、问题描述RegionServer group是2.x后引入的隔离机制,可以用于业务的隔离。我们通过hbase shell的相关命令配置完group后,group信息如下:后面滚动重启所有RegionServer,发现原先配置到gid_group_test的两台RS跑到default组了,同时gid_group_test组出现了两台Dead server:通过hbase shell的list_r

2021-02-07 17:15:32 2853

原创 关于网络超时时间那些事

文章目录一、connectTimeout应用层的超时分析内核层的超时分析综合分析二、writeTimeout三、readTimeout四、httpClient中的connectTimeout、socketTimeout、connectionRequestTimeout区别五、一些额外知识点一些资料在实际编程中,我们会经常到超时时间这个概念。对于网络相关的超时时间,很多同学其实都只是一知半解,知其然而不知所以然。今天我们就来梳理一下网络中可能出现的各个超时时间。一、connectTimeout我们日常接

2020-11-28 17:21:39 7786

原创 SparkSQL并发写入orc、parquet表的异常问题排查

文章目录一、问题描述二、Hive 执行overwrite语句时没有删除旧数据的原因三、SparkSQL 失败的原因四、解决方案1、排查过程2、解决方案3、spark.sql.hive.convertInsertingPartitionedTable参数的作用一、问题描述有业务反馈某张表的分区下有重复数据,该分区数据的写入任务之前曾用sparkSQL执行过,跑失败了后切换成Hive执行成功了。看了下该分区对应的目录,发现目录下同时存在sparkSQL和Hive SQL生成的文件(也就是Hive任务执行时未

2020-10-29 14:49:32 10187

原创 一些大任务SQL的优化方案

最近在优化集群的大任务,发现许多大任务的SQL都有一个特点:查询数据量大,导致扫描过滤以及shuffle的时间长。这种sql一般都是查询的时间范围比较大(我们集群的表基本都按天分区),从1个月到2年不等,然后又要每天运行,占用了集群相当大的资源。对于这类任务,其实有很大的优化空间。举个例子:select name, count(1) as occurCountfrom testwhere date_p > 20200901 and date_p < 20200930

2020-10-15 14:18:53 3153

原创 Kyuubi 输出任务进度信息改造

文章目录一、Hive QueryLog的实现客户端方面服务端实现日志的读取日志的写入二、Kyuubi 增加进度日志输出附录一、Hive QueryLog的实现由于Kyuubi、Spark ThriftServer的实现框架都是用的Hive Server。因此这里只介绍Hive Server是如何实现QueryLog的。客户端方面在HiveServer实现的jdbc客户端中,获取QueryLog实现是在HiveStatement类的getQueryLog()方法中。这个方法的底层是调用了Thrift实

2020-07-29 16:02:03 4213

原创 Hive on Mr Job重复执行问题排查

文章目录一、问题描述二、问题排查进度三、Hive执行任务的具体逻辑3.1、Hive源码解析3.2、生成重复job问题分析四、问题总结和代码修复一、问题描述业务反馈某张表的落地数据总大小比平时多了一倍。平时正常落地6-7G,而这次落地的数据量有14G。后该任务重跑后数据恢复正常:表落地数据使用的相关sql如下(为了不暴露公司相关业务信息,只展示sql的主体结构):set mapreduce.job.queuename=xxxxx;insert overwrite table xxxxxxxx

2020-06-05 17:47:49 29279

原创 【linux命令学习】— grep 命令学习

文章目录一、grep 命令介绍二、grep、egrep、fgrep区别基础的正则表达式和扩展的正则表达式三、参数介绍四、一些demo4.1 在某个目录下搜索字符串4.2 使用后向引用来匹配4.3 匹配5行后立即退出五、参考文档一、grep 命令介绍在我们日常工作中,grep命令应该是使用很经常的一个命令。它可以拿来过滤字符串,让我们快速的从一个文件中找到是否有匹配的行。但是很多同学应该都只是使...

2020-03-24 15:14:18 3840

原创 备份jar包的一些坑

文章目录一、更新jar包时的一些现象二、jar包加载测试2.1、测试前的准备2.2、测试方案一2.3、测试方案二三、结论一、更新jar包时的一些现象我们在更新jar包时,经常会对旧的jar包做备份。目前常见的备份方式有以下几种:1、重命名旧的jar包,加上一些后缀。如 xxx.jar -> xxx.jar.bak2、在程序指定的classpath下创建一个backup目录(通常是程...

2020-03-01 22:31:37 8568

原创 【linux命令学习】— sar 命令学习

文章目录一、命令使用介绍二、系统各个维度的性能分析1、CPU相关指标1.1、 -P 或者 -u 输出CPU使用情况的统计信息1.2、 -q 输出CPU队列的相关统计信息2、磁盘相关指标(建议用iostat)2.1、 -b 输出磁盘基本信息2.2、-d 输出磁盘更详细的信息2.3、 小结3、内存相关指标(-n 参数)3.1、-r 查看内存的使用情况3.2、-B 查看内存分页的情况3.3、-W 查看...

2019-09-20 19:46:10 3302

转载 【转发】算力提升117%,资源使用下降50%,打开集群优化正确姿势

导读:美图日益增长的庞大数据和计算任务,对大数据集群的计算能力、存储能力、稳定性、扩展性等都提出了较大的挑战。目前美图技术团队针对大数据集群做了系列的优化,通过对计算引擎进行改造而达到算力的提升,通过对集群的不断优化提升稳定性的同时规范集群使用。在大数据集群优化的实践中,我们也总结了一些实践经验,也期待和大家有更多的探讨。作者简介:余谦,来自数据智能部的大数据部团队,2018 年 2 月加入美图,...

2019-09-05 10:17:36 2611

原创 【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 11923

原创 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 16123

原创 Spark TaskAttempt目录未删除问题排查

文章目录一、问题描述二、问题分析三、总结一、问题描述有业务反馈spark任务结束后会遗留一些attempt目录在输出目录上,影响数据的读取。主要现象如下:二、问题分析之前排查过一个类似的问题,也是输出目录下有个遗留的_temporary目录未删除干净:Spark 任务输出目录_temporary目录未删除问题排查一开始以为就是这个问题,但是仔细分析了下,发现逻辑走不通。因此仔细做了下...

2019-08-03 17:47:40 4097 1

原创 【linux命令学习】— iostat 命令学习

当我们要看系统IO情况时,一般最先想到的应该就是iostat命令的。iostat提供了丰富的参数给我们查询各种维度的io数据。学习iostat有助于我们排查IO相关问题时可以更快的定位到问题根源。以下内容大多来自iostat的man文档,会加上部分自己的理解,英文水平好的同学也可以直接看man文档一、命令相关参数命令使用:iostat [ -c ] [ -d ] [ -N ] [ -n...

2019-08-03 17:08:18 2049

原创 MapReduce任务运行慢问题排查

文章目录一、问题描述二、问题分析1、第一次失败(yarn的磁盘健康检查机制导致的任务失败)2、第二次失败(map和reduce资源竞争导致的死锁)三、总结参考资料一、问题描述今天有业务反馈有个MapReduce任务运行很慢,于是看了下JobHIstory上任务的运行情况,发现任务就剩一个reduce还在执行,当时第一反应以为是出现了数据倾斜。但实际排查后发现不是,因为这个任务的reduce t...

2019-07-31 18:11:04 7933

原创 【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 7709 1

原创 【linux命令学习】— top 命令学习

文章目录一、基本使用及参数介绍二、top界面各个维度的含义1、第一行(系统相关统计信息)load average 解释2、第二行(进程统计信息)3、第三行(cpu相关信息)4、第四行(内存信息)5、第五行(虚拟内存信息)6、第六行+(进程列表)选择指定列展示/不展示进程列表排序顺序调整三、top的一些小问题四、其他当需要排查一些问题或者要看系统的一些指标时,我们经常会用到top命令。但是我们大多...

2019-07-13 10:40:31 4127 1

原创 Hive导出数据时输出_SUCCESS文件解决方案

文章目录一、_SUCCESS的作用和实现1、 输出 _SUCCESS 文件的代码实现二、Hive任务导出数据时没生成_SUCCESS的原因三、解决方案1、自己实现一个OutputCommitter替代NullOutputCommitter(不建议)2、改写FileSinkOperator(不建议)3、改写MoveTask一、_SUCCESS的作用和实现我们在跑完mr或者spark程序时,会发现...

2019-07-02 18:54:50 12688 1

原创 HiveServer2 架构源码详解

文章目录一、HiveServer2的启动二、HiveServer2的各个服务组件1、ThriftCLIService2、CLIService3、SessionManager4、OperationManager三、一个命令的具体处理过程1、一个命令的处理流程2、关于SessionHandle和OperationHandlebeeline客户端是如何获取日志输出的四、HiveServer2中的那些重要...

2019-06-29 17:46:29 7793 5

原创 【linux命令学习】— cut 和 tr 命令学习

文章目录一、cut命令学习按字节进行切割按字符进行切割按指定字符进行切割二、tr 命令学习替换字符使用demo-c,-d 参数使用demo-s 参数使用demo-t 参数使用demotr中的一些转义符三、总结一、cut命令学习cut命令主要用来切割字符串,可以对输入的数据进行切割然后输出,它可以支持三种形势的切割:按字节(bytes)进行切割按字符进行切割按指定的分割符进行切割在l...

2019-06-25 20:42:48 2914 2

原创 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 26927

原创 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 6546

原创 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 3479

原创 Spark Adaptive Execution调研

文章目录一、Spark 目前现有的一些问题问题一:Shuffle partition数量没有达到最优问题二:现有执行计划的一些不足问题三:数据倾斜的问题二、Spark Adaptive Execution提出的相关解决方案1、自动设置Shuffle Partition数量一些关键点:开启方式:2、执行过程中动态调整执行计划开启方式:3、自动处理数据倾斜开启方式:三、总结参考资料一、Spark 目...

2019-05-29 20:15:33 2062

原创 Spark 任务输出目录_temporary目录未删除问题排查

文章目录一、问题描述二、问题定位三、driver kill task的时间四、解决方案参考资料一、问题描述在hdfs上看到有个输出目录有_temporary目录,但任务实际已经结束了。有_SUCCESS文件表示这个任务已经结束了。二、问题定位Spark 输出数据到 HDFS 时,需要解决如下问题:由于多个 Task 同时写数据到 HDFS,如何保证要么所有 Task 写的所有文...

2019-05-29 20:06:44 4485

Java课程设计,扫雷项目

完整的扫雷项目,用java编写。并在XP的功能上加了一些有趣的功能,比如输了会设置定时关机等。

2014-05-18

JavaEE课设,二手书店网站

JavaEE课设,二手书店网站,界面做的不好看

2014-05-18

空空如也

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

TA关注的人

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