partition

kafka深入研究之路(1)-剖析各原理02

只谈情不闲聊 提交于 2019-11-28 11:30:46
kafka深入研究之路(1)-剖析各原理02 接着上一文的内容 继续升入研究 topic如何创建于删除的 topic的创建 具体流程文字为: 1、 controller 在 ZooKeeper 的 /brokers/topics 节点上注册 watcher,当 topic 被创建,则 controller 会通过 watch 得到该 topic 的 partition/replica 分配。 2、 controller从 /brokers/ids 读取当前所有可用的 broker 列表,对于 set_p 中的每一个 partition: 2.1、 从分配给该 partition 的所有 replica(称为AR)中任选一个可用的 broker 作为新的 leader,并将AR设置为新的 ISR 2.2、 将新的 leader 和 ISR 写入 /brokers/topics/[topic]/partitions/[partition]/state 3、 controller 通过 RPC 向相关的 broker 发送 LeaderAndISRRequest。 注意:此部分 和 partition 的leader选举过程很类似 都是需要 zk参与 相关信息都是记录到zk中 controller在这些过程中启到非常重要的作用。 topic的删除 文字过程: 1、 controller

testdisk修复磁盘文件

[亡魂溺海] 提交于 2019-11-28 11:23:04
使用testdisk,分析之后,使用;P ,list文件,然后使用如下方法恢复文件 Use Right to change directory, h to hide Alternate Data Stream q to quit, : to select the current file, a to select all files C to copy the selected files, c to copy the current file 数据恢复利器-Testdisk - - 数据恢复利器-Testdisk 今天我要给大家介绍的主角是 Testdisk 首先, Testdisk 是一个强大的免费的跨平台的数据恢复工具,根据它的 官网 上的简介,这款软件主要被设计用于恢复丢失的分区以及修复那些由于人为或者病毒等原因导致分区表错误而无法启动系统的问题。 除此之外,Testdisk更多的特性大家可以参考官方列出的功能列表: TestDisk can Fix partition table, recover deleted partition Recover FAT32 boot sector from its backup Rebuild FAT12/FAT16/FAT32 boot sector Fix FAT tables Rebuild NTFS boot sector

WD align

倖福魔咒の 提交于 2019-11-28 08:19:08
/* from: http://bbs.ylmf.net/forum.php?mod=viewthread&tid=1610570 */ 最近入手了搭载Advance Format的WD1.5TB EARS硬碟,才开始注意Advance Format这东西,花了点时间研读一下WD本身和Anandtech.com上的说明,才搞清楚因应的措施。虽然之前站上已经有些朋友在该款硬碟的讨论串里做了颇详细的说明,不过敝人还是希望能独立出一篇供初次使用的朋友参考,如有错误,也请不吝指教。 懒的看说明的朋友可以直接跳到红字部份决定何时该使用WD Align。 说明: Advanced Format只是WD称呼实体磁区(Sector)配置为4096Byte(4kByte)的硬碟,一般传统硬碟的实体磁区配置为512Byte。 问题点: 所有Win5.x的作业系统(2k, xp, 2k3, WHS)都对实体4k的磁区配置(Physical 4k Sector)没有任何概念,因为Win2k发行时这个议题的讨论还不是非常成熟,加上所有Win5.x的作业系统在分割第一个Partition的时候都习惯从LBA63开始,导致在Advance Format的硬碟上分割磁区时产生偏差。 简单的说,假设有一排长方形的柜子(每个柜子=4kB),每个柜子里有八个格子(每个格子=512B),Win5

spark读取hive

时光总嘲笑我的痴心妄想 提交于 2019-11-28 07:53:12
spark读取hive是最简单的,构造一个sparksession对象,直接执行SQL就得读取,然后直接insert就能写入。 因为spark客户端配置了你的hive数据库的信息,所以能够直接读取hive数据库。 spark = SparkSession .builder() .appName("Java Spark SQL basic example") .master(evm) .config("hive.exec.dynamic.partition", "true") // .config("hive.exec.max.dynamic.partitions.pernode", 10000) .config("hive.exec.max.dynamic.partitions", 100000) .config("hive.exec.dynamic.partition.mode", "nonstrict") .enableHiveSupport() // 启用HIVE数据源,必须参数 .getOrCreate(); // SQL : select * from xxx public Dataset<Row> readFromHive(String sql) { if (StringUtils.isBlank(sql)) { throw new

3、kafka工作流程

家住魔仙堡 提交于 2019-11-28 07:41:59
一、kafka各成员 kafka: 分布式消息系统,将消息直接存入磁盘,默认保存一周。 broker: 组成kafka集群的节点,之间没有主从关系,依赖zookeeper来协调,broker负责满息的读写和存储,一个broker可以管理多个partition. producer: 消息的生产者,自己决定向哪个partition中去生产消息,两种机利:hash,轮循。 consumer: 消息的消费者,consumer通过zookeeper去维护消费者偏移量。consumer有自己的消费者组,不同的组之间消费同一个topic数据,互不影响, 相同的组内的不同的consumer消费同一个topic,这个topic中相同的数据只能被消费一次。 topic: 一类消息总称/一个消息队列。topic是由partition组成的,有多少?-> 创建指定。 partition: 组成topic的单元,每个partition有副本,有多少?-> 创建topic时指定。每个partition只能由一个broker来管理,这个broker就是这个partition的leader。 zookeeper: 协调kafka broker,存储原数据:consumer的offset+broker信息+topic信息+partition信息; 二、分析zookeeper元数据存储 1、创建topic [root

快排中 partition 的两种写法!

我怕爱的太早我们不能终老 提交于 2019-11-28 07:36:59
1 void swap(int &A,int &B) { int temp; temp=A; A=B; B=temp; } int partition(QVector<int> &numbers,int low,int high) { int pivotkey=numbers[low];//当参考值 while(low<high) { while(low<high&&numbers[high]>pivotkey) {high--;} swap(numbers[low],numbers[high]); while(low<high&&numbers[low]<=pivotkey) { low++;} swap(numbers[low],numbers[high]); } return low; } 2 int partition(QVector<int> &input, int s, int e){ int j = s-1; int cmp = input[e]; for (int i = s; i < e; ++i) { if (input[i] < cmp) swap(input[i], input[++j]); } swap(input[e], input[++j]); } 来源: https://www.cnblogs.com/cgy1012/p/11399383.html

oracle 分析函数和性能

半腔热情 提交于 2019-11-28 07:23:43
分析函数语法 sum()over (partition by aa order by bb rows between unbounded preceding and unboundedfollowing ) partition by 为分组 order by 和order by 之后 为开窗函数 控制数据范围 控制数据范围的语句 unbounded preceding 第一行,可以理解为当前行的最上面一行,就是第一行 1 preceding 当前行的上一行 unbouned following 最后一行,可以理解为当前行的最后一行,就是最后一行 1 following 当前行的下一行 current row 当前行 测试 select name, shangjin, zhenying, sum(shangjin) over(partition by zhenying order by name ROWS between unbounded PRECEDING AND unbounded FOLLOWING) from xzhdx; 求每个分组中第一行到最后一行的和,就是该分组的和。 select name, shangjin, zhenying, sum(shangjin) over(partition by zhenying order by name ROWS between

Hive表的查询、创建、加载

若如初见. 提交于 2019-11-28 07:18:29
前言 hive中操作hdfs上的数据可以像操作mysql数据库一样方便轻松,避免编写mapreduce程序,又提高了数据分析查询的速度和效率,下面就来总结一下自己前些天学的表的DDL 其实和mysql差不多 但是有一点需要注意,hive是读检查,写不检查,也就是是hive在你查询的时候才验证数据的有效性,加载数据时不检查,直接加载,这样的好处是加快了处理数据的速度,如果数据量很大,加载是检查会严重拖慢速度 Hive数据类型 string int double timestamp时间 struct map array 数据库 : create database db1 location '/path' comment '描述' location代表指定数据库在dfs上的位置,其实就是创建了一个文件夹,不加也可以 用默认的位置 alert database db1 set xxx 更改数据库 drop database db1 CASCADE 删除数据库包括里面的表 show databases like 正则表达式 列出数据库 表 表分为内部表(受控表) 、外部表、临时表(创建时加TEMPORARY即可,退出客户端表即消失)。 外部表drop的时候只删除结构 不删除数据 并且可以指定表的目录(其实也就是数据的存放目录),可以用来备份数据用 create external t1(id

coalesce 与 repartition的区别

不问归期 提交于 2019-11-28 07:17:40
目录 一.spark 分区 partition的理解 二.coalesce 与 repartition的区别(我们下面说的coalesce都默认shuffle参数为false的情况) 三.实例 1. coalesce 2. repartition 四.总结 一.spark 分区 partition的理解 spark中是以vcore级别调度task的。 如果读取的是hdfs,那么有多少个block,就有多少个partition 举例来说:sparksql 要读表T, 如果表T有1w个小文件,那么就有1w个partition 这时候读取效率会较低。假设设置资源为 --executor-memory 2g --executor-cores 2 --num-executors 5。 步骤是拿出1-10号10个小文件(也就是10个partition) 分别给5个executor读取(spark调度会以vcore为单位,实际就是5个executor,10个task读10个partition) 如果5个executor执行速度相同,再拿11-20号文件 依次给这5个executor读取 而实际执行速度不会完全相同,那就是哪个task先执行完,哪个task领取下一个partition读取执行,以此类推。这样往往读取文件的调度时间大于读取文件本身,而且会频繁打开关闭文件句柄,浪费较为宝贵的io资源

SqlServer分区表概述(转载)

蓝咒 提交于 2019-11-28 05:42:54
SqlServer分区表概述(转载) 什么是分区表 一般情况下,我们建立数据库表时,表数据都存放在一个文件里。 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。 所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高select效率,还可以对历史数据经行区分存档等。但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的开销,除啦性能还会增加实现对象的管理费用和复杂性。 截止到SQL Server 2016,一张表或一个索引最多可以有 15,000 个分区 跟着做,分区如此简单 先跟着做一个分区表(分为11个分区),去除神秘的面纱,然后咱们再逐一击破各个要点要害。 分区是要把一个表数据拆分为若干子集合,也就是把把一个数据文件拆分到多个数据文件中,然而这些文件的存放可以依托一个文件组或这多个文件组,由于多个文件组可以提高数据库的访问并发量,还可以把不同的分区配置到不同的磁盘中提高效率,所以创建时建议分区跟文件组个数相同。 1.创建文件组 可以点击数据库属性在文件组里面添加 T-sql语法: alter database <数据库名> add filegroup <文件组名