partition

7-16 找第k小的数

好久不见. 提交于 2019-12-27 01:53:42
设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。 提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]中的某个元素x(如a[left])对a[left]~a[right]进行划分,划分后的x所在位置的左段全小于等于x,右段全大于等于x,同时利用x所在的位置还可以计算出x是这批数据按升非降序排列的第几个数。因此可以编制int find(int a[],int left,int right,int k)函数,通过调用partition函数获得划分点,判断划分点是否第k小,若不是,递归调用find函数继续在左段或右段查找。 输入格式: 输入有两行: 第一行是n和k,0<k<=n<=10000 第二行是n个整数 输出格式: 输出第k小的数 输入样例: 在这里给出一组输入。例如: 10 4 2 8 9 0 1 3 6 7 8 2 输出样例: 在这里给出相应的输出。例如: 2code【C++】 #include<iostream> using namespace std; int partition(int a[],int left, int right){ int i = left, j = right + 1; int x = a[left]; while

kafka:enable.auto.commit

非 Y 不嫁゛ 提交于 2019-12-27 01:36:10
一、背景 项目中有一个需求,是通过消费kafka的消息来处理数据,但是想要实现延迟消费的效果,于是想到了是否可以自己管理kafka的commit来实现,就是通过设置`enable.auto.commit`为False,预期是如果消费到了消息,但是不commit,kafka就会重新把消息放回队列,后续还会再次消费到,直到超过设置的延迟时间再真正消费并commit。 于是写了个demo来验证,结果发现这个配置的效果并不是自己想要的。 二、生产者 生产者每秒钟向kafka的topic发送一条消息。 #!/usr/bin/env python # -*- coding:utf-8 -*- import time from confluent_kafka import Producer, KafkaError from confluent_kafka import TopicPartition from confluent_kafka import OFFSET_BEGINNING p = Producer({'bootstrap.servers':'localhost:9092, localhost:9093, localhost:9094'}) topic = 'nico-test' msg_tpl = 'hello kafka:{0}' while True: msg = msg

定时任务、用户管理、磁盘介绍

最后都变了- 提交于 2019-12-27 01:08:31
一、阶段知识回顾 服务器硬件,提升用户的体验(大型网站门户网站数据放在内存,中小型企业放在磁盘)尽量把请求往前推:memcached,redis Buffer与Cache区别: buffer:观看视频的时候 转圈,数据放在你的内存,存放这些数据的空间buffer区域 缓冲区,buffering cache:提高观看速度 ,主要是用来给用户读取在内存中的区域cache,缓存区。 写buffer 读cache 写缓冲 读缓存 radis卡: 查看端口是否开启:telnet,netstat -lntp ,ss -lntup ps -ef :正在运行的进程。 安装常见软件: [root@oldboy-01 ~]# yum install tree telnet nc nmap lrzsz dos2unix -y nc与telnet用法基本相同。 nmap -p22 10.0.0.201 查看端口是否开启 lrzssz :rz:上传 sz:下载,sz /etc/hosts 永久修改主机名:/etc/sysconfig/network,修改配置文件。 修改主机名解析:/etc/hosts 帮助命令: man ls,ls --help vim 相关知识: 光标移动: 左下右上:hjkl gg:第一行 G:最后一行,100G 光标移动到行尾:$ 光标移动到行首:0或者^ vim编译模式:

如何创建修改分区表和如何查看分区表

僤鯓⒐⒋嵵緔 提交于 2019-12-26 23:53:38
如何创建修改分区表和如何查看分区表 SQL Server 2005 是微软在推出 SQL Server 2000 后时隔五年推出的一个数据库平台,它的数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使企业可以构建和部署经济有效的 BI 解决方案,帮助团队通过记分卡、 Dashboard 、 Web Services 和移动设备将数据应用推向业务的各个领域。无论是开发人员、数据库管理员、信息工作者还是决策者, SQL Server 2005 都可以提供出创新的解决方案,并可从数据中获得更多的益处。 它所带来的新特性,如 T-SQL 的增强、数据分区、服务代理和与 .Net Framework 的集成等,在易管理性、可用性、可伸缩性和安全性等方面都有很大的增强。 SQL Server 2005 表分区的具体实现方法 表分区分为水平分区和垂直分区。水平分区将表分为多个表。每个表包含的列数相同,但是行更少。例如,可以将一个包含十亿行的表水平分区成 12 个表,每个小表表示特定年份内一个月的数据。任何需要特定月份数据的查询只需引用相应月份的表。而垂直分区则是将原始表分成多个只包含较少列的表。水平分区是最常用分区方式

Kafka 之 入门

情到浓时终转凉″ 提交于 2019-12-26 23:16:37
摘要: 最近研究采集层,对Kafka做了一个研究。分为入门,中级,高级步步进阶。本篇主要介绍基本概念,适用场景。 一、 入门 1. 简介 Kafka is a distributed, partitioned, replicated commit log service 。它提供了类似于JMS 的特性,但是在设计实现上完全不同,此外它并不是JMS 规范的实现。kafka 对消息保存时根据Topic 进行归类,发送消息者成为Producer, 消息接受者成为Consumer, 此外kafka 集群有多个kafka 实例组成,每个实例(server) 成为broker 。无论是kafka 集群,还是producer 和consumer 都依赖于zookeeper 来保证系统可用性集群保存一些meta 信息。 下面这张图描述更准确。 主要特性: 1 )消息持久化 要从大数据中获取真正的价值,那么不能丢失任何信息。Apache Kafka 设计上是时间复杂度O(1) 的磁盘结构,它提供了常量时间的性能,即使是存储海量的信息(TB 级)。 2 )高吞吐 记住大数据,Kafka 的设计是工作在标准硬件之上,支持每秒数百万的消息。 3 )分布式 Kafka 明确支持在Kafka 服务器上的消息分区,以及在消费机器集群上的分发消费,维护每个分区的排序语义。 4 )多客户端支持 Kafka

Hadoop阅读笔记(三)——深入MapReduce排序和单表连接

半城伤御伤魂 提交于 2019-12-26 21:06:43
  继上篇了解了使用MapReduce计算平均数以及去重后,我们再来一探MapReduce在排序以及单表关联上的处理方法。 在MapReduce系列的第一篇就有说过,MapReduce不仅是一种分布式的计算方法,更是一种解决问题的新思维、新思路。将原先看似可以一条龙似的处理一刀切成两端,一端是Map、一端是Reduce,Map负责分,Reduce负责合。    1. MapReduce排序    问题模型:   给出多个数据文件输入如:   sortfile1.txt 11 13 15 17 19 21 23 25 27 29    sortfile2.txt 10 12 14 16 18 20 22 24 26 28 30    sortfile3.txt 1 2 3 4 5 6 7 8 9 10    最终要完成排序形成结果文件格式如下: 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 10 ……       要解决的问题有了,那么如何排序,如何实现,我们尚且存在哪些问题:    1. 我们知道MapReduce本身就有自带的排序功能,能够直接用;    2. 如果用MapReduce默认排序功能,如何使用,针对key为int类型以及String类型又有何不同;    3. 如何保证三个输入文件乃至更多个输入文件的输入

<转>SQL Server大表转为分区表实例

半世苍凉 提交于 2019-12-26 15:30:14
-- 进行演示操作前, 先备份, 以便可以在演示完成后, 恢复到原始状态 USE master -- 备份 BACKUP DATABASE AdventureWorks TO DISK = 'AdventureWorks.bak' WITH FORMAT ---- 恢复 --RESTORE DATABASE AdventureWorks -- FROM DISK = 'AdventureWorks.bak' -- WITH REPLACE GO --========================================= -- 转换为分区表 --========================================= USE AdventureWorks GO -- 1. 创建分区函数 -- a. 适用于存储历史存档记录的分区表的分区函数 DECLARE @dt datetime SET @dt = '20020101' CREATE PARTITION FUNCTION PF_HistoryArchive(datetime) AS RANGE RIGHT FOR VALUES( @dt, DATEADD(Year, 1, @dt)) -- b. 适用于存储历史记录的分区表的分区函数 --DECLARE @dt datetime SET @dt =

ORACLE 偏移分析函数 lag()与lead() 用法

为君一笑 提交于 2019-12-26 13:42:19
一、简介   lag与lead函数是跟偏移量相关的两个分析函数,通过这两个函数可以在一次查询中取出同一字段的前N行的数据(lag)和后N行的数据(lead)作为独立的列,从而更方便地进行进行数据过滤。这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率。 over()表示 lag()与lead()操作的数据都在over()的范围内,他里面可以使用partition by 语句(用于分组) order by 语句(用于排序)。partition by a order by b表示以a字段进行分组,再 以b字段进行排序,对数据进行查询。 例如:lead(field, num, defaultvalue) field需要查找的字段,num往后查找的num行的数据,defaultvalue没有符合条件的默认值。 二、示例 表初始化数据为:   a、获取当前记录的id,以及下一条记录的id select t.id id , lead(t.id, 1, null) over (order by t.id) next_record_id, t.cphm from tb_test t order by t.id asc   b、获取当前记录的id,以及上一条记录的id select t.id id , lag(t.id, 1, null) over (order by t.id) next

Linux磁盘管理

北城以北 提交于 2019-12-25 21:30:30
查看磁盘容量 df -[ikm] 参数说明: -i: 使用 i-nodes 显示结果 -k: 使用 KBytes 显示结果 -m: 使用 MBytes 显示结果 查看目录占用多大空间 du [-abckms] [目录名称] 参数说明: [目录名称] 可以省略,如果省略的话,表示要统计目前所在目录的档案容量 -a : 全部的档案与目录都列出来!默认值是指列出目录的值! -b : 列出的值以 bytes 输出 -c : 最后加总 total ! -k : 列出的值以 KB 输出 -m : 列出的值以 MB 输出 -s : 只列出最后加总的值! 查看文件占用多大空间: $ls -sh total 32K 4.0K a.sh 4.0K test 20K test.tar 4.0K test.txt 硬盘分割与格式化 fdisk 硬盘切割 partition 的工具 mke2fs 就是 Linux 底下重要的 format 格式化的工具 e2label 修改硬盘的 label (表头名称) 的工具! mknod 新增硬件对应文件的工具! fsck 检查硬盘有没有坏轨的工具 badblocks 跟 fsck 一样,但是 fsck 的功能比较强,所以这个指令可以不学! sync 将 内存中的数据给他同步化写入硬盘中 mount (使用完毕之后必须 umount ) 硬盘 : 先用“fdisk

What happens if a Kafka Consumer instance dies?

落爺英雄遲暮 提交于 2019-12-25 15:59:08
问题 Kafka Broker has 3 partitions. Kafka Consumer instance' count is 3. Suddenly, one Consumer instance died. I know that if a Kafka Consumer instance dies, the Kafka Broker is rebalancing and another consumer instance gets allocated to that partition. I wonder if it is correct to assume that another instance consumes all of the partition it originally consumes and then allocates and consumes dead partitions. (And do I have to implement ConsumerRebalanceListener in client code?) If this is the