partition

MapReduce——Shuffle过程

时光毁灭记忆、已成空白 提交于 2020-04-05 19:04:48
Shuffle的本意是洗牌、混洗,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程,把一组无规则的数据尽量转化成一组具有一定规则的数据。 为什么MapReduce计算模型需要Shuffle过程? 我们都知道MapReduce计算模型一般包括两个重要的阶段: Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。 Reduce数据来源于Map,Map的输出即是Reduce的输入,Reduce需要通过Shuffle来获取数据。 从Map输出到Reduce输入的整个过程可以广义地称为Shuffle (Reduce开始之前吧对应的数据从每个map输出的中间结果拷贝过来,这个过程称为copy,拷贝中间结果过来后,会经过合并、排序等操作,会产生一个排序的输入文件,这个过程为sort,copy和sort两个过程合起来也称为Shuffle过程。)Shuffle横跨Map端和Reduce端,在Map端包括Spill过程,在reduce端包括copy和sort过程。 MapReduce详细流程 1、切片 在FileInputFormat中,计算切片大小的逻辑:Math.max(minSize, Math.min(maxSize, blockSize)) minSize的默认值是1

【Kafka】01 生产者

ぐ巨炮叔叔 提交于 2020-04-03 23:03:33
0. 目录 目录 0. 目录 1. 生产消息步骤 2. ProducerRecord的属性 3. 必要的参数 4. 发送消息 5. 分区器 6. 拦截器 7. 整体架构 8. 几个重要生产者参数 9. 生产者是线程安全的 1. 生产消息步骤 配置生产者客户端参数,创建生产者实例 构建待发送的消息 发送消息 关闭生产者 2. ProducerRecord的属性 public class ProducerRecord<K, V> { private final String topic;//必填项 private final Integer partition; private final Headers headers; private final K key; private final V value;//必填项 private final Long timestamp; } key用来计算分区号,确定发送到指定分区 3. 必要的参数 bootstrap.servers:指定kafka集群的broker的地址,默认为空,虽然可以从给定的broker找到其他broker,但是为防止某一节点宕机导致消息发送失败,建议填写至少2个broker地址。 key.serializer、value.serializer client.id:客户端ID,若不设置,会自动生成非空字符串。 设置技巧

Flink Kafka Connector 与 Exactly Once 剖析

限于喜欢 提交于 2020-03-30 14:33:50
Flink Kafka Connector 是 Flink 内置的 Kafka 连接器,它包含了从 Kafka Topic 读入数据的 Flink Kafka Consumer 以及向 Kafka Topic 写出数据的 Flink Kafka Producer,除此之外 Flink Kafa Connector 基于 Flink Checkpoint 机制提供了完善的容错能力。本文从 Flink Kafka Connector 的基本使用到 Kafka 在 Flink 中端到端的容错原理展开讨论。 1.Flink Kafka 的使用 在 Flink 中使用 Kafka Connector 时需要依赖 Kafka 的版本,Flink 针对不同的 Kafka 版本提供了对应的 Connector 实现。 1.1 版本依赖 既然 Flink 对不同版本的 Kafka 有不同实现,在使用时需要注意区分,根据使用环境引入正确的依赖关系。 <dependency> <groupId>org.apache.flink</groupId> <artifactId>${flink_kafka_connector_version}</artifactId> <version>${flink_version}</version> </dependency> 在上面的依赖配置中 ${flink

kafka常见面试题

瘦欲@ 提交于 2020-03-30 08:52:57
https://blog.csdn.net/qq_28900249/article/details/90346599 1、为什么要使用 kafka,为什么要使用消息队列 缓冲和削峰 解耦和扩展性 冗余 健壮性 异步通信 2、kafka的分区与消费者关系 分区(partition) kafka中的topic可以细分为不同的partition,一个topic可以将消息存放在不同的partion中。 leader和follower 每个partition可以设置一个leader和多个follower。kafka的消息没有设置读写分离,每个消息发送时,都是发送至对应的partition的leader-partition,follower-partition主要是为了备份数据而存在,当leader-partion出现故障时,数据已经完全同步的follower-partition也会切换成leader-partition。 AR和ISR AR:分区中所有的副本统称为AR。 ISR:所有与leader节点保持同步的副本(包括leader节点)组成的节点,生产者首先将消息发送给leader副本,然后follower从leader中同步消息。 ISR是AR的子集 。 数据的存储 在partion中,一个topic中的数据存放在不同的partion中,一个分区的内容会存储成一个log文件

MySQL优化(二)

╄→гoц情女王★ 提交于 2020-03-30 04:43:53
1、建立基础索引:在where,order,join字段上建立索引 优化,组合索引:基于业务逻辑 前缀索引使用上与普通索引一致! 2、索引的存储结构:Btree索引,hash索引,聚簇索引 Btree不是二叉树 在MySQL中,仅仅只有InnoDB的主键索引是聚簇结构,其他的都是典型的BTree结构 Hash索引就是key-value,就是PHP中的关联数组,索引被载入到内存时 3、queryCache,当数据表结构改动,缓存失效,动态数据不能被缓存 show variables like 'query_cache_type' show variables like 'query_cache_size' set global query_cache_size=102760448; select sql_cache * from student where user like '%fyw' 4、分区,partition 一个表的数据和索引存储在不同文件中 //利用id字段,使用hash算法,将数据分布到10个分区内 partition by hash(id) partitions 10 5、算法 (1)hash算法:(均匀分配) 分区算法,在业务逻辑层面,表示均匀分配。 (2)key算法:(均匀分配) partition by key(subject) partitions 10

实现基于网络的yum源和包管理工具

六眼飞鱼酱① 提交于 2020-03-30 00:37:46
1、自建yum仓库,分别为网络源和本地源; 配置本地源#### 建立本地源目录 [root@qingcheng-db lgp]#mkdir /mnt/cdrom [root@qingcheng-db lgp]#mkdir /yum 挂载Centos光盘 [root@qingcheng-db lgp]#mount /dev/cdrom /mnt/cdrom 备份repo [root@qingcheng-db lgp]#cd /etc/yum.repo.d/ [root@qingcheng-db lgp]#mkdir backup [root@qingcheng-db lgp]#mv CentOS-Base.repo CentOS-CR.repo CentOS-Vault.repo CentOS-Vault.repo ./backup 编辑Centos-Media.repo [root@qingcheng-db lgp]#vim Centos-Media.repo 清除yum缓存 [root@qingcheng-db lgp]#yum clean all 配置网络源: yam -y install httpd 编辑 2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。 1下载httpd2.4源码包到当前路径,并解压 2使用yum安装若干依赖包: 3进入解压后的文件夹

谈一下如何设计Oracle 分区表

為{幸葍}努か 提交于 2020-03-28 16:23:38
在谈设计Oracle分区表之间先区分一下 分区表 和 表空间 的个概念: 表空间 :表空间是一个或多个数据文件的集合,所有数据对象都存放在指定的表空间中,但主要存放表,故称表空间。 分区表 :分区致力于解决支持极大表和索引的关键问题。它采用他们分解成较小和易于管理的称为分区的片(piece)的方法。一旦分区被定义,SQL语句就可以访问的操作某一个分区而不是整个表,因而提高管理的效率。分区对于数据仓库应用程序非常有效,因为他们常常存储和分析巨量的历史数据。当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 表分区的具体作用 : Oracle的分区表功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。 通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。 分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理

360°全方位比较PostgreSQL和MySQL

假如想象 提交于 2020-03-27 23:30:46
360°全方位比较PostgreSQL和MySQL 一、原文 https://www.enterprisedb.com/blog/postgresql-vs-mysql-360-degree-comparison 二、摘要 本文对MySQL和PostgreSQL进行详细的比较,方便选择。 1、为什么使用PostgreSQL 2、为什么使用MySQL 3、易用性 4、语法 5、数据类型 6、复制与集群 7、视图 8、触发器 9、存储过程 10、查询 11、分区 12、表的可伸缩性 13、NoSQL能力 14、安全 15、分析函数 16、GUI工具 17、性能 18、Adoption 19、最佳环境 三、PG vs MySQL:选择哪个? PostgreSQL和MySQL都是最流行的开源数据库。MySQL被认为是世界上最流行的数据库,而PostgreSQL被认为是世界上最先进的数据库。MySQL并不完全符合SQL标准,并且很多PG上的特性并不支持。这就是为什么PG受到大量开发者喜欢的原因,并且现在PG越来越流行。 前几年,Oracle收购了MySQL,导致MySQL的出现两个版本:商业版和社区版。对于后者,由于Oracle控制了MySQL的开发,受到了广大使用者的批评。 PostgreSQL是世界上最受欢迎的数据库:他支持大量企业级特性和功能。PG由postgresql全球社区开发

《从Paxos到zookeeper》第6章 Zookeeper的典型应用场景(下)

 ̄綄美尐妖づ 提交于 2020-03-27 11:06:53
目录 6.2 Zookeeper在大型分布式系统中的应用 6.2.1 Hadoop YARN介绍 如何解决ResourceManager单点问题,实现高可用? 6.2.3 Kafka 术语介绍 问题 Kafka与Zookeeper Broker注册管理 Topic注册管理 生产者负载均衡 消费者负载均衡 消费分区与消费者关系 消息消费进度Offset记录 消费者注册 负载均衡 1)Range策略 2)RoundRobin策略 资料 6.3 Zookeeper在阿里巴巴的实践与应用 6.3.2 案例二 RPC服务框架:Dubbo 服务提供者 服务消费者 监控中心 6.3.3 案例三 基于MySQL Binlog的增量订阅和消费组件:Canal Canal基本工作原理 Canal Server主备切换设计 Canal Client的HA设计 6.3.4 案例四 分布式数据库同步系统:Otter 分布式SEDA模型 数据模型 任务处理流程(多阶段任务协调处理) 6.2 Zookeeper在大型分布式系统中的应用 6.2.1 Hadoop YARN介绍 YARN是Hadoop为了提高计算节点的扩展性,同时为了支持多计算模型和提供资源的细粒度调度而引入的全新一代分布式协调框架。 核心为ResourceManager,资源管理中心,负责集群中所有资源的统一管理和分配。 (可理解为YARN的大脑

树莓派/Debian 挂载硬盘

雨燕双飞 提交于 2020-03-26 13:19:40
前言 在 Linux 中要使用 Samba 文件协议来实现 NAS 配置,首先要挂载硬盘。本文来简述如何在 Linux 中来挂载硬盘。 格式化 将硬盘插入到主机对应接口。 查看硬盘信息 fdisk -l 可以看到插入的硬盘 /dev/sdb1 的文件系统类型为:FAT32 (LBA) 。 格式化硬盘 使用 fdisk 命令对 /dev/sdb1 进行分区 fdisk /dev/sdb1 具体过程如下: root@debyogile:/home/yogile# fdisk /dev/sdb1 Welcome to fdisk (util-linux 2.33.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. # 删除硬盘原分区 Command (m for help): d Selected partition 1 Partition 1 has been deleted. # 添加硬盘新分区 Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for