partition

MySQL-表分区

岁酱吖の 提交于 2019-12-01 01:50:44
一、表分区介绍 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

MapReduce-day01

大兔子大兔子 提交于 2019-12-01 01:21:54
1. MapReduce的思想   MapReduce的思想就是“分而治之”,他适用于大量复杂的任务场景(大规模数据的处理场景)。MapReduce是一款分布式运算框架,核心功能是将用户编写的业务代码和自带的默认组件整合成一个完整的分布式计算程序,并发在hadoop集群上。 Map负责“分”,就是把复杂的任务分成若干个简单的任务,来并行处理,前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。 Reduce负责“合”,就是把map阶段的结果进行全局汇总。 2.MapReduce的“天龙八部”   map阶段2步 第一部:设置InputFormat的类型(通常为TextInputformat)和数据的输入路径--获取数据的过程(得到k1,v1) 第二部:自定义Mapper--将k1,v1转换为k2,v2 shuffle阶段4步 第三部:分区的动作,如果有多个reduce才需要分区,默认只有一个。 第四部:排序,默认对K2进行排序(字典排序) 第五部:规约,combine是一个局部的reduce,map端的合并,是对mapreduce的优化操作,前提是不会影响结果,他可以减少网络传输。 第六部:分组:相同的K(k2)对应的value会放在同一个集合中--map传递的k2,v2变成新的k2,v2 Reduce阶段2步 第七部:自定义Reducer得到k2,v2将k2,v2转为k3,v3

Kafka

情到浓时终转凉″ 提交于 2019-11-30 23:29:37
尚硅谷大数据技术之Kafka (作者:尚硅谷大数据研发部) 版本:V2.0 第1章 Kafka概述 1.1 消息队列 (1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是如此。 (2)发布/订阅模式(一对多,数据生产后,推送给所有订阅者) 发布订阅模型则是一个基于推送的消息传送模型。发布订阅模型可以有多种不同的订阅者,临时订阅者只在主动监听主题时才接收消息,而持久订阅者则监听主题的所有消息,即使当前订阅者不可用,处于离线状态。 1.2 为什么需要消息队列 1)解耦:   允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。 3)扩展性: 因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。 4)灵活性 & 峰值处理能力: 在访问量剧增的情况下

Partitioned Job can't stop by itself after finishing? Spring Batch

会有一股神秘感。 提交于 2019-11-30 22:01:49
I wrote a Job of two Steps, with one of two steps being a partitioning step. The partition step uses TaskExecutorPartitionHandler and runs 5 slave steps in threads. The job is started in the main() method. But it's not stopping after every slave ItemReader returned null- the finish symbol. And even after the program ran past the last line of code in main() method (which is System.out.println("Finished")) the program process won't stop, hanging in memory and doing nothing. I have to press the stop button on Eclipse's panel to stop the program. the following is the content of a JobExecution

activemq、rabbitmq、kafka原理和比较

a 夏天 提交于 2019-11-30 21:22:53
一、activemq 虽然是java写的消息队列,但是提供Java, C, C++, C#, Ruby, Perl, Python, PHP各种客户端,所以语言上是没什么问题的。配置和使用,基本上是java xml这一套。同时对jms、spring之类的支持很友好。 而且因为是Java写的,所以可以作为一个jar包,放到java项目里,用代码启动和配置,这个对于java开发者而言是不是相当爽?毕竟还是有些场景,需要我们把队列放到自己项目内部,随项目启动而启动的。而且,还可以类似拓展tomcat一样,自己写java的plugin来拓展activemq。比如说,我有10万硬件连到mq上,这10万设备每个都有用户名密码,这个时候我们可以用java写个权限验证,从数据库里查这10万用户名密码。 activemq支持主从复制、集群。但是集群功能看起来很弱,只有failover功能,即我连一个失败了,可以切换到其他的broker上。这一点貌似不太科学。假设有三个broker,其中一个上面没有consumer,但另外两个挂了,消息会转到这个上面来,堆积起来。看样子activemq还在升级中。 activemq工作模型比较简单。只有两种模式 queue,topics 。 queue就多对一,producer往queue里发送消息,消费者从queue里取,消费一条,就从queue里移除一条

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

给你一囗甜甜゛ 提交于 2019-11-30 20:18:26
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-01-2016),//OR? PARTITION MAR16 VALUES BETWEEN (01-03-2016) AND (31-03-2016), //OR? Two questions.. Do I

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

拟墨画扇 提交于 2019-11-30 18:56:40
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.put("key.deserializer", StringDeserializer.class.getName()); props.put("value.deserializer",

Event Hub小白入门指南

徘徊边缘 提交于 2019-11-30 18:24:20
Event Hub事件中心 本文的目的在于用最白的大白话,让你从“完全不懂”开始,理解什么是分布式大数据流平台Event Hub,并且理解它的关键概念,并且初步理解其收发数据API。 定义, Event Hub 是什么、产生的目的 Event Hub是微软云服务Azure的一个产品,是分布式大数据流平台。属于PaaS。Event Hub: 支持大规模、实时的流数据 每秒能处理百万级的事件 简单易用,托管式服务 支持全球54个Azure地域 这里指的大规模、实时的流数据是指什么? Big Data Streaming 大数据流 很多应用需要从各处搜集数据来进行分析和处理,如网站收集用户的使用数据,或者物联网系统搜集所有连网设备的实时数据。这些数据从多个不同的终端产生,并且随时都在产生。所以这些数据是流数据,即时性的,好像水流一样,源源不断,从一个地方流向下一个地方。 为什么是“大数据”呢? 因为这些数据可能从成千上万的客户端发出,并且发出的频率很高,要汇集在一个地方进行处理,形成了很大的数据规模,所以是大数据。 Event Hub 可以处理多大的数据? 每秒可以处理百万级别的事件(event)。这里的“事件”:就是你收发的数据。 - https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-about , 2019.8

HiveSQL——row_number() over() 使用

こ雲淡風輕ζ 提交于 2019-11-30 18:09:43
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行。 例一: 表数据: create table TEST_ROW_NUMBER_OVER( id varchar(10) not null, name varchar(10) null, age varchar(10) null, salary int null ); select * from TEST_ROW_NUMBER_OVER t; insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(1,'a',10,8000); insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(1,'a2',11,6500); insert into TEST_ROW_NUMBER_OVER(id,name,age,salary) values(2,'b',12,13000); insert into TEST_ROW_NUMBER_OVER

MapReduce排序过程详解

本小妞迷上赌 提交于 2019-11-30 18:09:43
Hadoop、Spark等分布式数据处理框架在宣传自己的性能时大都以排序效果来做比较,各种类别的Sort Benchmark已成为行业基准测试。之所以选择排序是因为排序的核心是shuffle操作,数据的传输会横跨集群中所有主机,Shuffle基本支持了所有的分布式数据处理负载。 下面就来详细分析一下使用mapreduce实现排序的基本过程。先看一些准备知识。 MapReduce中的数据流动 最简单的过程: map - reduce 定制了partitioner以将map的结果送往指定reducer的过程: map - partition - reduce 增加了在本地先进行一次reduce(优化)的过程: map - combine - partition - reduce Partition的概念和使用 得到map产生的记录后,他们该分配给哪些reducer来处理呢?hadoop默认是根据散列值来派发,但是实际中,这并不能很高效或者按照我们要求的去执行任务。例如,经过partition处理后,一个节点的reducer分配到了20条记录,另一个却分配到了10W万条,试想,这种情况效率如何。又或者,我们想要处理后得到的文件按照一定的规律进行输出,假设有两个reducer,我们想要最终结果中part-00000中存储的是”h”开头的记录的结果,part-00001中存储其他开头的结果