- Azkaban各种类型的Job编写
__元昊__
一、概述原生的Azkaban支持的plugin类型有以下这些:command:Linuxshell命令行任务gobblin:通用数据采集工具hadoopJava:运行hadoopMR任务java:原生java任务hive:支持执行hiveSQLpig:pig脚本任务spark:spark任务hdfsToTeradata:把数据从hdfs导入TeradatateradataToHdfs:把数据从Te
- 一种叫Pinot Gris的白葡萄酒,在国内总被大家忽视 | 灰皮诺
吃酒ChiJiu
一近些年来,国内餐桌上喝白葡萄酒的现象,不断增多。长相思白葡萄酒、霞多丽干白葡萄酒、雷司令白葡萄酒,这些都是国人最爱喝的。这三种白葡萄酒,在世界上也相当有地位,是国际主流的白葡萄酒,好比联合国近200个成员国,但主流的才5个,五大常任理事国。还有一种叫“PinotGris”的白葡萄酒,在国际白葡萄酒界,也是有着“常任理事国”的地位。但在我们中国往往被大家忽视,销量也不高,在葡萄酒酒标上,是如下图所
- 【Apache Pinot】Data upload jobtype 粗略分析
彭笳鑫
数据库apachepinot数据库olap大数据
背景目前我司大部分实时数据和离线数据都存储在pinot数据库中,离线数据需要通过脚本去生成对应的数据上传到数据库里面,但是其中config中有个jobtype让人有点迷惑,本文简单的做一个概念的整理用处先说一下流程,目前我以hdfs举例,我们的脚本会先把数据通过hdfs的client上传到hadoop集群里面,接下来通过pinot-admin的语法把数据上传给pinotcontroller,这里脚
- 《Pinot: Realtime OLAP for 530 Million Users》读后感
xumingmingv
美洲葡萄酒?Pinot是一个每秒可以处理数以万计分析类查询的系统,支持近实时地从流式数据源进行数据摄取。简单来说作为一个分析类系统:数据进得快、查询返回快。为了达到数据消费的实时性,Pinot采取了Lambda的架构,Pinot把它叫做"Hybidtable",一份数据同时存在实时和离线两部分,用户将查询的时候,Pinot同时查离线和实时的数据,然后把merge的结果返回给用户,关于这种Lambd
- 实时分布式低延迟OLAP数据库Apache Pinot探索实操
2301_76429513
分布式数据库apache
Pinot可直接从流数据源(如ApacheKafka和AmazonKinesis)中摄取数据,基于实时事件实现即时的查询。还可以从批处理数据源中摄取数据,如HadoopHDFS、AmazonS3、AzureADLS和谷歌云存储。核心采用列式存储,基于智能索引和预聚合技术实现低延迟;还提供内部仪表板、异常检测和临时数据探索。特性Pinot最初是在LinkedIn上构建的,用于支持丰富的交互式实时分析
- 【Apache Pinot】浅析 Pinot 的 Table,Index 和 Tenant 原理
彭笳鑫
数据库apache数据库
本文属于基础篇幅,不会涉及过深入的原理,主要还是如何用好Pinot背景单独讲Table概念可能有些许单薄,本文会扩展场景,讲解表的部分原理,表与表之间的相互影响,租户是怎么作用到表的,增加字段和修改字段需要注意什么,扩容和调整表的物理磁盘要怎么操作更加合理。场景表刚创建的时候,其实问题都不会很大,但是随着业务的增长,数据的增多和需求的变更,会导致很多类型不一致,资源不够的情况。简单描述的话大概如下
- 【Apache Pinot】Controller、Broker 和 Server 的概念和工作流程
彭笳鑫
数据库apacheolappinot
背景笔者最近一段时间使用ApachePinot比较多,发现目前国内使用Pinot的很少,所以跟他相关的资料也比较少,本人在扩容,升级,部署,查询等方面操作有些许经验,知道其中有很多细节需要注意和规避,所以打算开个坑来写一下这块相关的实践内容和注意事项,方便自己回溯也方便使用Pinot的人参考。顺便以此来回馈Pinot社区对我很多的帮助,依稀记得Pinot作者之一fuxiang在国外跟我用腾讯会议沟
- 【Apache Pinot】探究 Pinot 中存储模型的设计逻辑和 Segment 详解
彭笳鑫
数据库大数据apache
背景上一篇文章中,笔者简单介绍了一下分布式数据库Pinot的核心组件,本文主要针对其中的存储模型会做部分讲解。如果你对读写磁盘有不错的基础的话,看起来会更轻松一些,如果没有也没关系,我会简单讲解一下这么设计的好处,会涉及一些八股,实在看不懂的可以留言,笔者知道的话会给你们的评论做解答。存储模型要先理解概念就得先看一下图,在脑海里面多增加印象。那么还是老样子,直接偷一波官方的图。从上图,最直观的感受
- 实时分布式低延迟OLAP数据库Apache Pinot探索实操
IT小神
大数据分布式数据库数据库分布式apache
文章目录概述定义特性何时使用部署Local安装快速启动手动设置集群Docker安装快速启动手动启动集群DockerCompose实操批导入数据流式导入数据概述定义ApachePinot官网地址https://pinot.apache.org/最新版本0.12.1ApachePinot官网文档地址https://docs.pinot.apache.org/ApachePinot源码地址https:/
- Pinot
超越爱迪生
编译#!/bin/bashset-eset-xif[[-doutput]]thenrm-rfoutput/*fimvninstallpackage-DskipTests-Dlicense.skip=true-Pbin-distmkdir-poutputcp-rpinot-distribution/target/apache-pinot-incubating-0.1.0-SNAPSHOT-bin/*
- Gobblin采集kafka数据
葡萄喃喃呓语
Gobblin采集kafka数据-Syn良子-博客园http://www.cnblogs.com/cssdongl/p/6121382.html找时间记录一下利用Gobblin采集kafka数据的过程,话不多说,进入正题一.Gobblin环境变量准备需要配置好Gobblin0.7.0工作时对应的环境变量,可以去Gobblin的bin目录的gobblin-env.sh配置,比如exportGOBBL
- Apache Helix简介
OopsOutOfMemory
helix
因工作兴趣,发现Pinot里集群资源管理框架是Helix,所以了解以下这个框架,同时将使用场景和简介翻译以下,也是学习的一个总结。ApacheHELIX一个为partitioned和replicated分布式资源而设计的集群管理框架WhatisHELIXApacheHelix是一个通用的集群资源管理框架,它能被用作自动管理存在于集群节点上的分区的,有副本的分布式资源。Helix能够在结点down掉
- RoaringBitmap简析
xywtalk
更新一:RoaringBitmap源码分析一(AND操作)Bitmap索引在数据库和搜索引擎里使用的很广泛。最近发现几个实时OLAP分析引擎,比如Druid和Pinot也都在用,所以深入研究了一下。这两个OLAP引擎都使用RoaringBitmap,这是一种压缩的、高效的bitmap索引。代码很精妙,看得很过瘾。Bitmap索引一般用来存储整数。整数的范围是0~2^32-1。所以如果用最朴素的思想
- 数据生成器
sdfjlkjsdfsaldfsdf
大数据JavaElasticSearchHiveMySQLKylin
data-generator是一个Java实现的数据生成器开源项目。如果你在从事大数据BI的工作,想对比一下MySQL、GreenPlum、Elasticsearch、Hive、Presto、Impala、Drill、HAWQ、Druid、Pinot、Kylin、ClickHouse等不同实现方案之间的表现,那你就需要一份标准的数据进行测试,这个开源项目就是为了生成这样的标准数据。数据模型:src
- Pinot中的Forward Index源码分析
xywtalk
还是以Quickstart为例,说一下forwardindex的创建过程。收集各个column的统计数据代码同dictionaryindex。再次遍历,按行处理每列的索引iterator复位//BuildtheindexrecordReader.rewind();重新遍历,对每行索引LOGGER.info("StartbuildingIndexCreator!");while(recordRead
- Pinot中的Dictionary Index源码分析
xywtalk
Pinot中的DictionaryIndexPinot有几种index,包括dictionaryindex,forwardindex,和invertedindex。这几种index的联合使用可以实现快速OLAP查询。Dictionaryindex是最简单的index,并且也为其他两种index提供基础数据。下面以Quickstart中的代码为例简单描述一下dictionaryindex的创建。Qu
- Pinot中的Inverted Index源码分析
xywtalk
InvertedIndex就是我们通常所说的倒排表(倒排索引)。Key是value,而值是value所在的那些行的id的集合。还是以Quickstart为例,说一下intervedindex的创建过程。收集各个column的统计数据代码同dictionaryindex和forwardindex。Invertedindex数据结构初始化//Initializetheindexcreationusin
- pinot伪分布式搭建
一杯咖啡半杯糖
pinot
本文中的伪分布式指的是pinot架构中每个组件controller、server、broker分别启动组成集群1、进入linux的pinot目录的bin文件夹下2、pinot启动controller,使用自己的zookeeper集群非pinot中的zookeepernohup./start-controller.sh-clusterNamePinotCluster-controllerHost19
- pinot查询数据
一杯咖啡半杯糖
pinot
pinot查询主要从下面几个方式操作1、从controller界面去查询2、pinot脚本查询(因为查询需要通过broker,所以端口为broker的端口)./pinot-admin.shPostQuery-brokerPort8000-query"selectcount(*)fromtranscript"3、curl命令进行查询curl-XPOST-d'{"pql":"selectcount(*
- pinot分布式搭建
一杯咖啡半杯糖
pinot
通常,在部署Pinot服务时,最好遵循部署各种组件的特定顺序。在可能存在协议或其他重大差异的情况下,建议使用此部署顺序,部署按可预测的顺序进行,可以避免由于这些更改而导致的故障。顺序如下:a)pinot-controllerb)pinot-brokerc)pinot-serverd)pinot-minion一、节点hadoop01:启动controllernohup./start-controll
- pinot的table配置
一杯咖啡半杯糖
pinot
下面的配置由官网说明翻译过来:TableConfig示例表配置和描述下面显示了一个示例表配置,其中的子节被重新排序。这些小节将在下面的小节中分别进行描述。功能特定文档的进一步链接到可用的地方。tableName:应该只包含字母数字字符、连字符('-')或下划线('_')。虽然使用双下划线('__')是不允许的,并保留在Pinot的其他功能。tableType:指示表的类型。每种类型都有一些特定的设
- pinot架构
一杯咖啡半杯糖
pinot
以下信息翻译自官网pinot架构部分:表:表是引用相关数据集合的逻辑抽象。它由列和行(文档)组成。段:表中的数据被分成(水平的)分片,称为段Pinot组件1、PinotController管理其他pinot组件(代理、服务器)以及控制将表/段分配给服务器。2、PinotServer托管一个或多个段,并为来自这些段的查询提供服务3、PinotBroker接受来自客户机的查询并将其路由到一个或多个服务
- 实时OLAP(五)Apache Pinot实时自动调优
ly923976094
云计算大数据
Pinot是可扩展分布式列式OLAP数据存储,由LinkedIn开发,为面向站点的用例(如LindedIn的Whoviewedmyprofile、Talentinsights等等)提供实时分析。Pinot使用ApacheHelix管理集群资源,并使用ApacheZookeeper存储元数据。Piont在LinkedIn得到了广泛的采用:从内部控制面板到面向站点的应用程序。Pinot通过Hadoop
- 实时OLAP(四)Apache Pinot Start-Tree索引技术
ly923976094
云计算大数据
Pinot是进入ApacheIncubation的开源的项目,可扩展的分布式OLAP数据存储。它是由LinkedIn开发的,可用于各种生产用例,以提供实时,低延迟的分析。Pinot面临的最大挑战之一是在大型数据集的延迟和吞吐量上实现并维持严格的SLA。现有的索引技术(例如排序索引和反向索引)有助于加速文档搜索以提高查询延迟。但是,它们的性能与计算结果时要处理的文档数成线性比例。另一方面,对结果进行
- Pinot架构介绍
cjfeii
数据库大数据程序设计
1.HighLevelArchitecture1.目的:对给定数据集提供分析服务2.输入数据:Hadoop&Kafka3.索引技术:为了提供快速的查询,Pinot采用列式存储以及各种索引技术(bitmap,invertedindex)2.DataFlow2.1Hadoop(Historical)1.输入数据:AVRO,CSV,JSON等;2.处理流程:在HDFS上的文件通过MR任务将数据变成有索引
- Pinot安装并简单部署测试环境
cjfeii
数据库大数据
1.下载代码$gitclonehttps://github.com/linkedin/pinot.git2.编译pinot$cdpinot$mvninstallpackage-DskipTests3.部署并启动$cdpinot-distribution/target/pinot-0.016-pkg$nohup./bin/quick-start-offline.sh&4.创建schema$./bin
- Pinot 简介
cjfeii
大数据
1.IntroductiontoPinotPinot是一个实时分布式的OLAP数据存储和分析系统。LinkedIn使用它实现低延迟可伸缩的实时分析。Pinot从离线数据源(包括Hadoop和各类文件)和在线数据源(如Kafka)中攫取数据进行分析。Pinot被设计是可以进行水平扩展的。2.Whatisitfor(andnot)?2.1Pinot适用于这样的应用场景数据:不改变的、只追加的分析:可以
- 大数据平台架构实践
陈振阳
Hadoop
说明本篇博客整理自参考内容,完整内容请查看原文章;技术选型MOLAP与Druid相类似的实时数据分析工具,还有Linkedln的Pinot和eBay的Kylin,它们都是基于Java开发的。Druid相对比较轻量级,用的人也多,毕竟开发时间久一些,问题也少一些。Pinot,Linkedln开发的类似于Druid的多维数据分析平台,它的功能实际上要比Druid强大一些,但因为去年才刚刚开始开源,用的
- Pinot创建表出现问题
一杯咖啡半杯糖
pinot大数据
背景是建立实时表schema和配置如下{"dimensionFieldSpecs":[{"dataType":"STRING","name":"FA0010000000"},{"dataType":"STRING","name":"FA0010010000"},{"dataType":"STRING","name":"FA0010020000"},{"dataType":"DOUBLE","nam
- pinot的schema配置
一杯咖啡半杯糖
pinot
下面文章为官网翻译:Pinot模式由一些列组成,这些列可以归类为维度、度量或时间。Dimensions——组织数据的列。例如,accountId,country,industry等。这些列用于分割数据,通常出现在查询中的selection、filter和group-by部分。Metrics-表示指标的测量的一些列。例如,numClicks,pageViews,等等。这些列通常出现在查询的聚合部分,
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1