partition

kafka 消息队列

允我心安 提交于 2020-01-01 17:22:54
kafka是使用Java和Scala编写的一个快速可扩展的高吞吐量的分布式消息队列系统。 kafka将数据持久化存储到磁盘上,自带分区和副本机制,因而具有较好的持久化保证。 但是kafka的消息消费没有确认机制,可能因为consumer崩溃导致消息没有完成处理。因此不建议将kafka用于一致性较高的业务场景,kafka经常被用做日志收集和数据仓库之间的缓存。 比如将网站的浏览日志缓存到kafka,然后从kafka中取出批量写入ElasticSearch, Hive或者HBase等数据仓库中。这样做可以极大的减轻离线分析系统的负载。 架构简介 kafka架构中有下列角色参与: broker: kafka 集群中的服务器实例称为broker producer: 向broker发送消息的客户端 consumer: 向从borker中读取消息的客户端 zookeeper: 存储集群状态的注册中心,不处理具体消息。在负载均衡和集群扩展等功能中有重要作用。 接下来介绍kafka的逻辑模型: message: 消息是kafka通信的基本单元 topic: topic 在逻辑结构上类似于队列, 每条消息都属于一个 topic。 consumer group: 每个group中可以包含若干 consumer 实例,每个topic可以被多个consumer group 订阅。 消费者组拥有唯一的

ceph对象存储设置policy [TOC]

非 Y 不嫁゛ 提交于 2019-12-31 18:49:29
目录 ceph对象存储设置policy 一、前言 二、软件包准备 三、操作步骤 1、编写policy.json文件 2、 使用s3cmd 命令设置存储桶的policy。 3、使用s3cmd 命令设置存储桶的policy 四、注意事项 五、参数解释 1、Version 2、 Statement 3、Sid 4、Effect 5、Principal 6、Action 7、Resource 六、参考文档 ceph对象存储设置policy 一、前言 本环境使用的ceph L版的对象存储 二、软件包准备 s3cmd-2.0.2-1.el7.noarch.rpm 三、操作步骤 1、编写policy.json文件 [root@node1 ~]# vim policy.xml { "Version": "2012-10-17", "Statement":[ {"Sid":"0", "Effect":"Allow", "Principal":"*", "Action":"s3:*", "Resource":"arn:aws:s3:::test/*", "Condition":{ "StringLike": {"aws:Referer":["http://10.168.106.22*"]} } } ] } 2、 使用s3cmd 命令设置存储桶的policy。 [root@compute0 ~]#

Oracle表分区:

点点圈 提交于 2019-12-30 20:18:52
一:表分区练习 表结构: bookInfo:编号,书名,作者,单价,库存量 1.创建以上结构的图书信息表,并按单价的范围分区,小于100一区,小于200一区,小于300一区,并指定每区的表空间,插入数据,并查看每个分区中的数据信息 create table bookInfo ( bookInfoID number primary key , bookInfoName varchar2 ( 32 ) , bookInfoAuthor varchar2 ( 32 ) , bookInfoPrice number , bookInfoNumber number ) partition by range ( bookInfoPrice ) ( partition p1 values less than ( 100 ) , partition p2 values less than ( 200 ) , partition p3 values less than ( 300 ) ) / 2.在现有的分区基础上增加一个分区 alter table bookInfo add partition p4 values less than ( 400 ) ; 3.将第二个分区删除 alter table bookInfo drop partition p2 ; 4.将第三个分区中的数据删除 alter

spark操作hive工具类

不羁的心 提交于 2019-12-30 10:37:52
import org . apache . spark . sql . SparkSession object HiveUtil { /** * 调大最大分区个数 * * @param spark SparkSession * @return */ def setMaxpartitions ( spark : SparkSession ) : Unit = { spark . sql ( "set hive.exec.dynamic.partition=true" ) spark . sql ( "set hive.exec.dynamic.partition.mode=nonstrict" ) spark . sql ( "set hive.exec.max.dynamic.partitions=100000" ) spark . sql ( "set hive.exec.max.dynamic.partitions.pernode=100000" ) spark . sql ( "set hive.exec.max.created.files=100000" ) } /** * 开启压缩 * * @param spark SparkSession * @return */ def openCompression ( spark : SparkSession ) : Unit =

数据库(Oracle)基本知识点总结

折月煮酒 提交于 2019-12-29 02:18:23
视图 标准视图 普通视图,又称为关系视图 内联视图 在使用SQL语句编写查询时临时构建的一个嵌入式的视图,又称内嵌视图 物化视图 存储查询的结果,之前称为快照 创建视图的语法 create [or replace][force | noforce] view [(alias[, alias]...)] as subquery [with check option [constraint]] [with read only [constraint]] 创建一个只读视图 create view CS_Students as select ID, first_name, last_name, major, current_credits from students where major='Computer Science' with read only 创建带 with check option 的视图 create or replace view his_classes as select department, course, description, max_students, current_students, num_credits, room_id from classes where department='his' with check option 多表视图

Linux SWAP 交换分区配置说明

喜欢而已 提交于 2019-12-28 19:49:44
一.SWAP 说明 1.1 SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 这个是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。 一般来说可以按照如下规则设置swap 大小: 4G以内的物理内存,SWAP 设置为内存的2倍。 4-8G的物理内存,SWAP 等于内存大小。 8-64G 的物理内存,SWAP 设置为8G。 64-256G物理内存,SWAP 设置为16G。 实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。 1.2 系统在什么情况下才会使用SWAP? 实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。 [root@rhce ~]# cat /proc/sys/vm/swappiness 60 该值默认值是60. swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

Linux交换分区swap

巧了我就是萌 提交于 2019-12-28 19:49:20
一.SWAP 说明 1.1 SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 这个是SWAP 交换分区的作用。 实际上,我们更关注的应该是SWAP分区的大小问题。 设置多大才是最优的。 一般来说可以按照如下规则设置swap大小: 4G以内的物理内存,SWAP 设置为内存的2倍。 4-8G的物理内存,SWAP 等于内存大小。 8-64G 的物理内存,SWAP 设置为8G。 64-256G物理内存,SWAP 设置为16G。 实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。 1.2 系统在什么情况下才会使用SWAP? 实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。 [root@rhce ~]# cat /proc/sys/vm/swappiness 60 该值默认值是60. swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

Kafka系统架构

你说的曾经没有我的故事 提交于 2019-12-28 16:38:07
文章目录 Kafka 架构 常见术语 Kafka 作为一个消息引擎中间件,越来越多的被国内各个厂商使用。本篇主要介绍一下其系统架构及常用术语。 Kafka 架构 从上图可以看出,和其他消息引擎类似,主要由生产者、Kafka 集群、消费者构成。但是其中有一点需要注意的是,Kafka 集群和消费者依赖了ZooKeeper 集群。上图中的每个Broker 对应的就是一个一个的Kafka 实例,每个Broker 上面可能会有多个 Partition,也就是所谓的分区副本。如上面的Producer A 生产了 Topic A 的消息,然后存放的时候分为了 Partition 0 和 Partition 1 两个数据分区存储。Producer 生产出来的数据只会直接发给每个 Partition 的 Leader 来接收。然后每个 Partition 对应的 Follower 会复制Leader 上面的数据做冗余备份,Follower 本身不对外提供服务。 从上面的消费者可以看出,Consumer A1 和 Consumer A2 是一个消费者组。它们共同消费了 Topic A,此时对于同一个消费者组而言,同一个 Topic 不会重复消费。也就是 Topic A 的消息,在同一个消费者组内只会被一个消费者消费。 常见术语 Topic:消息主题,Kafka 会对消息进行归类,发布到Kafka

MySQL应用优化

落花浮王杯 提交于 2019-12-28 10:15:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、基本语句优化原则 (1).尽量避免在索引列上进行运算或函数操作,这样会导致索引失效 如: select * from t where Year(d)>=2016; 可以优化为: select * from t where d>='2016-01-01'; (2).使用join语句时,应用小结果集驱动大结果集。因为在join多表时,可能会导致更多的锁定和拥塞 (3).注意模糊查询时避免%%,%开头的查询条件会使索引失效 (4).仅列出需要查询的字段,这对效率没有影响,但会影响内存 如: select * from t; 可以优化为: select name from t; (5).使用批量交互插入语句以节省交互 如: insert into t(id,name) values(1,"a"); insert into t(id,name) values(2,"b"); 可以优化为: insert into t(id,name) values(1,"a"),(2,"b"); 这里也有博友质疑,贴结果: (6).limit的基数比较大时使用between 如: select * from article order by id limit 100000,10; 可以优化为: select * from

快速排序

风格不统一 提交于 2019-12-28 04:11:11
快速排序 快速排序是对冒泡排序的一种改进。基本思想是分治法:在待排序表 L[1.....n]中任取一个元素pivot作为基准,通过一趟排序将待排序表划分为独立的两部分 L[1...k-1]和 L[k+1...n] ,使得L[1...k-1]的所有元素小于pivot,L[k+1...n]中所有元素大于pivot,则pivot放在了其最终位置L(k)上,这个过程称为一趟快速排序。而后分别递归的对两个子表重复上述过程,直至每部分内只有一个元素或空为止,即所有元素放在了其最终位置。 快速排序思路: a. 取一个元素p(第一个元素),使元素p归位; b. 列表被p分成两部分,左边都比p小,右边都比p大; c. 递归完成排序。 假设划分算法已知,记为partation(),递归的调用快排,具体结构如下: def quick_sort(data, left, right): if left < right: mid = partition(data, left, right) quick_sort(data, left, mid - 1) quick_sort(data, mid + 1, right) 可以看出快排关键在于划分操作,同时快排性能也主要取决于划分操作好坏。 对于划分算法,假设每次总是以当前表中第一个元素作为枢纽值(基准)对表进行划分,则必须将表中枢纽值大的元素向右移