partition

Kafka

↘锁芯ラ 提交于 2019-11-30 09:14:30
一个kafka实例就是一个Broker,多个Broker可以在一台机器上,也可以分布于多个机器。一个topic类似一个信箱,一个topic可以设置多个partition ,多个partition可以位于一个Broker,也可以分布于多个Broker中。每个topic的每个partition 中的消息都是递增有序的,递增有序跟其他的partition 没有关系,序号称之为Offset。Producers生产消息时会指定topic和partition。Consumers消费消息时也会指定topic和partition。 订阅消息通常有两种模式:队列模式(queuing)和发布-订阅模式(publish-subscribe)。队列模式中,consumers可以同时从服务端读取消息,每个消息只被其中一个consumer读到;发布-订阅模式中消息被广播到所有的consumer中。Consumers可以加入一个consumer 组,共同竞争一个topic,topic中的消息将被分发到组中的一个成员中。同一组中的consumer可以在不同的程序中,也可以在不同的机器上。如果所有的consumer都在一个组中,这就成为了传统的队列模式,在各consumer中实现负载均衡。如果所有的consumer都不在不同的组中,这就成为了发布-订阅模式,所有的消息都被分发到所有的consumer中。更常见的是

linux 挂载新硬盘

帅比萌擦擦* 提交于 2019-11-30 08:01:40
linux 挂载新硬盘 查看硬盘设备 新硬盘设备在/dev目录下, 命名规则一般是sda, sdb, sdc... 每个硬盘的分区会形成一个分区文件, 同样在/dev目录下, 命名规则一般是(以sda为例) sda1, sda2...... 用fdisk对这块硬盘分区 fdisk /dev/sdb # 按 m 可显示菜单 Command (m for help): m Help: DOS (MBR) a toggle a bootable flag b edit nested BSD disklabel c toggle the dos compatibility flag Generic d delete a partition F list free unpartitioned space l list known partition types n add a new partition p print the partition table t change a partition type v verify the partition table i print information about a partition Misc m print this menu u change display/entry units x extra functionality

Spark工作原理

岁酱吖の 提交于 2019-11-30 07:03:16
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势: 1.运行速度快,Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。 2.适用场景广泛,大数据分析统计,实时数据处理,图计算及机器学习 3.易用性,编写简单,支持80种以上的高级算子,支持多种语言,数据源丰富,可部署在多种集群中 4.容错性高。Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即充许基于数据衍生过程)对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错,而CheckPoint有两种方式:CheckPoint Data,和Logging The Updates,用户可以控制采用哪种方式来实现容错。 Spark的适用场景 目前大数据处理场景有以下几个类型: 1.复杂的批量处理

How do I alter my existing table to create a range partition in Oracle

时光总嘲笑我的痴心妄想 提交于 2019-11-30 03:27:46
问题 I have existing table which has 10 years of data (I have taken dump). I would like to Range partition the existing table on one date key column within the table. Most of the examples I see are with CREATE TABLE..PARTITION BY RANGE... to add new partitions. But my table is existing table. I assume I need some ALTER statement. ALTER TABLE TABLE_NAME PARTITION BY RANGE(CREATED_DATE) PARTITION JAN16 VALUES LESS THAN (01-02-2016), PARTITION FEB16 VALUES LESS THAN (01-03-2016) AND GREATER THAN(31

kafka中的acks参数

老子叫甜甜 提交于 2019-11-30 03:22:53
首先acks参数,是在kafkaProducer,也就是在生产者客户端里设置的也就是说,你往kafka写东西的时候,就可以设置这个参数。 这个参数实际上有三种值可以设置,分别是0,1,和all. 第一种选择是把参数设置成0 我的kafkaProducer在客户端,只要把消息发送出去,不管那条数据有没有在哪怕Partition Leader上落到磁盘,就不管他了,直接认为这个消息发送成功。 如果你采用这种设置的话,那么你必须注意的一点是,可能你发送出去的消息还在半路。结果呢,Partition Leader所在Broker就直接挂了,然后结果你的客户端还认为消息发送成功了,此时就会导致这条消息就丢失了。 第二种选择是设置acks=1 只要Partition Leader接收到消息而且写入本地磁盘了,就认为成功了,不管其他的Follower有没有同步过去这条消息了。 这种设置其实是kafka默认的设置方式 也就是说默认情况下,要是不设置这个参数,只要Partition Leader写成功就算成功。 但是这里有一个问题,万一Partition Leader刚刚接收到消息,Follower还没来得及同步过去,结果Leader所在的broker宕机了,此时也会导致这条消息丢失,因为人家客户端已经认为发送成功了。 最后一种情况就是设置为all Partition Leader接收到消息之后

consumer.How to specify partition to read? [kafka]

余生颓废 提交于 2019-11-30 02:47:26
问题 I am introducing with kafka and I want to know how to specify partition when I consume messages from topic. I have found several picture like this: It means that 1 consumer can consume messages from several partitions but 1 partition can be read by single consumer(within consumer group) Also I have read several examples for consumer and it looks like this: Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "consumer-tutorial"); props

CentOS7.6根目录扩容,新增磁盘

橙三吉。 提交于 2019-11-29 21:50:49
1.df -h查看现在磁盘使用情况 2.查看并格式化新增的磁盘 fdisk -l 我新增的磁盘是/dev/vdb,所以格式化该磁盘(/dev/vdb) fdisk /dev/vdb 依次输入: 输入n:添加新分区, 输入p:主分区, 输入1:表示1个分区, 输入回车:从磁盘开始, 输入回车:到磁盘结尾 输入t:改变分区类型 输入8e:改变分区LVM 输入w:保存退出 说明:p表示打印当前状态 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x3bb4c564 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):p 磁盘 /dev/vdb:549.8 GB, 549755813888 字节,1073741824 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x3bb4c564 设备 Boot Start End Blocks Id System 命令(输入 m 获取帮助):n

Kafka的个人总结一

笑着哭i 提交于 2019-11-29 19:24:16
Kafka个人解读前篇 Kafka的概述 消息队列的回顾 消息队列 消息队列的好处 消息队列的两种模式 Kafka的基础架构 Kafka架构深入 Kafka工作流程及文件存储机制 Kafka生产者 分区策略 数据可靠性保证 acks参数配置: 故障处理细节 Exactly Once语义(精确一次) Kafka消费者 消费模式 分区分配策略 offset维护 消费者组测试 Kafka的概述 kafka是一个分布式的消息队列,基于发布/订阅模式,主要用于大数据的实时处理领域. 消息队列的回顾 消息队列 传统的消息队列有两种处理方式: 同步处理: 任务提交给队列后,等待完成再进行其他操作 异步处理: 任务提交给队列后,不用等待完成,即可进行其他操作 消息队列的好处 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保他们遵守同样的接口约束 2.可恢复性: 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理 3.缓冲: 有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况 4.灵活性&峰值处理能力: 在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费

Apache Kafka(十)Partitions与Replication Factor 调整准则

筅森魡賤 提交于 2019-11-29 18:23:23
Partitions 与 Replication Factor 调整准则 Partition 数目与Replication Factor是在创建一个topic时非常重要的两个参数,这两个参数的取值会直接影响到系统的性能与稳定性。 尽量在第一次创建一个topic时就指定这两个参数,因为 如果Partition 数目在之后再次做调整,则会打乱key的顺序保证(同样的key会分布到不同的partition上) 如果Replication Factor在之后再次增加,则会给集群带来更大的压力,可能会导致性能下降 1. Partition 数目 一般来说,每个partition 能处理的吞吐为几MB/s(仍需要基于根据本地环境测试后获取准确指标),增加更多的partitions意味着: 更高的并行度与吞吐 可以扩展更多的(同一个consumer group中的)consumers 若是集群中有较多的brokers,则可更大程度上利用闲置的brokers 但是会造成Zookeeper的更多选举 也会在Kafka中打开更多的文件 调整准则: 一般来说,若是集群较小(小于6个brokers),则配置2 x broker数的partition数。在这里主要考虑的是之后的扩展。若是集群扩展了一倍(例如12个),则不用担心会有partition不足的现象发生 一般来说,若是集群较大(大于12个)

通过spark sql创建HIVE的分区表

本小妞迷上赌 提交于 2019-11-29 18:20:09
今天需要通过导入文本中的数据到HIVE数据库,而且因为预设该表的数据会比较大,所以采用分区表的设计方案。将表按地区和日期分区。在这个过程出现过一些BUG,记录以便后期查看。 spark.sql( "use oracledb" ) spark.sql( "CREATE TABLE IF NOT EXISTS " + tablename + " (OBUID STRING, BUS_ID STRING,REVTIME STRING,OBUTIME STRING,LONGITUDE STRING,LATITUDE STRING, \ GPSKEY STRING,DIRECTION STRING,SPEED STRING,RUNNING_NO STRING,DATA_SERIAL STRING,GPS_MILEAGE STRING,SATELLITE_COUNT STRING,ROUTE_CODE STRING,SERVICE STRING) \ PARTITIONED BY(AREASTRING,OBUDATE STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' " ) spark.sql( "set hive.exec.dynamic.partition.mode = nonstrict" ) spark.sql( "set