partition

Kafka与ActiveMQ区别

家住魔仙堡 提交于 2019-11-26 12:43:17
Kafka 是LinkedIn 开发的一个高性能、分布式的消息系统,广泛用于日志收集、流式数据处理、在线和离线消息分发等场景。虽然不是作为传统的MQ来设计,在大部分情况,Kafaka 也可以代替原先ActiveMQ 等传统的消息系统。 Kafka 将消息流按Topic 组织,保存消息的服务器称为Broker,消费者可以订阅一个或者多个Topic。为了均衡负载,一个Topic 的消息又可以划分到多个分区(Partition),分区越多,Kafka并行能力和吞吐量越高。 Kafka 集群需要zookeeper 支持来实现集群,最新的kafka 发行包中已经包含了zookeeper,部署的时候可以在一台服务器上同时启动一个zookeeper Server 和 一个Kafka Server,也可以使用已有的其他zookeeper集群。 和传统的MQ不同,消费者需要自己保留一个offset,从kafka 获取消息时,只拉去当前offset 以后的消息。Kafka 的scala/java 版的client 已经实现了这部分的逻辑,将offset 保存到zookeeper 上。每个消费者可以选择一个id,同样id 的消费者对于同一条消息只会收到一次。一个Topic 的消费者如果都使用相同的id,就是传统的 Queue;如果每个消费者都使用不同的id, 就是传统的pub-sub.

Spark Application、Driver、Job、stage、task

南楼画角 提交于 2019-11-26 10:12:56
1、Application   application(应用)其实就是用spark-submit提交的程序。一个application通常包含三部分:从数据源(比方说HDFS)取数据形成RDD,通过RDD的transformation和action进行计算,将结果输出到console或者外部存储。 2、Driver   Spark中的driver感觉其实和yarn中Application Master的功能相类似。主要完成任务的调度以及和executor和cluster manager进行协调。有client和cluster联众模式。client模式driver在任务提交的机器上运行,而cluster模式会随机选择机器中的一台机器启动driver。通俗讲,driver可以理解为用户自己编写的程序。我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程.   Driver进程本身会根据我们设置的参数,占有一定数量的内存和CPU core。而Driver进程要做的第一件事情,就是向集群管理器(常用的如 yarn)申请运行Spark作业需要使用的资源,这里的资源指的就是Executor进程。YARN集群管理器会根据我们为Spark作业设置的资源参数,在各个工作节点上,启动一定数量的Executor进程

教你玩转Linux—磁盘管理

孤人 提交于 2019-11-26 09:39:22
导读 Linux 磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个 命令 为df、du和fdisk。 df df 命令 参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法: df [-ahikHTm] [目录或文件名] 选项与参数: -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统; -k :以 KBytes 的容量显示各文件系统; -m :以 MBytes 的容量显示各文件系统; -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; -H :以 M=1000K 取代 M=1024K 的进位方式; -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出; -i :不用硬盘容量,而以 inode 的数量来显示 实例 1 将系统内所有的文件系统列出来! [root@www ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc2 9920624 3823112 5585444 41% / /dev/hdc3 4956316 141376 4559108 4% /home /dev/hdc1 101086

k8s之statefulset控制器

守給你的承諾、 提交于 2019-11-26 09:17:23
operator: statefulset: 有状态副本集 特点 运行在 : 1, 稳定且唯一的网络标识符 2,稳定且持久的存储 3,有序,平滑地部署和扩展 4,有序,平滑地删除和终止 5,有序的滚动更新 三个组件 :headless service( 无头服务 ), statefuleset,volumeClaimTemplate( 存储卷申请模板 ) 先准备 pv apiVersion: v1 kind: PersistentVolume metadata: name: pv001 labels: name: pv001 polity: fast spec: nfs: path: /data/volumes/v1 server: node2 accessModes: ["ReadWriteMany","ReadWriteOnce"] capacity: storage: 5Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: pv002 labels: name: pv002 polity: fast spec: nfs: path: /data/volumes/v2 server: node2 accessModes: ["ReadWriteOnce"] capacity: storage: 5Gi ---

Kafka原理及单机部署

穿精又带淫゛_ 提交于 2019-11-26 04:57:42
博文大纲: 一、kafka介绍及原理 二、部署单机kafka 一、kafka介绍及原理 kafka是由Apache软件基金会发布的一个开源流处理平台,由Scala和Java编写。它是一种高吞吐量的分布式发布的订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。 1、kafka的特性 kafka是一种高吞吐量的分布式发布订阅消息系统,具有以下特性: 通过磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能; 持久性:使用文件性存储,日志文件存储消息,需要写入硬盘,采用达到一定阈值才写入硬盘,从而减少磁盘I/O,如果kafka突然宕机,数据会丢失一部分; 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数百万的消息; 支持通过kafka服务器和消费机集群来分区消息; 支持Hadoop并行数据加载。 2、kafka相关术语 Broker:消息中间件处理节点

Oracle 分组排序函数

放肆的年华 提交于 2019-11-26 02:41:44
项目需求:分组排序 1、要求取出按field1分组后,并在每组中按照field2排序; 2、根据要求取出1中已经分组排序好的前多少行的数据; 1.row_number() over() row_number()over(partition by col1 order by col2)表示根据col1分组,再分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 (1,2,3,4,5.....) 2.rank() over() rank()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)(1,2,2,4,5...) 3.dense_rank() over() dense_rank()也是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的。(1,2,2,3,4,5....) 示例SQL代码: CREATEDATE ACCNO MONEY 2014/6/5 111 200 2014/6/4 111 600 2014/6/5 111 400 2014/6/6 111 300 2014/6/6 222 200 2014/6/5 222 800 2014/6/6 222 500 2014/6/7 222 100 2014/6/6 333 800 2014/6/7 333 500 2014/6/8 333

Kafka笔记整理(二):Kafka Java API使用

微笑、不失礼 提交于 2019-11-26 00:29:04
[TOC] 下面的测试代码使用的都是下面的topic: $ kafka-topics.sh --describe hadoop --zookeeper uplooking01:2181,uplooking02:2181,uplooking03:2181 Topic:hadoop PartitionCount:3 ReplicationFactor:3 Configs: Topic: hadoop Partition: 0 Leader: 103 Replicas: 103,101,102 Isr: 103,101,102 Topic: hadoop Partition: 1 Leader: 101 Replicas: 101,102,103 Isr: 101,102,103 Topic: hadoop Partition: 2 Leader: 102 Replicas: 102,103,101 Isr: 102,103,101 Kafka Java API之producer 关于producer API的使用说明,可以查看 org.apache.kafka.clients.producer.KafkaProducer 这个类的代码注释,有非常详细的说明,下面就直接给出程序代码及测试。 程序代码 KafkaProducerOps.java package com.uplooking

Greenplum -- 最全分区表操作

左心房为你撑大大i 提交于 2019-11-25 22:15:21
一、Greenplum 分区原理 分区表意思是将一个大表在物理上分割成几块,GPDB中的分区表和PostgreSQL中实现原理一样,都是用过表继承、约束来实现。但是与PostgreSQL也有所不同,在PostgreSQL中,一个父表,多个子表来实现分区表,需要手动向子表插入数据,如果向父表插入数据,则直接会被插入到父表中,在GPDB中,可以直接想父表插入数据,便可以根据约束直接自动向对应的子表插入数据,当分区子表不存在时,插入失败 二、分区表创建 2.1、范围分区(range) 根据分区字段的值范围区间来分区,每一个分区就是一个子表 eg: create table test_partition_range ( id int, name varchar(64), fdate varchar(64) ) distributed by (id) partition by range(fdate) ( partition p1 start ('2017-01-01') inclusive end ('2017-01-31') exclusive, partition p2 start ('2017-02-01') inclusive end ('2017-02-29') exclusive, default partition default_p ); inclusive :指定包含

Kafka笔记整理(一)

青春壹個敷衍的年華 提交于 2019-11-25 20:24:29
[TOC] Kafka简介 消息队列(Message Queue) 消息 Message 网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:文本、音乐、视频等内容。 队列 Queue 一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素。入队、出队。 消息队列 MQ 消息+队列,保存消息的队列。消息的传输过程中的容器;主要提供生产、消费接口供外部调用做数据的存储和获取。 MQ分类 MQ主要分为两类:点对点(p2p)、发布订阅(Pub/Sub) 共同点: 消息生产者生产消息发送到queue中,然后消息消费者从queue中读取并且消费消息。 不同点: p2p模型包括:消息队列(Queue)、发送者(Sender)、接收者(Receiver) 一个生产者生产的消息只有一个消费者(Consumer)(即一旦被消费,消息就不在消息队列中)。比如说打电话。 Pub/Sub包含:消息队列(Queue)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber) 每个消息可以有多个消费者,彼此互不影响。比如我发布一个微博:关注我的人都能够看到。 那么在大数据领域呢,为了满足日益增长的数据量,也有一款可以满足百万级别消息的生成和消费,分布式、持久稳定的产品——Kafka。 Kafka简介 Kafka是分布式的发布—订阅消息系统

消息中间件的四种投递模式对比

我只是一个虾纸丫 提交于 2019-11-25 19:59:30
消息中间件( Message Oriented Middleware,简称MOM)在企业开发中变得越来越重要。本文介绍消息中间件中的四种消息投递模型,主要是介绍模型的核心特性,以及不同模型之前的区别。这四种模型分别是: PTP模型 Pub/Sub模型 Partition模型 Transfer模型 其中PTP模型和Pub/Sub模型在JMS规范中有定义,消息中间件ActiveMQ就实现了JMS规范。然而一些消息中间件,并没有实现JMS规范,而是自己设计出了一套模型,例如Kafka和RocketMQ就采用了Partition模型。此外业界还有一些其他的消息投递模型,例如Transfer模型,这是笔者自己起的名字。 1、PTP模型 Point-to-Point,点对点通信模型。PTP是基于队列(Queue)的,一个队列可以有多个生产者,和多个消费者。消息服务器按照收到消息的先后顺序,将消息放到队列中。队列中的每一条消息,只能由一个消费者进行消费,消费之后就会从队列中移除。 需要注意的是,尽管这里使用Queue的概念,但并不是先进入队列消息,一定会被先消费。在存在多个下游Consumer情况下,一些消息中间件,例如ActiveMQ,为了提升消费能力,会将队列中的消息分发到不同Consumer并行进行处理。这意味着消息发送的时候可能是有序的,但是在消费的时候,就变成无序了。为了保证消费的有序