partition

Kafka学习笔记3

亡梦爱人 提交于 2019-12-04 05:34:21
《 Kafka 设计解析(四):Kafka Consumer 解析 》学习笔记 High Level Consumer——Kafka High Level Consumer 提供了一个从 Kafka 消费数据的高层抽象,从而屏蔽掉其中的细节并提供丰富的语义: Kafka 保证同一 Consumer Group 中只有一个 Consumer 会消费某条消息,实际上,Kafka 保证的是稳定状态下每一个 Consumer 实例只会消费某一个或多个特定 Partition 的数据,而某个 Partition 的数据只会被某一个特定的 Consumer 实例所消费。 也就是说 Kafka 对消息的分配是以 Partition 为单位分配的,而非以每一条消息作为分配单元。这样设计的劣势是无法保证同一个 Consumer Group 里的 Consumer 均匀消费数据,优势是每个 Consumer 不用都跟大量的 Broker 通信,减少通信开销,同时也降低了分配难度,实现也更简单。另外,因为同一个 Partition 里的数据是有序的,这种设计可以保证每个 Partition 里的数据可以被有序消费。 Partition、Consumer分配算法:《 kafka Consumer均衡算法,partition的个数和消费组组员个数的关系 》 Consumer Reblance:

历练中前行

时光总嘲笑我的痴心妄想 提交于 2019-12-04 04:45:57
1、自建yum仓库,分别为网络源和本地源 在centos7安装yum源: (1)本地自建yum仓库:首先需要启动神奇目录ls /misc/cd,用来挂载光盘, 1、 安装autofs软件,并启动。 2、 [root@centos7-2 ~]# yum install autofs 安装autofs 3、 [root@centos7-2 ~]# systemctl start autofs 启动autofs 4、 [root@centos7-2 ~]# systemctl enable autofs 下次开机启动autofs 5、 [root@centos7-2 yum.repos.d]# rm -rf repo.* 删除yum源多余的文件 [root@centos7-2 yum.repos.d]#vim development.repo 创建Yum仓库 [development] baseurl=file:///misc/cd #gpgcheck=0 gpgcheck=file:///misc/cd/RPM-GPG-KEY-CenstOS-7 enable=1 6、yum repolist 加载当前的yum源仓库  (2)光盘挂载到httpd服务上的yum源仓库 1、[root@centos7-2 yum.repos.d]#mkdir -pv /var/www/html

Flink读写Kafka

邮差的信 提交于 2019-12-04 03:27:32
/*--> */ /*--> */ Flink 读写 Kafka 在 Flink 中,我们分别用 Source Connectors 代表连接数据源的连接器,用 Sink Connector 代表连接数据输出的连接器。下面我们介绍一下 Flink 中用于读写 kafka 的 source & sink connector 。 Apache Kafka Source Connectors Apache Kafka 是一个分布式的流平台,其核心是一个分布式的发布 - 订阅消息系统,被广泛用于消费与分发事件流。 Kafka 将事件流组织成为 topics 。一个 topic 是一个事件日志( event-log ),保证读入事件的顺序为事件写入的顺序。为了实现可扩展, topic 可以被分为多个 partition ,并分布在集群中的各个节点中。但是在 topic 分区后,由于 consumers 可能会从多个 partition 读入数据,所以此时只能在 partition 级别保证事件的顺序。在 Kafka 中,当前读的位置称为偏移量( offset )。 可以通过 sbt 或 maven 构建 Flink Kafka connector 的依赖,下面是一个 sbt 的例子: // https://mvnrepository.com/artifact/org.apache.flink

Spark之RDD的定义及五大特性

我的梦境 提交于 2019-12-04 01:46:55
  RDD是分布式内存的一个抽象概念,是一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,能横跨集群所有节点并行计算,是一种基于工作集的应用抽象。   RDD底层存储原理:其数据分布存储于多台机器上,事实上,每个RDD的数据都以Block的形式存储于多台机器上,每个Executor会启动一个BlockManagerSlave,并管理一部分Block;而Block的元数据由Driver节点上的BlockManagerMaster保存,BlockManagerSlave生成Block后向BlockManagerMaster注册该Block,BlockManagerMaster管理RDD与Block的关系,当RDD不再需要存储的时候,将向BlockManagerSlave发送指令删除相应的Block。   BlockManager管理RDD的物理分区,每个Block就是节点上对应的一个数据块,可以存储在内存或者磁盘上。而RDD中的Partition是一个逻辑数据块,对应相应的物理块Block。本质上,一个RDD在代码中相当于数据的一个元数据结构,存储着数据分区及其逻辑结构映射关系,存储着RDD之前的依赖转换关系。   BlockManager在每个节点上运行管理Block(Driver和Executors),它提供一个接口检索本地和远程的存储变量,如memory、disk

Kafka设计解析(二):Kafka High Availability (上)

江枫思渺然 提交于 2019-12-04 00:42:43
Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢 复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分布式系统来说,尤其当集群规模上升到一定程度后,一台或 者多台机器宕机的可能性大大提高,对Failover要求非常高。因此,Kafka从0.8开始提供High Availability机制。本文从Data Replication和Leader Election两方面介绍了Kafka的HA机制。 Kafka为何需要High Available 为何需要Replication 在Kafka在0.8以前的版本中,是没有Replication的,一旦某一个Broker宕机,则其上所有的Partition数据都不可被消 费,这与Kafka数据持久性及Delivery Guarantee的设计目标相悖。同时Producer都不能再将数据存于这些Partition中。 如果Producer使用同步模式则Producer会在尝试重新发送 message.send.max.retries (默认值为3)次后抛出Exception,用户可以选择停止发送后续数据也可选择继续选择发送。而前者会造成数据的阻塞

KVM操作命令

牧云@^-^@ 提交于 2019-12-03 23:41:34
1、查看KVM虚拟机配置文件 #Kvm虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm qemu]# ll total 12 -rw------- 1 root root 3863 Nov 6 17:26 CentOS6.5.xml -rw------- 1 root root 3771 Nov 7 00:57 CentOS6u7.xml -rw------- 1 root root 3628 Nov 7 02:04 centos.xml drwx------ 3 root root 40 Nov 7 00:46 networks 2、启动与关闭 #显示正在运行的虚拟机 [root@kvm ~]# virsh list Id Name State ---------------------------------------------------- #显示所有虚拟机 [root@kvm ~]# virsh list --all Id Name State ---------------------------------------------------- - centos shut off - CentOS6.5 shut off - CentOS6u7 shut off #启动名字为CentOS6

fdisk命令手工分区

孤街浪徒 提交于 2019-12-03 23:07:34
1. fdisk -l   查看系统所有的磁盘和分区 2. fdisk /dev/sdb  进行磁盘分区 命令 说明 a 设置可引导标记 b 编辑bsd磁盘标签 c 设置DOS操作系统兼容标记 d 删除一个分区 l 显示已知的文件系统类型。82为Linux swap分区,83为Linux分区 m 显示帮助菜单 n 新建分区 o 建立空白DOS分区表 p 显示分区列表 q 不保存退出 s 新建空白SUN磁盘标签 t 改变一个分区的系统ID u 改变显示记录单位 v 验证分区表 w 保存退出 x 附加功能(仅专家)   n---p主----1分区号----1起始柱面-----分区大小+100M------w   n---e扩展----2分区号---124起始柱面----1024柱面(所有剩余空间都分配给扩展分区)   n---1逻辑---不用指定分区号---124起始柱面----+100M(指定大小)------w   有时因为系统的分区表正忙,则需要重新启动系统之后才能使新的分区表生效。 3. 格式化    建立文件系统  mkfs -t ext4 /dev/sdb1 mkfs -t ext4 /dev/sdb2 mkfs -t ext4 /dev/sdb5 mkfs命令非常简单易用,不过是不能调整分区的默认参数的(如块大小是4096),这些默认参数除非特殊情况,否则不需要调整

kafka-clients 1.0 高阶API消费消息(未完)

孤人 提交于 2019-12-03 21:21:31
消费消息的请求(按序) org/apache/kafka/common/requests/RequestHeader org/apache/kafka/common/requests/ApiVersionsRequest org/apache/kafka/common/requests/MetadataRequest 批量查询topic的元数据信息 org/apache/kafka/common/requests/FindCoordinatorRequest 从拿到的topic的元数据中取出leader节点 作为组协调者 org/apache/kafka/common/requests/JoinGroupRequest org/apache/kafka/common/requests/SyncGroupRequest org/apache/kafka/common/requests/OffsetFetchRequest org/apache/kafka/common/requests/ListOffsetRequest org/apache/kafka/common/requests/FetchRequest org/apache/kafka/common/requests/HeartbeatRequest 请求接口文档参考 响应接口文档参考 RequestHeader 请求头

消息写入

折月煮酒 提交于 2019-12-03 21:20:26
消息写入 生产消息时的rpc请求日志 leader节点 [2019-09-25 19:40:22,266] INFO Handling request:RequestHeader(apiKey=FETCH, apiVersion=5, clientId=broker-0-fetcher-0, correlationId=8855) -- {replica_id=0,max_wait_time=500,min_bytes=1,max_bytes=10485760,isolation_level=0,topics=[{topic=test.vv19,partitions=[{partition=0,fetch_offset=35,log_start_offset=0,max_bytes=1048576}]}]} from connection 172.16.113.38:9094-172.16.113.38:49385-0;securityProtocol:PLAINTEXT,principal:User:ANONYMOUS (com.code260.ss.KafkaTestUtils$) [2019-09-25 19:40:22,266] INFO testEnter0006-replica:0 newLogEndOffset:35 oldLogEndOffsetMetadata

linux 下制作U启动

萝らか妹 提交于 2019-12-03 21:15:23
https://unetbootin.github.io/ https://unetbootin.github.io/linux_download.html sudo add-apt-repository ppa:gezakovacs/ppa sudo apt-get update sudo apt-get install unetbootin Other Packages (may be outdated): Ubuntu Debian Fedora Suse Arch Gentoo 1、UNetbootin UNetbootin 让你创建 Ubuntu 或者其他 Linux 发行版的可引导 Live U 盘,而无需烧录 CD。 你既能让 UNetbootin 为你下载众多开箱即用的发行版,或者提供你自己的 Linux 的 .iso 文件。支持Linux和windows系统,官网有安装方法。 官方网址: https://unetbootin.github.io/ 2、Rufus Rufus是一个实用程序,可帮助格式化和创建可启动的U盘。它对以下情况特别有用:您需要从可启动的ISO(Windows,Linux,UEFI等)创建USB安装媒体,您需要在没有安装操作系统的系统上工作,你需要从DOS中刷新BIOS或其他固件,你想运行一个低级实用程序,尽管体积小