- 博客(142)
- 资源 (1)
- 收藏
- 关注
转载 数据库内核杂谈(一):一小时实现一个基本功能的数据库
很好的数据库内核系列文章,用简洁的样例描述数据库内核的众多原理。虽然后面优化器的算法难以理解,但是在其他章节我相信你一定也会有收获。数据库内核杂谈(二):存储“演化论”数据库内核杂谈(三):索引优化数据库内核杂谈(四):执行模式数据库内核杂谈(五):如何实现排序和聚合数据库内核杂谈(六):表的 JOIN(连接)数据库内核杂谈(七):数据库优化器(上)数据库内核杂谈(...
2019-12-26 18:34:22
3812
原创 clickhouse(五、运维查看后台进程并杀死)
查看后台进程-- 这个命令和mysql是一样的show processlist;-- 如果进程太多,也可用通过查询系统表 processes,select * from system.processes;-- 指定主要关心字段select user,query_id,query,elapsed,memory_usagefrom system.processes;杀死后...
2019-11-17 19:06:14
16443
3
原创 clickhouse(四、运维查看数据库及表容量)
mysql数据库有information_schema.tables系统表记录表相关元数据,clickhouse对应的有system.parts表。下面是查看clickhouse数据库和表大小、行数及压缩率等方法。-- 查看数据库容量,以测试数据为参考select sum(rows) as "总行数", formatReadableSize(sum(data_uncompres...
2019-11-17 18:59:56
13271
2
原创 Kubernetes实践——集群根据label构建多环境应用
文章目录需求环境实践配置节点标签配置deployment配置service验证结尾需求最新学习Kubernetes采坑不少,这里先用一个实际架构来分享下k8s的使用吧。我们通过k8s来编排一个多种环境的集群。要求集群提供不同环境services服务访问,如下图所示,暴露两个service,通过label区分,分别对应有不同pods提供服务,根据release = stable和release=...
2019-10-12 11:28:16
1200
转载 美团 MySQL 数据实时同步到 Hive 的架构与实践
文章转载自公众号美团技术团队,作者 萌萌背景在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据。在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类。对于业务DB数据来说,从MySQL等关系型数据库的业务数据进行采集,然后导入到Hive中,是进行数据仓库生产的重要环节。如何准确、...
2019-10-08 09:24:12
6530
原创 clickhouse(三、查询同步远程集群)
需求在使用ck时,我们难免会遇到跨集群的数据传输,比如数据备份,不同环境同步数据等。之前试过查询出来再写入,数据量少的情况还能接受,超过10w这样效率就显得很低了,而大数据环境下10w当然是不能接受的。所以ck也提供了一种比较高效的方式,直接跨集群传输,减少了io次数,进而大幅度提升效率。方案ck提供remote函数,允许我们去查询远程的服务。(这里要吐槽下ck的文档,目录结构的划分...
2019-09-18 14:53:10
4821
6
原创 Spark streaming手动保存offset到zk java实现
文章目录前言pom依赖版本Dome前言网上有部分案例是关于手动设置kafka中offset的,不过大多采用的是0.8的kafka版本,采用scala的编写,kafka-0.10版本的鲜有提及,或者都不完整。0.10版本是可以兼容之前的,但是新版本的api确实要更简洁易用。找不到可以直接拿来就用的,所以这里抽时间看官网api,写个较为完整的JAVA测试用例,希望对大家有帮助。pom依赖版本 ...
2019-09-17 19:06:09
561
原创 mybatis判断list集合是否包含指定数据
需求在mybatis脚本中想要判断list中是否含有某个字符串。准备之前脚本中用的最多的list函数就是size和遍历了。那么mybatis脚本中是不是又包含函数了。首先我们要清楚list的类型。写个简单的测试用例。<select id="test" parameterType="java.util.Map" resultType="java.util.Map">...
2019-08-29 19:07:30
27918
转载 mysql调优实践(二)
Mysql优化实践1. LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般DBA想到的办法是在type, name, create_time字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQLStats' AN...
2019-08-11 01:40:21
225
原创 jenkins构建maven、git项目部署远程服务器完整过程
文章目录前言安装Jenkins构建准备安装插件初始化配置构建项目自动化部署前言之前都是运维负责Jenkins的安装部署。这年头没有些运维能力怎么搞好大数据了,网上的案例感觉都不太完整,要看好多文章。现在就来记录Jenkins构建maven、git、ssh、java项目的全过程。安装Jenkins建议使用docker,好处就不多少赘述了。创建映射目录:# 拉取镜像docker pull...
2019-07-18 20:45:23
1103
原创 整合griffin遇到的坑——Spark无法写入ES
前言最近准备对数据质量进行监控,选定的工具是开源的Apache Griffin,由于文档稀缺,加上griffin本身使用的组件众多,期间采坑不少,我们将打好的包measure-0.6.0-SNAPSHOT.jar放到集群中,通过livy调用spark命令执行任务,过程还是相对繁琐的。本文就spark任务结果写入elasticsearch遇到异常做个小结。异常Exception in thre...
2019-07-10 10:20:25
1774
8
转载 Spark SQL优化利器——Adaptive Execution
引入 Intel 开源的 Adaptive Execution 功能,优化执行过程中的 shuffle 数目,执行过程中基于代价的 broadcast join 优化,替换 sort merge join,同时更彻底解决小文件问题。RBO 与 CBO 在逻辑计划优化阶段与物理计划生成阶段通过规则优化最终生成的 DAG。本文介绍的 Adaptive Execution 可在 Spark Jo...
2019-06-28 10:40:15
514
转载 spark改造,查询执行进度和日志留存
一、在spark中查看执行完成的日志spark thrift server的web ui在运行时可以看到sql查询的提交用户,执行sql等信息但是当这个实例停掉或者异常终止以后,你再去spark history server的webui去查看,发现这部分信息就没有了……image.png究其原因,原来spark thrift server并没有将...
2019-06-28 09:29:13
2733
转载 spark sql逻辑计划和物理计划执行原理
一条 SQL 在 Apache Spark 之旅(中)在《一条 SQL 在 Apache Spark 之旅(上)》文章中我们介绍了一条 SQL 在 ApacheSpark之旅的 Parser 和 Analyzer 两个过程,本文接上文继续介绍。优化逻辑计划阶段 - Optimizer在前文的绑定逻辑计划阶段对 Unresolved LogicalPlan 进行相关 transf...
2019-06-27 19:33:22
5580
2
原创 clickhouse(二、高阶函数应用retention计算留存数)
文章目录前言准备查询结论前言clickhouse提供retention(cond1, cond2, …)函数方便计算用户留存率,当然也可以应用在其他需求上。准备建表CREATE TABLE login_log -- 用户登录日志(uid Int32, -- 用户唯一idlogin_time DateTime -- 用户登录时间) ENGINE = MergeTree P...
2019-06-22 23:51:16
7060
2
原创 clickhouse(一、 高阶函数应用实现hive分区设置行号row_number() )
文章目录前言准备逻辑代码结尾前言最近公司选用clickhouse体系作为数据解决方案,ck由于底层存储区别hadoop函数,导致hql一些很好用的特性无法按照之前的写法来实现,比如按分区设行号,first_value(),lag()等开窗函数也无法正常使用,这也直接影响了我们实现业务的效率,可能导致直接懵逼…这不趁着周末来研究一番ck特殊语法。以保证以后快速从ck中找出惯用的hql逻辑的替代方...
2019-06-22 19:14:08
9772
2
转载 三家 Hadoop 厂商衰落启示:云大数据是颠覆者吗?
个人观点:如今三家 Hadoop 厂商衰落,很多人在疑惑云大数据会是颠覆者吗?其实云平台的出现确实对本地大数据服务造成了一定影响,但本地大数据厂商也在积极寻求转型和突破,云平台可能是和很好的想法,但是云上的资源调度会使得spark、yarn这种组件水土不服,所以就hadoop体系来说,on prem这种模式未来很长一段时间还是不可能被替换掉的。这三家Hadoop厂商的衰落并不代表整个生态存在问题...
2019-06-21 09:12:27
862
原创 mysql调优实践(一)
avg(expr),sum(expr)函数的特殊用法样例表结构 create table sales_order( `sales_order_no` varchar(20) NOT NULL COMMENT '销售订单编号', `store_code` varchar(255) NOT NULL COMMENT '门店编码', `paid_amo...
2019-06-03 11:03:25
276
原创 pyspark.sql.utils.AnalysisException: Table or view not found
基于spark2.2做测试,期间遇到的一些问题。jar包提交public static void main(String[] args) { SparkConf conf = new SparkConf(); conf.setAppName("Tsoip") SparkSession orCreate = SparkSession.builder().c...
2019-05-30 18:49:21
10643
2
转载 基于Elasticsearch实现搜索推荐
在基于Elasticsearch实现搜索建议一文中我们曾经介绍过如何基于Elasticsearch来实现搜索建议,而本文是在此基于上进一步优化搜索体验,在当搜索无结果或结果过少时提供推荐搜索词给用户。背景介绍在根据用户输入和筛选条件进行搜索后,有时返回的是无结果或者结果很少的情况,为了提升用户搜索体验,需要能够给用户推荐一些相关的搜索词,比如用户搜索【迪奥】时没有找到相关的商品,可以推荐搜...
2019-05-06 12:05:22
559
转载 上海久耶HBase实时数仓探索实践
文章从六个方面介绍,首先是久耶第一代离线数仓以及第二代实时数仓。接下来介绍下公司业务场景和业务开发,基于 HBase 的开发流程,然后介绍下公司 CDH 集群,介绍下 CDH 集群调优监控。最后分享两个生产案例。第一代离线数仓是在去年三月份上线,主要是基于 OMS 和 WMS,由于分库分表,大约有十几个库。前期通过 SQOOP 进行数据抽取,后来由于 SQOOP 的一些问题采用了阿里开源的...
2019-05-05 16:05:24
1508
原创 java同时获取多个资源锁
起因一个朋友问避免死锁,如何实现银行家算法,要么同时拿到所有资源,要么一个不拿等待下次执行。他尝试了synchronized关键字,但并不能同时锁多个资源。实现之前我也没有实际接触这种场景,想了其他方案,比如按资源顺序获取,但都不能完美解决这个需求。直到仔细阅读Lock接口API。发现tryLock() 方法。好了,就是你了。 /** * 仅当锁在调用时处于空闲状态时...
2019-04-12 15:36:10
1651
转载 实时计算在有赞的实践——效率提升之路
1. 概述有赞是一个商家服务公司,提供全行业全场景的电商解决方案。在有赞,大量的业务场景依赖对实时数据的处理,作为一类基础技术组件,服务着有赞内部几十个业务产品,几百个实时计算任务,其中包括交易数据大屏,商品实时统计分析,日志平台,调用链,风控等多个业务场景,本文将介绍有赞实时计算当前的发展历程和当前的实时计算技术架构。2. 实时计算在有赞发展从技术栈的角度,我们的选择和大多数互联网公...
2019-04-12 11:05:19
479
转载 YARN资源调度策略之Capacity Scheduler
背景yarn默认使用的是最简单的FIFO调度器,即一个default队列,所有用户共享,分配资源也是先到先得,没有优先级之分。有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源分配是不合理的(在当今社会主义之中,我们要共同富裕啊)。yarn还有两种资源调度器,capacity schedule和fair schedule,本文主要研究下capacity schedule。...
2019-04-12 10:49:33
827
原创 kafka生产者源码解析
文章目录前言概述详解KafkaProduct初始化send()Sender线程run()方法结尾前言描述版本 0.10.1.1 ,1.x之后版本一些类会有相应的调整优化。文章学习自《Apache Kafka源码剖析》和实际源码。概述整体流程初始化-》序列化-》路由分配策略-》写入缓存-》异步发送流程图消息发送过程中,会涉及两个线程协同工作,主线程将业务数据封装成Produc...
2019-04-01 22:19:46
1347
转载 ArrayDeque(java的循环数组)
前言最近在研读Kafka源码,发现它大量使用了ArrayDeque数据集合。这个集合类是java.util里提供的双端队列/栈,非线程安全,但是性能很好,非常值得研究一下。// RecordAccumulatorprivate final ConcurrentMap<TopicPartition, Deque<ProducerBatch>> batches;/...
2019-03-23 13:31:55
1179
转载 MySQL的InnoDB索引原理详解
MySQL索引原理及结构详解摘要: 本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。 InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyISAM作为对比。 这篇文章是我在学习过程中总结完成的,内容主要来自书本和博客(参考文献会给出),过程中加入了一...
2019-03-18 23:48:29
357
转载 网易数据基础平台建设经验谈
首先简单介绍一下网易杭州研究院情况简介,如下图所示:我们公司主要从事平台技术开发和建设方面,工作的重点方向主要在解决用户在数据治理中的各种问题,让用户能更高效地管理自己的数据,进而产生更大的价值,比如如何整合现有功能流程,节省用户使用成本;增加新平台不断调研,丰富平台功能;新平台功能、性能改造,从而满足用户大规模使用需求;根据业务实际需求,输出相应解决方案等。今天分享的内容主要是从数据库内...
2019-03-12 10:05:19
519
原创 Druid的简介及安装使用
文章目录应用场景特点设计原则数据格式相关软件对比总体架构安装环境服务运行应用场景从技术定位上看,Druid 是一个分布式的数据分析平台,在功能上也非常像传统的OLAP系统,但是在实现方式上做了很多聚焦和取舍,为了支持更大的数据量、更灵活的分布式部署、更实时的数据摄入,Druid 舍去了OLAP 查询中比较复杂的操作,例如JOIN 等。相比传统数据库,Druid 是一种时序数据库,按照一定的时间...
2019-03-11 22:24:51
1986
2
原创 docker重点笔记
文章目录基础核心指令相关原理原理优势常见异常Dockerfile样例基础核心指令// 登录自己的Hub,可以官网注册个,方便存储私有镜像docker login 镜像部分:// 查看镜像docker images// 拉取自身Hub或者官方镜像docker pull yyoc97/dev:test// 推送远程仓库docker push yyoc97/dev:test// ...
2019-03-10 13:09:00
377
原创 spark获取kafka数据的partition和topic
streaming读取kafka数据的分区和主题0.10.0 or higher导入pom。 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-kafka-0-10_2.11</ar...
2019-03-08 18:56:57
2236
转载 Java动态追踪技术探究
JAVA如何在生产环境动态添加日志转载自:https://tech.meituan.com/2019/02/28/java-dynamic-trace.html引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分...
2019-03-04 15:08:25
275
转载 追源索骥:透过源码看懂Flink核心框架的执行流程
flink转载自:https://www.cnblogs.com/bethunebtj/p/9168274.html追源索骥:透过源码看懂Flink核心框架的执行流程 前言 1.从 Hello,World WordCount开始 1.1 flink执行环境 1.2 算子(Operator)的注册(声明) 1.3 程序的执行 1.3.1 本地模式下的execut...
2019-02-28 00:01:07
626
原创 Spark源码解析系列(五、RDD的执行流程)
文章目录前言样例runJob前言上一节 我们看完了集群资源的分配及Executor启动,今天我们就来看下RDD的实际执行流程吧。默认大家已经知道spark中action和transformation两类算子的概念。样例def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster(&quot;local...
2019-02-27 18:07:04
704
原创 Spark源码解析系列(四、资源分配及Executor启动)
文章目录回顾RegisterApplicationstartExecutorsOnWorkers回顾上一节 我们简单看了下application的注册过程,今天我们接着看下spark里核心设计之一的资源分配实现。RegisterApplicationMaster在收到消息后调用receive() 方法,根据消息类型找到注册application的实现部分。case RegisterApp...
2019-02-25 15:09:00
678
原创 Spark源码解析系列(三、client的注册)
文章目录回顾创建client调用onStart()注册application回顾上一节我们讲了SparkContext构造函数做的初始化,会创建TaskScheduler和DAGScheduler两个重要对象,TaskScheduler又会通过StandaloneSchedulerBackend构建Driver和client。这节我们接着看下client是如何进行注册的。 client = ...
2019-02-23 15:42:06
577
原创 Spark源码解析系列(二、SparkContext内部初始化)
文章目录SparkContextTaskScheduler的实现SPIscheduler.start()SparkContext上一节我们介绍了spark-sumbit方式的任务提交。讲到了SparkContext初始化这里。我们都知道sc是spark应用最为核心的对象,那么今天我们就来看看它是如何进行初始化的。我们通过new SparkContext(conf) 方法进入源码。// 它是S...
2019-02-23 00:03:21
517
原创 Spark源码解析系列(一、任务提交)
文章目录前言提交任务流程分析前言本系列文章默认您对spark有相应的了解。笔者选择的spark版本为2.2.0,不同版本可能又些许差异。提交任务流程分析1、首先我们先集群提交任务,会调用spark-submit 这个脚本。我找到spark安装目录下的/bin目录下。查看下其内容。if [ -z "${SPARK_HOME}" ]; then source "$(dirname "$0...
2019-02-22 17:16:10
712
原创 从redis为什么单线程还那么快到epoll的设计原理
文章目录redis为什么快上下文切换为什么采用单线程redis的I/O多路复用epoll与select/poll区别select/poll的几大缺点用户态拷贝到内核态epoll IO多路复用模型实现机制epoll 优势详解底层实现总结redis为什么快Redis采用的是基于内存的采用的是单进程单线程模型的 KV 数据库,由C语言编写,官方提供的数据是可以达到100000+的QPS(每秒内查询次...
2019-01-04 22:24:18
4865
1
转载 大数据架构之Kappa
Linedln的高管Jay Kreps 结合自己在公司的实践和理解,提出跟Lambda 不一样的架构,虽然Lambda立足于构建一个同时处理离线数据和实时数据分布式系统,但是因为对于一分数据,你需要同时为离线和实时编写两套不同的代码,一当业务变更或者更换系统,又需要重新编码,需要消耗巨大的人力。基于自己的理解,Jay 提出了基于Kafka的用实时完全实现数据处理的系统,他把它命名为Kappa。K...
2018-12-29 11:00:42
2121
Docker技术入门与实战PDF
2017-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅