partition

Kafka 分区分配计算(分区器 Partitions )

匿名 (未验证) 提交于 2019-12-02 23:32:01
KafkaProducer在调用send方法发送消息至broker的过程中,首先是经过拦截器Inteceptors处理,然后是经过序列化Serializer处理,之后就到了Partitions阶段,即分区分配计算阶段。在某些应用场景下,业务逻辑需要控制每条消息落到合适的分区中,有些情形下则只要根据默认的分配规则即可。在KafkaProducer计算分配时,首先根据的是ProducerRecord中的partition字段指定的序号计算分区。读者有可能刚睡醒,看到这个ProducerRecord似曾相识,没有关系,先看段Kafka生产者的示例片段: Producer<String,String> producer = new KafkaProducer<String,String>(properties); String message = "kafka producer demo"; ProducerRecord<String, String> producerRecord = new ProducerRecord<String, String>(topic,message); try { producer.send(producerRecord).get(); } catch (InterruptedException e) { e.printStackTrace(); }

Kafka流处理平台

匿名 (未验证) 提交于 2019-12-02 23:05:13
1. Kafka简介 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 Kafka具有以下特性: 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。 可扩展性:kafka集群支持热扩展 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败) 高并发:支持数千个客户端同时读写 Kafka的使用场景: 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。 消息系统:解耦和生产者和消费者、缓存消息等。 用户活动跟踪

Kafka 入门

匿名 (未验证) 提交于 2019-12-02 22:56:40
什么是Kafka? Kafka基本概念 Broker:物理概念,Kafka集群中的每个Kafka节点; Topic:逻辑概念,Kafka消息的类别,对数据进行区分、隔离; Partition:物理概念,Kafka下数据存储的基本单元。一个Topic数据,会被分散存储到多个Partition,每一个Partition是有序的; Replication(副本、备份):同一个Partition可能会有多个Replica,多个Replica之间数据是一样的; Replication Leader:一个Partitionn的多个Replica上,需要一个Leader负责该Partition上与Producer和Consumer交互; ReplicaManager:负责管理当前broker所有分区和副本的信息,处理KafkaController发起的一些请求,副本状态的切换、添加/读取消息、Leader的选举等。 Kafka概念延伸 Partition(最小存储单元) 每一个Topic被切分为多个Partitions(Partition属于消费者存储的基本单位); 消费者数目小于或等于Partition的数目(多个消费者若消费同个Partition会出现数据错误,所有Kafka如此设计); Broker Group中的每一个Broker保存Topic的一个或多个Partitions

HIVE――Alter Table/Partition Location注意事项

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguosb/article/details/83443483 语法: ALTER TABLE table_name [PARTITION partition_spec] SET LOCATION "new location"; 注意事项 如果location不存在,Alter Table/Partition Location语句会自动创建该目录; location必须是带有scheme信息的完整URI,比如:hdfs://bigdata-nmg-premaster.nmg01:8020/user/prod_linbo/linbo_dev/lrp/test.db/lrp_t1;不带scheme信息的测试如下: location必须在双引号中; 失败或异常情况 location指定的目录为非空目录,即目录下存在文件; 没有location指定路径的权限; 参考: 官网: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterTable/PartitionLocation; 文章来源: HIVE――Alter Table/Partition

UVa 11258 - String Partition

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mobius_strip/article/details/82915715 题目 将一个数字串拆分成不超过32位有符号整形(2147483647)的数组,求他们的和的最大值。 分析 动态规划(DP)。区间动态规划,按照区间长度更新即可。 预处理:设a(i,j)为从i开始到j结束的数字串的值,如果超过2147483647则为0; 状态定义:f(i,j)为区间[i, j]上的最优解。 转移方程:f(i,j)= max(f(i,k)+ f(k+1,j),a(i,j)) 说明 # include <stdio.h> # include <stdlib.h> # include <string.h> long long value [ 202 ] [ 202 ] ; long long dp [ 202 ] [ 202 ] ; int main ( ) { int N , M , bit [ 202 ] ; char str [ 202 ] ; while ( ~ scanf ( "%d" , & N ) ) while ( N -- ) { scanf ( "%s" , str ) ; M = strlen ( str ) ; for ( int i = 0 ; i < M ; ++ i )

Device /dev/sdb not found (or ignored by filtering

匿名 (未验证) 提交于 2019-12-02 22:56:40
最近想将服务器的本地硬盘通过LVM来灵活管理,具体问题如下: [root@localhost ~]# pvcreate /dev/sdb Device /dev/sdb not found (or ignored by filtering). [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 2.9T 0 disk sda 8:0 0 744.1G 0 disk ├―sda1 8:1 0 5G 0 part /boot └―sda2 8:2 0 739.1G 0 part ├―VolGroup-LogVol01 (dm-0) 253:0 0 390.6G 0 lvm / └―VolGroup-LogVol00 (dm-1) 253:1 0 260G 0 lvm [SWAP] sdb 8:16 0 21.8T 0 disk [root@localhost soft]# fdisk -l /dev/sdb WARNING: GPT (GUID Partition Table) detected on ‘/dev/sdb‘! The util fdisk doesn‘t support GPT. Use GNU Parted. Disk /dev/sdb: 24000.0

Mysql分区表及自动创建分区Partition

匿名 (未验证) 提交于 2019-12-02 22:06:11
Range分区表建表语句如下,其中分区键必须和id构成主键和唯一键 CREATE TABLE `test1` ( `id` char(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘自增主键(guid)‘, `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间‘, `partition_key` int(8) NOT NULL COMMENT ‘分区键(格式:yyyyMMdd)‘, PRIMARY KEY (`id`,`partition_key`), UNIQUE KEY `id_UNIQUE` (`id`,`partition_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci PARTITION BY RANGE (partition_key) (PARTITION p0 VALUES LESS THAN (20180619) ENGINE = InnoDB, PARTITION p20180619 VALUES LESS THAN (20180620) ENGINE = InnoDB, PARTITION p20180621 VALUES

MySQL-表分区

匿名 (未验证) 提交于 2019-12-02 22:06:11
一、表分区介绍 1.1、简单介绍 1)表分区是将一个表的数据按照一定的规则 水平划分 为不同的逻辑块,并分别进行物理存储,这个规则就叫做 分区函数 ,可以有不同的分区规则 2)通过 show plugins 语句查看当前MySQL是否支持表分区功能 mysql > show plugins ; +----------------------------+----------+--------------------+---------+---------+ | Name | Status | Type | Library | License | +----------------------------+----------+--------------------+---------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL | | sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL | | PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL | | MRG

mysql 表分区、按时间函数分区、删除分区、自动添加表分区

匿名 (未验证) 提交于 2019-12-02 22:02:20
mysql 表分区的几种方式: RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。 LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。 HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式。 KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。必须有一列或多列包含整数值。 常用的按时间分区可以按照年、月、日等条件用来分区,因为是按时间条件分区所以选用RANGE分区方式。 分区的切条件判断: LESS THAN:如果是数值就是小于等于,时间则是小于。 LESS THAN MAX:不等于。 IN:包含于某某区间。 按实际分区的时间函数选用: 按日分区切分时的条件可以用day()、to_days()时间函数,需要注意的是必须是返回值是整形的。 按月分区采用month()时间函数; 其他条件分区时间函数可到我关于时间函数的博文查看: https://blog.csdn.net/qq_36216193/article/details/90404527 其中按时间字段create_date按天分区,首先需要把date字段改成主键

Linux系统扩容根目录磁盘空间

匿名 (未验证) 提交于 2019-12-02 21:59:42
作者:非法小恋 Linux根目录磁盘空间不够用了,当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘,但是发现系统里的大小还是没改变。 产生的原因是没有给磁盘格式化,没有增加分区。 root@ubuntu14:/opt# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/ubuntu14--vg-root 28G 23G 3.3G 88% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 3.9G 4.0K 3.9G 1% /dev tmpfs 799M 384K 799M 1% /run none 5.0M 0 5.0M 0% /run/lock none 3.9G 0 3.9G 0% /run/shm none 100M 0 100M 0% /run/user /dev/vda1 236M 37M 188M 17% /boot root@ubuntu14:/opt# fdisk -l Disk /dev/vda: 161.1 GB, 161061273600 bytes 16 heads, 63 sectors/track, 312076 cylinders, total 314572800 sectors Units = 扇区 of 1 * 512 = 512 bytes Sector size (logical