信息存储

计算机常识

走远了吗. 提交于 2020-04-07 05:42:24
计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。 计算机发明者 约翰·冯·诺依曼 。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。 发展历史 计算工具的演化经历了由简单到复杂、从低级到高级的不同阶段,例 ENIAC计算机 如从“结绳记事”中的绳结到算筹、算盘计算尺、机械计算机等。它们在不同的历史时期发挥了各自的历史作用,同时也启发了电子计算机的研制和设计思路。 1889年,美国科学家 赫尔曼·何乐礼 研制出以电力为基础的电动制表机,用以储存计算资料。 1930年,美国科学家 范内瓦·布什 造出世界上首台模拟电子计算机。 1946年2月14日,由美国军方定制的世界上第一台电子计算机“ 电子数字积分计算机 ”(ENIAC Electronic

hadoop分布式文件系统HDFS学习

∥☆過路亽.° 提交于 2020-04-06 23:21:05
hdfs解决物理计算机存储能力不能满足数据集的要求时遇到的问题,这个系统架构于网络之上,会引入网络编程的复杂性,因此分布式文件系统比普通完成磁盘文件系统更为复杂。 hdfs基于流数据模式访问和处理超大文件的需求而开发的,它可以运行于廉价的商用服务器上,总的来说,可以将 hdfs的主要特点概括为以下几点: (1)处理超大文件 这里指的超大文件通常指数百GB,甚至是数百TB大小的文件。目前在实际应用中,hdfs已经能用来存储管理PB级的数据了。 (2)流式的访问数据 hdfs的设计建立在更多的响应“一次写入,多次读取”任务的基础之上。这意味着一个数据集一旦由数据源生成,就会被复制分发到不同的存储节点中,然后响应各种各样的数据分析任务请求。在多数情况下,分析任务都会涉及数据集中的大部分数据,也就是说对hdfs来说,请求读取整个数据集要比读取一个记录更加高效。 (3)运行在廉价的商用机器集群上 hadoop设计对硬件需求比较低,只需运行在廉价的商用硬件集群上,但廉价商用机也意味着大型集群出现节点故障情况概率高,这就要求在设计hdfs时要充分考虑数据的可靠性,安全性及高可用性。 hdfs在一些方面有一定的局限性,主要在以下几个方面。 (1)不适合低延迟数据访问 如果要处理一些用户要求时间比较短的低延迟应用请求,则hdfs不适合。hdfs是为了处理大型数据集分析任务的

HBase储备知识三:基本信息

家住魔仙堡 提交于 2020-04-06 20:04:47
一.背景   2003年,Google发表了“The Google File System”的论文。这个分布式文件系统简称GFS,它使用商用硬件集群存储海量数据。文件系统将数据在节点之间冗余复制,这样的话,即使一台存储服务器发生故障,也不会影响数据的可用性。它对数据的流式读取也做了优化,可以边处理边读取。   不久,Google又发表了"MapReduce:Simplified Data Processing on Large Clusters"的论文。MapReduce是GFS架构的一个补充,因为它能够充分利用GFS集群中的每个商用服务器提供的大量CPU。MapReduce加上GFS形成了处理海量数据的核心力量,包括构建Google的搜索索引。   不过,两个系统都缺乏实时随机存取数据的能力【这意味着尚不足以处理Web服务】。GFS的另一个缺陷是,它适合存储少许非常大的文件,而不适合存储数量众多的小文件。因为文件的元数据信息最终要存储在主节点的内存中,文件越多主节点的压力越大。   因此,Google尝试去找到一个能够驱动交互式应用的解决方案,例如,Google邮件或Google分析,能够同时利用这种基础结构、依靠GFS存储的数据冗余和数据可用性较强的特点。存储的数据应该拆分成特别小的条目,然后由系统将这些小记录聚合到非常大的存储文件中,并提供一些索引排序

计算机基础

亡梦爱人 提交于 2020-04-06 00:32:10
一、为何要学习计算机基础?       Python是一门编程语言,即通俗一点说就是语言。     程序用编程语言来写程序,最终开发的结果就是一个软件。 操作系统 是出现在硬件之上的,是用来 控制硬件的。 所以,我们开发时只需要 调用操作系统为我们提供的简单的接口 就可以了。    如上图所示,我把计算机的系统分为了上面三大块。 硬件,操作系统,应用程序 。 二、计算机硬件介绍 1. 硬件 的目的:为了运行软件给它的一些指令。我们可以优先从硬件中提取出这三个主要的东西,分别是: CPU,内存,硬盘 在计算机中,用来计算的是什么呢?当然是 CPU 了。多数CPU都有两种模式,即内核态与用户态。这里的即内核态与用户态将会在下面的内容中讲到。     CPU是人的大脑,负责运算        内存是人的记忆,负责临时存储        硬盘是人的笔记本,负责永久存储        输入设备是人的耳朵或眼睛,负责接受外部的信息传给CPU        以上所有的设备都通过总线连接,总线相当于人的神经 总线示意图 三、处理器(寄存器及内核态与用户态切换)     1.计算机的大脑是CPU,它从内存中取指令-▶解码-▶执行,然后在取指令,解码,执行,周而复始,直至整个程序被执行完成。    2. 寄存器是一个存储设备, 最快的一种存储设备 就是寄存器。 3.寄存器的分类      

数据库设计方法、规范与技巧

让人想犯罪 __ 提交于 2020-04-03 22:14:08
原文地址: http://www.xiaohao.com/bfart/view.asp?id=160 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法

namenode datanode理解

拜拜、爱过 提交于 2020-04-03 07:11:12
HDFS是以NameNode和DataNode管理者和工作者模式运行的。   NameNode管理着整个HDFS文件系统的元数据。从架构设计上看,元数据大致分成两个层次:Namespace管理层,负责管理文件系统中的树状目录结构以及文件与数据块的映射关系;块管理层,负责管理文件系统中文件的物理块与实际存储位置的映射关系BlocksMap,如图1所示[1]。Namespace管理的元数据除内存常驻外,也会周期Flush到持久化设备上FsImage文件;BlocksMap元数据只在内存中存在;当NameNode发生重启,首先从持久化设备中读取FsImage构建Namespace,之后根据DataNode的汇报信息重新构造BlocksMap。这两部分数据结构是占据了NameNode大部分JVM Heap空间。        除了对文件系统本身元数据的管理之外,NameNode还需要维护整个集群的机架及DataNode的信息、Lease管理以及集中式缓存引入的缓存管理等等。这几部分数据结构空间占用相对固定,且占用较小。 测试数据显示,Namespace目录和文件总量到2亿,数据块总量到3亿后,常驻内存使用量超过90GB。 DataNode负责存储和检索数据块,他受客户端和Namenode调度,并且他会定期向NameNode发送本节点上所存储的块列表

会话跟踪

六眼飞鱼酱① 提交于 2020-04-02 07:47:40
9.1 会话跟踪的需求 HTTP是无状态协议: 协议的状态是指下一次传输可以“记住”这次传输信息的能力,无状态是指 同一个会话( 注意什么叫同一个会话 )的连续两个请求互相不了解 ,当浏览器发送请求给服务器的时候,服务器响应,但是同一个浏览器再发送请求给服务器的时候,他会响应,但是他不知道你就是刚才那个浏览器, 每一次请求和响应都是相对独立的。 在客户端与服务器进行动态交互的Web应用程序出现之后, HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品 。 于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session Cookie是通过客户端保持状态的解决方案。 从定义上来说,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息,有了Cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的Cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。 与Cookie相对的一个解决方案是Session,它是通过服务器来保持状态的。 需要在这里明确一下Session的含义。首先,我们通常都会把Session翻译成会话

浏览器相关的前端知识

我的梦境 提交于 2020-04-01 13:11:14
一、输入url到展示页面过程发生了什么? URL(Uniform Resource Locator)统一资源定位符,用于定位互联网上资源 scheme: // host.domain:port/path/filename scheme:定义因特网服务的类型,常见的类型有:HTTP HTTPS和GTP。 host:定义域主机(http默认是www) domain:定义因特网域名,比如xxx.com.cn port:定义主机上的端口号(http:默认是80) path:定义服务器上的路径 filename:定义文档/资源的名称 1. DNS解析:将域名解析成IP地址 在浏览器输入网址后,首先要经过域名解析,因为浏览器并不能直接通过域名找到对应的服务器,而是要通过IP地址,之所以我们用的是域名而不是IP,是因为IP是一段数字,特别不容易记住,而域名其实就是IP的伪装者。 什么是域名解析:DNS协议提供通过域名查找IP地址,或者是反向通过IP查找域名的服务。DNS是一个网络服务器,我们的域名解析简单来说就是DNS上记录一条信息记录。 1.1 递归查询 主机向本地域名服务器的查询一般都是采用递归查询。 所谓递归查询就是:如果主机所查询的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询的请求报文(即替该主机继续查询)

InnoDB存储引擎的记录格式

馋奶兔 提交于 2020-03-31 20:47:57
  InnoDB是存储引擎,负责将磁盘的数据按照我们的逻辑概念“表”那样存取,这里首先总结下表中每一行数据是以何种形式被InnoDB存储再磁盘的。InnoDB的行记录存储形式有很多种,compact、dynamic、redundant、compressed等。下面介绍compact格式的行数据结构: 每一行的数据组成   除了我们自己的真实数据外,为了提高性能和用于存取这行InnoDB需要加上必要的数据,这叫做额外信息。每一行数据都由 额外信息 + 真实数据 组成。 其中额外信息里又分为变长字段长度列表、null字段列表、记录头信息(记录头信息有很多用于存取行、管理行的数据);真实数据也并不是只有我们自己设置的数据,mysql还会为其添加一些字段例如:事务Id、回滚指针、行Id(没有设置主键时用于唯一标识行)。 额外信息的变长字段长度列表   如果某个字段设置为变长,mysql必须知道这个字段实际长度,不然mysql取这个字段时根本不知道取多少。变长字段的长度就存放在额外信息的变长字段长度列表里,但是不是顺序的而是倒序的。当然,如果这一行没有变长字段,这一个列表就不存在。例如:表中有如下数据: a(varchar(255)) | b (varchar(256)) | c(varchar(256)) ------------------------------------------

介绍三种Session存储方式

放肆的年华 提交于 2020-03-30 20:47:45
简单来说,Session就是服务器给客户端的一个编号,当一台web服务器运行时,可能 是有多个用户都在浏览这台服务器上的网站,当每个用户首次与这台服务器建立连接时,它就与这个服务器建立了一个Session,同时服务器就会自动为其分 配一个SessionId,用以标识这个用户的唯一身分,这个Session就是有服务器随机产生的一个由24个字符组成的字符串。 这个唯一的SessionId还是有很大的实际意义,当一个用户提交表单时,浏览器就会将用户的SessionId自动附加在HTTP头信息中,当服务器 处理完这个表单后,就会将结果返回给SessionId所对应的用户。 如下是Web.config如何配置Session的: <configuration> <system.web> <sessionState mode=" Off | InProc | StateServer | SQLServer " cookieless=" true | false " timeout=" number of minutes " stateConnectionString=" tcpip=server:port " sqlConnectionString=" sql connection string " stateNetworkTimeout=" number of seconds " /> <