- 博客(73)
- 资源 (7)
- 收藏
- 关注
原创 spark源码分析九(SparkEnv shuffleManager)
SparkEnv源码版本2.4.7shufflemanager实例是SortShuffleManagerspark数据shuffle读写是通过 SparkEnv.get.shuffleManager控制完成的shuffleRdd的compute是通过SparkEnv.get.shuffleManager.getReader而shuffleMaptask的write也是通过SparkEnv.get.shuffleManager.getWritershufflerdd->getDependen
2020-12-16 17:01:43 337
原创 spark源码分析八(SparkEnv BlockManager)
SparkEnv源码版本2.4.7SparkContext有一核心属性_env即SparkEnv,持有所有spark运行实例的环境对象,序列化、RPCEnv、块管理、MapOutputTracker(shuffle输出相关的记录)等等首先看看其基本属性class SparkEnv ( val executorId: String, private[spark] val rpcEnv: RpcEnv, val serializer: Serializer, val cl
2020-12-14 12:48:12 272
原创 spark源码分析七(SparkContext - runJob)
SparkContext源码版本2.4.7上一篇分析完Executor的注册启动流程,接下来看rdd.action[foreach,collect,save,…]-> sc.runJob(rdd,iter=>f)最终调用的的SparkContext的DAGScheduler的runJobrunJob->submitJob-> eventProcessLoop.post(JobSubmitted)->eventQueueeventQueue->doOnRecei
2020-12-07 21:45:03 320
原创 各大开源项目-源码阅读技巧
一 抓小放大非主流程的代码直接跳过二八法则(20%的主流程代码集中了80%常用功能,看懂这20%就足够了)最重要的一点:不要在细节上浪费时间,先看懂主流程!!!二 连蒙带猜方法名,注释,依赖,流程逻辑等等三 断点调试复杂琐碎不易懂代码直接断点如有回调所有可能回调的入口都加断点四 阅读流程首先梳理需要使用的功能顺着需要用到的功能点挨个往下看服务启动开始看找不到头绪时可以首先关注重写或者重载的方法找到一个类线索断了,可以找找这个类里有什么方法,优先看看重写或者实现父类
2020-12-07 16:37:32 221
原创 spark源码分析六(SparkContext - Executor)
SparkContext源码版本2.4.7书接上回Master通过scheule水平划分完Executor资源后,执行launchExecutor操作,通过wokerEndpoint引用向worker发送LaunchExecutor指令,顺序执行向driver发送 ExecutorAdded 消息 private def launchExecutor(worker: WorkerInfo, exec: ExecutorDesc): Unit = { logInfo("Launching
2020-12-01 17:30:31 211
原创 spark源码分析五(SparkContext一TaskSchedulerImpl))
SparkContext源码版本2.4.7首先我们要知道当RDD真正遇到action算子时,任务才会被触发. /** * Applies a function f to all elements of this RDD. */ def foreach(f: T => Unit): Unit = withScope { val cleanF = sc.clean(f) sc.runJob(this, (iter: Iterator[T]) => iter.f
2020-11-27 21:41:33 317
原创 spark源码分析四(Driver启动流程)
spark-submit源码版本2.4.7spark-submitexec "${SPARK_HOME}"/bin/spark-class org.apache.spark.deploy.SparkSubmit "$@"主类:org.apache.spark.deploy.SparkSubmitspark-class 会启动 Moudle->launcher org.apache.spark.launcher.Main的jvm进程,构建一些JVM相关启动环境、参数从main方法跟踪发
2020-11-25 20:38:44 484
原创 spark源码分析三(Worker)
Worker源码版本2.4.7start-slave.sh启动主类:org.apache.spark.deploy.worker.Worker查看mainstartRpcEnvAndEndpoint 启动rpcEnv基础通信,与master类似,最终异步调用OnStart def main(argStrings: Array[String]) { Thread.setDefaultUncaughtExceptionHandler(new SparkUncaughtExceptionH
2020-11-24 21:13:55 196 2
原创 spark源码分析二(NettyRpcEnv)
NettyRpcEnv源码版本2.4.7需要关注的是env里面几个关键的属性和方法如图:1 dispatcher 分发消息分发程序,负责将RPC消息路由到适当的端点dispatcher的成员内部类: EndpointData实体 private class EndpointData( val name: String, val endpoint: RpcEndpoint, val ref: NettyRpcEndpointRef) { val in
2020-11-24 12:16:24 275
原创 spark源码分析一(Master)
Master源码版本2.4.7start-master.sh启动主类:org.apache.spark.deploy.master.MasterMaster是一个伴生类首先找到main方法def main(argStrings: Array[String]) { Thread.setDefaultUncaughtExceptionHandler(new SparkUncaughtExceptionHandler( exitOnUncaughtException = fal
2020-11-23 21:33:44 192
原创 面经回忆记录
java基础1 多态是怎么实现的?2 jvm内存模型?3 synchronized底层实现原理?ReentrantLock?AQS?偏向锁?4 线程如何实现交替输出?都有哪些手段?5 线程池使用?几种策略?30并发10core,20queue,30maxsize,此时有多少线程?6 内部类细节使用?7 线程状态?何时阻塞,何时等待?8 什么命令查看线程?如何查看死锁9 动态代理如何实现?java的动态代理为什么是接口不是class?GC1 内存构成?2 类加载过程?3 GC的集中
2020-05-28 15:03:36 179
原创 SpringCloud ConfigServer无法获取远程git仓库文件问题
springcloud config git 获取失败问题git-upload-pack cloud: config: label: master server: default-application-name: @pom.artifactId@ git: uri: https://xxx ...
2020-04-01 12:26:24 2821 1
原创 jstack 分析线程进入 linkedTreeMap 死循环
连续两次线程dump,发现某个别线程一直在一块可疑代码处卡住,top -H 观察个别线程cpu100%,可能存在死循环确认代码逻辑、并发逻辑,避免触发Gson的LinkedTreeMap Infinite Loop...
2019-07-26 10:23:26 560
原创 服务held住 访问无响应
程序被held死的jstack dump分析结果服务端口尚在,top无死锁,cpu无100%,jstackdump分析发现所有的线程池都被held住,此次原始是kafka同步引起,特此记录"defaultEventExecutorGroup-4-15" #564 prio=5 os_prio=0 tid=0x00007f3394008bd0 nid=0x3b98 waiting for m...
2019-06-27 12:16:31 369
原创 ES使用经验记录 --- 持续更新篇
ES使用经验 Search篇[1] ConstantScorequery:Tf/idf打分无参考意义的query可使用此类query,自行定义得分公式,此类query会有cache功能,一定程度上的加快查询速度[2] matchquery 支持minimumShouldMatch 传入百分比匹配召回,正负数上下取值有所不同,具体参考管阀文档,原理doc的term与搜索词分词后...
2019-03-18 12:05:43 555
原创 记一次Nginx记录响应超时,业务不超时问题解决过程
现象描述nginx日志upstream_response_time显示超时(某个请求)通过过观察业务TImeUseDetail(Flume-Kafka-Storm-ES-Kibana日志解析收集)查询该请求未超时定位耗时在nginx-服务器,查看nginx日志发现error一直报timeout去服务器看系统日志/var/log/message kernel: nf_conntrack...
2019-03-15 16:15:17 3804
原创 ELK B 之 logstash filebeat
下载logstash,下面是参考conf demo,主要是filter的ruby语法测试数据00:00:47 - Timeout : total:21, init:4, getUser:0, userReal:0, negs:2, negByZrevrange:1, negGetAllCSet:1, parseLastDoc:1, getNewlastdoc:0, updateUserSess...
2019-02-26 18:15:04 273
原创 Elasticsearch Index uuid name 源码
Elasticsearch 5.6.0今天看了看ES createindex 时对应存储文件的uuid 的生成逻辑跟踪源码发现MetaDataCreateIndexService 类 indexSettingsBuilder.put(IndexMetaData.SETTING_INDEX_PROVIDED_NAME, request.getProvidedName()); //*****...
2019-02-26 17:26:32 2499 2
原创 tengine + lua 实现 固定 响应码请求转移
环境采用 tengine + lua 2.2.1<nginx 1.8.1>nginx 安装及upstream + server的配置在这里不赘述了,网上一搜一堆直接上demo 供大家参考,可以将502的请求转走,一般服务重启上线时会报502,可以用此方案将某些状态码转走location /xianshangjiekou { root html...
2018-12-28 10:31:26 414
原创 记一次定位服务超时分析过程 -------- jstack --------logback 的 坑
jstack 分析 logback 的 坑,零点超时
2018-12-28 10:11:06 988
原创 Kibana - Unable to connect to Elasticsearch at http://localhost:9200
当kibana配置都确定无问题时,报如下错误信息 kibana.yml 的url配置为ip时: [error][status][plugin:xpack_main@5.6.0] Status changed from yellow to red - Unable to connect to Elasticsearch at http [08:26:27.051] [warning][admin...
2018-09-28 16:37:37 18018 3
原创 java 过滤特殊字符串升级版
ASCII码中除了32之外还有160这个特殊的空格 db中的空格 不间断空格->页面上的&nbsp所产生的空格; /** * 过滤特殊字符 * @param str * @return * * \u00A0 特殊的空格 */ public static String stringFilter (String str...
2018-09-26 19:08:34 2638
原创 IDEA Edit Configuration 运行参数设置框消失解决办法
IDEA Edit Configuration 运行参数设置框消失1 Shift+Alt+F10 快捷键打开编辑框2 View -->Navigation Bar 显示Edit Configuration编辑框官方参考网址
2018-09-21 13:54:08 27030 5
原创 elasticsearch 5.x 安装 bigdesk +权限认证 + xpack + Authorization
x-pack权限认证+ bigdesk + Es 5.x bigdesk下载 zip解压 修改bigdesk-master/_site/js/util/bigdesk_extension.js sync: function(method, model, options) { //options.dataType = 'jsonp'; options...
2018-09-11 20:11:12 761
转载 Firefox 并未与此网站建立连接,firefox请求一直被警告不安全
火狐浏览器有时候再打开新网页会报此错“support.mozilla.org 的管理员没有正确配置好此网站。为避免您的信息失窃,Firefox 并未与此网站建立连接。”,连接不上去,很麻烦,网上找了解决方案,如下: (1)在地址栏键入”about:config” 点击“我了解此风险” (2)在下方任意位置右键,选择第三个新建布尔值 (3)输入首选项名称为“security.enterp...
2018-07-17 14:41:53 9464
原创 Elasticsearch 6.x head 请求头设置
head 连接Elasticsearch6是 【数据浏览模块不能显示数据了】 看一下网络流可知报406 错误{ "error" : "Content-Type header [application/x-www-form-urlencoded] is not supported", "status" : 406}解决办法进入head-master安装目录[ro..
2018-06-08 09:25:40 5279 1
原创 Content-Type header [application/x-www-form-urlencoded] is not supported
使用elasticsearch-6.1.2时,curl与head插件都出现不能查询数据的异常,具体原因如下curl -XGET http://localhost:9200/tmdb/_search?pretty -d ' {"query": {"match_all": ""}}'{ &
2018-06-08 09:13:00 10081
原创 idea找不到classpath中的xml配置文件
classpath中包的配置文件为什么不能够被IDEA找到,在target的生成目录中没有你的xml配置文件这是问题所在。原因是pom文件中resources目录配置可能存在问题 检查如下配置 1. 方法配置一 <!--解决Intellij构建项目时,target/classes目录下不存在mapper.xml文件--> <resour...
2018-05-22 09:36:25 4913
原创 lucene源码构建-idea--eclipse--NetBeans
源码下载地址 选择对应的版本下载 源码编译环境需要 ant 和ivy ,版本请查看build.txt (6.3.0 可用ant-1.9.11 ivy-2.2.0 亲测可以 jdk1.8) ant配置好环境变量后执行ant compile如果您在调用Ant时看到Ivy missing 的错误(例如,.ant/lib不存在),运行Ant ivy-bootstrap和重试。ant...
2018-05-18 13:19:48 1234
原创 Elasticsearch 6.X 安装部署
参考5的配置 es5.x配置及常见问题 可能遇到的新问题[2018-02-09T14:36:08,421][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]org.elasticsearch.bootstrap.StartupException:...
2018-02-09 16:06:06 1374
elasticsearch5.3.0jdbc源码工程
2017-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人