- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 FLINK--Runtime核心机制剖析
AppMaster包含三个组件,分别是Dispatch、ResourceManager和JobManager。Dispatcher负责为这个新提交的作业拉起一个新的JobManager组件;ResourceManager负责资源的管理,整个Flink集群只有一个RM;JobManager负责管理Job的运行,在一个Flink集群中有多个Job同时执行,每个Job都有自己的JobManager组件。当用户提交作业时,
2023-09-18 09:01:16 85
原创 基础使用指南
基础使用指南创建数据库:create databases example_db;赋权:grant all on example_db to test;在复合分区中:第一层称为Partition,即分区,用户可以指定某一维度列作为分区列(当前只支持整形和时间类型的列),并指定每个分区的取值范围.第二层称为Distribution,即分桶,用户可以指定一个或多个维度列和桶数对数据进行Hash分布.单分区建立一个名字为table1的逻辑表,分桶列为siteid,桶数为10.这个表的sche
2022-02-21 15:20:04 146 1
原创 高级使用指南
高级使用指南表结构变更使用ALTER TABLE 命令可以修改表的Schema,包括如下修改:增加列删除列修改列类型改变列顺序新增一列uv,类型为BIGINT,聚合类型为SUM,默认值为0:ALTER TABLE table1 ADD COLUMN uv BIGINT SUM DEFAULT '0' after pv;提交成功后,可以通过以下命令查看作业进度:SHOW ALTER TABLE COLUMN;当作业状态为FINISHED,则表示作业完成.可以使用以下命令取消当前
2022-02-21 15:17:49 692
原创 数据模型、ROLLUP及前缀索引
数据模型、ROLLUP及前缀索引基本概念一张表包括行(Row)和列(Column).Row即用户的一行数据.Column用于描述一行数据中不同的字段.Column可以分为两大类:Key和Value.从业务角度看,Key和Value可以分为对应维度列和指标列.Doris的数据模型主要分为三类:AggregateUniqDuplicateAggregate模型当导入数据时,对于Key列相同的行会聚合成一行,而Value列会按照设置的AggregationType进行聚合.Aggreg
2022-02-21 15:17:05 854
原创 Doris数据划分
数据划分基本概念Row&Column一张表包含行(Row)和列(Column).Column可以分为两大类:Key和Value.Tablet & Partition在Doris的存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶).每个Tablet包含若干数据行.各个Tablet之间的数据没有交集,并且在物理上是独立存储的.多个Tablet在逻辑上归属于不同的分区(Partition).一个Tablet只属于一个Partition.而一个Partit
2022-02-21 15:08:35 1301
原创 Rollup与查询
Rollup与查询Rollup在查询中的作用:索引聚合数据(仅作用于聚合模型、即aggregate key)但是为了命中Rollup需要满足一定的条件,并且可以通过执行计算中的ScanNode节点的PreAggregation的值来判断是否可以命中Rollup,以及Rollup字段判断命中的是哪一张Rollup表.名次解释Base:基表.Rollup:一般指基于Base表创建的Rollup表,但在一些场景包括Base以及Rollup表.索引Doris会把Base/Rollup表中的前3
2022-02-21 15:07:08 317
原创 Doris导入总览
导入总览导入(Load)功能是将用户的原始数据导入Doris中.导入成功后,用户即可通过Mysql客户端查询数据.基本概念Frontend(FE):Doris系统的元数据和调度节点.在导入流程中主要负责导入规划生成和导入任务调度工作.Backend(BE):Doris系统的计算和存储节点.在导入流程中主要负责数据的ETL和存储.Broker:Broker为一个独立的无状态进程.封装了文件系统接口,提供Doris读取远端存储系统中文件的能力.导入作业(Load Job):导入作业读取用户提交的源
2022-02-21 15:05:52 1595
原创 Runtime核心机制剖析
Runtime核心机制剖析Flink Runtime整体架构Flink集群的基本结构AppMaster包含三个组件,分别是Dispatch、ResourceManager和JobManager。Dispatcher负责为这个新提交的作业拉起一个新的JobManager组件;ResourceManager负责资源的管理,整个Flink集群只有一个RM;JobManager负责管理Job的运行,在一个Flink集群中有多个Job同时执行,每个Job都有自己的JobManager组件。当用户提
2021-09-27 17:08:18 97
原创 select poll和epoll区别
概述多线程:1. 每个请求对应一个线程,但是多线程需要进行CPU上下文切换。2. 而进行上下文切换需要处理一些句柄,这些操作时非常繁琐的,所以多线程不是最好的解决方案。单线程:1.问题:如果服务器正在处理A的请求,此时B发送一个请求,B的请求会被丢弃吗?不会处理IO的设备并不是CPU而是专门的DMA控制器。因而单线程处理请求并不会造成数据的丢失。每一个网络连接都对应一个网络描述符:fdwhile(true) { for(fdx in fdA~fdE) { if(fdx
2020-10-13 10:51:27 94
原创 Cuda Streams的概述(六)-- 常见问题
常见问题问题1:使用默认流问题2:内存传输问题问题3:隐式同步问题4:主机端的限制问题5:启动overhead限制问题6:过度同步问题7:PROFILER OVERHEADcase 1-Afor(int i=0;i<repeat;i++) {kernel<<<1,1,0,stream1>>>();kernel<<<1,1>>>(); }存在问题:有一个kernel在默认流里。解决方案:每个ker
2020-05-19 08:35:40 826
原创 Cuda Streams的概述(五)-- Streaming性能
Streaming的性能profiling工具windows:Nsight Visual Studio EditionNVIDIA Visual ProfilerLinux,Mac:Nsight Eclipse EditionNVIDIA Visual ProfilernvprofNVVP PROFILER TIMELINEHost API CallsMulti-threadedMulti-GPUMulti-processKernelsMemory copi
2020-05-18 09:05:59 304
原创 Cuda Streams的概述(四)-- 同步
同步同步的APIs同步所有的事情//阻塞host端,直到所有的CUDA调用完成。cudaDeviceSynchronize();同步主机端特定的流//阻塞host端,直到流里的CUDA调用完成。cudaStreamSynchronize(stream); 通过主机端或设备用eventsCUDA Events当操作在流中发生时,提供一个信号机制。这个对profiling和同步是很有用的。Event有一个boolean状态:发生未发生注意:默认状态=发生管理Event//
2020-05-17 11:05:23 5427
原创 Cuda Streams的概述(三)-- 并发内存拷贝
并发内存拷贝首先,回顾一下CUDA的内存。设备内存:通过cudaMalloc申请内存。不能分页主机端可分页内存:默认申请方式(malloc, calloc,new)可以在OS中调入和调出。主机端页锁内存:通过特殊的申请方式不能由OS调出ALLOCATING PINNED MEMORYcudaMallocHost(...) / cudaHostAlloc(...) //在主机端申请和释放pinned 内存。cudaFreeHost(...) // 释放由cuda
2020-05-16 21:03:16 882
原创 Cuda Streams的概述(二) -- cuda Streams介绍
Cuda StreamsStreams介绍:流可以看成是在设备上work的一个队列,host端将work加入队列,然后继续添加。设备在资源free时,开始调度streams里面的work。CUDA的操作也是在流里面,比如Kernel的启动,内存的拷贝。在同一个流里面的操作是有序的(FIFO),不可以重叠了。在不同的流里面的操作是无序的,可以重叠。Streams基本操作:cudaStream_t stream; //声明一个streamcudaStreamCreate(&strea
2020-05-15 11:28:19 3181 1
原创 纵观Docker
1. 运维视角两个主要部件:Docker客户端和Docker daemon(daemon实现了Docker引擎的API)使用linux默认安装的时候,客户端与daemon之间的通信是通过本地IPC/UNIX Socket完成的1.1. 容器docker container run – 从镜像启动容器docker container exec <command/app> – 将shell连接到一个运行中的容器终端docker container stop – 停止容器
2020-05-15 09:09:05 174 1
原创 Docker引擎介绍
1. Docker引擎简介Docker引擎是用来运行和管理容器的核心软件Docker引擎主要的组件构成:Docker客户端(Docker Client), Docker守护进程(Docker deamon),containerd以及runc。2. Docker引擎详解Docker首次发布时,由两个核心组件构成:LXC和Docker daemon。Docker daemon是单一的二进制文件,包含诸如Docker客户端,Docker API,容器运行时,镜像构建等。LXC提供了对诸如命名空间
2020-05-15 09:08:34 642
原创 Docker介绍与入门
1. Mac版Docker(DfM)Mac版Docker底层是基于Linux VM运行的。Server的OS/Arch属性中显示的值是linux/amd64Client组件是原生的Mac应用,运行在Mac操作系统Darwin内核之上2. 升级Docker引擎需要重视升级前的每个前置条件,包括确保容器配置了正确的重启策略;在Swarm Mode模式下使用服务时,需要确保正确配置了draining node。升级步骤:停止Docker守护程序移除旧版本Docker安装新版本Docker
2020-05-14 22:28:09 173
原创 Cuda Streams的概述(一)-- Cuda介绍
最近在做有关Cuda的一个项目, 碰到匪夷所思的问题,在异步的时候发现并没有达到预期的效果,程序没有异步起来,然后在网上找了一个Nvida的有关Cuda Streams的一个ppt,然后照着里面的提示,使程序达到了异步的效果。首先,先回顾一下简单的简单的处理流程。将数据从CPU内存中拷贝到GPU内存中。启动一个GPU的kernel。将结果从GPU内存中拷贝到CPU的内存中。重复上面的操作。在Pipelining中的并发相比于串型可以提高性能。我们可以发现在并发的情况下,程序的运行速度有显
2020-05-14 22:15:59 1174
S4158-cuda-streams-best-practices-common-pitfalls.pdf
2020-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人