信息存储

hdfs、tfs、fastdfs、Tachyon

爱⌒轻易说出口 提交于 2019-12-03 09:25:46
hdfs 架构设计 HDFS按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。 NameNode:是Master节点,是管理者。1、管理数据块映射;2、处理客户端的读写请求;3、配置副本策略;4、管理HDFS的名称空间; NameNode保存的metadata包括文件ownership和permission , 文件包含的block信息 , Block保存在那些DataNode节点上(这部分数据并非保存在NameNode磁盘上的,它是在DataNode启动时上报给NameNode的,Name接收到之后将这些信息保存在内存中), NameNode的metadata信息在NameNode启动后加载到内存中 , Metadata存储到磁盘上的文件名称为fsimage , Block的位置信息不会保存在fsimage中 , Edits文件记录了客户端操作fsimage的日志,对文件的增删改等。用户对fsimage的操作不会直接更新到fsimage中去,而是记录在edits中 SecondaryNameNode:分担namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。 部署方式和使用方法 Hdfs https://blog.csdn.net/qq

HBase原理和设计

淺唱寂寞╮ 提交于 2019-12-03 09:05:44
简介 HBase —— Hadoop Database的简称,Google BigTable的另一种开源实现方式,从问世之初,就为了解决用大量廉价的机器高速存取海量数据、实现数据分布式存储提供可靠的方案。从功能上来讲,HBase不折不扣是一个数据库,与我们熟悉的Oracle、MySQL、MSSQL等一样,对外提供数据的存储和读取服务。而从应用的角度来说,HBase与一般的数据库又有所区别,HBase本身的存取接口相当简单,不支持复杂的数据存取,更不支持SQL等结构化的查询语言;HBase也没有除了rowkey以外的索引,所有的数据分布和查询都依赖rowkey。所以,HBase在表的设计上会有很严格的要求。架构上,HBase是分布式数据库的典范,这点比较像MongoDB的sharding模式,能根据键值的大小,把数据分布到不同的存储节点上,MongoDB根据configserver来定位数据落在哪个分区上,HBase通过访问Zookeeper来获取-ROOT-表所在地址,通过-ROOT-表得到相应.META.表信息,从而获取数据存储的region位置。 架构 上面提到,HBase是一个分布式的架构,除去底层存储的HDFS外,HBase本身从功能上可以分为三块:Zookeeper群、Master群和RegionServer群。 Zookeeper群:HBase集群中不可缺少的重要部分

Session机制详解及分布式中Session共享解决方案

旧巷老猫 提交于 2019-12-03 08:54:49
一、为什么要产生Session   http协议本身是无状态的,客户端只需要向服务器请求下载内容,客户端和服务器都不记录彼此的历史信息,每一次请求都是独立的。   为什么是无状态的呢?因为浏览器与服务器是使用socke套接字进行通信,服务器将请求结果返回给浏览器之后,会关闭当前的socket链接,而且服务器也会在处理页面完毕之后销毁页面对象。   然而在Web应用的很多场景下需要维护用户状态才能正常工作(是否登录等),或者说提供便捷(记住密码,浏览历史等),状态的保持就是一个很重要的功能。因此在web应用开发里就出现了保持http链接状态的技术:一个是cookie技术,另一种是session技术。 二、Session有什么作用,如何产生并发挥作用   要明白Session就必须要弄明白什么是Cookie,以及Cookie和Session的关系。   1、什么是Cookie   Cookie技术是http状态保持在客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。   2、Cookie的产生   当用户首次使用浏览器访问一个支持Cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息

Python中的文件处理和数据存储json

无人久伴 提交于 2019-12-03 04:43:19
前言:每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序来说尤其如此。 例如,你可以编写一个这样的程序:读取一个文本文件的内容,重新设置这些数据的格式并将其写入文件,让浏览器能够显示这些内容。 要使用文本文件中的信息,首先需要将信息读取到内存中。为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。 一、open、close处理文件 1.读取整个文件 操作文件中的函数/方法 在python中操作文件需要记住1个函数和3个方法 python中一切皆对象 open :打开文件,并且返回文件操作对象 read :将文件内容读取到内存 write:将指定内容写入文件 close:关闭文件 open函数负责打开文件,并且返回文件对象 read/write/close 三个方法都需要通过文件对象来调用 read方法–读取文件 open函数的第一个参数是要打开的文件名(文件名区分大小写) 如果文件存在,返回文件操作对象, 如果文件不存在,会抛出异常 read方法可以一次性读入并返回文件的所有内容 close负责关闭文件 实例【1】 要读取文件,需要一个包含几行文本的文件。下面首先来创建一个文件,它包含精确到小数点后 30 位的圆周率值,且在小数点后每 10 位处都换行: pi_digits纯文本文件 3.1415926535 8979323846

【经典数据结构】B树与B+树

大城市里の小女人 提交于 2019-12-03 04:42:20
维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查找树不同,B-树为系统最优化 大块数据的读和写操作 。B-tree算法减少定位记录时所经历的中间过程,从而加快存取速度。普遍运用在 数据库 和 文件系统 。” 定义 B 树 可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点。 根节点至少有两个子节点 每个节点有M-1个key,并且以升序排列 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间 其它节点至少有M/2个子节点 下图是一个M=4 阶的B树: 可以看到B树是2-3树的一种扩展,他允许一个节点有多于2个的元素。 B树的插入及平衡化操作和2-3树很相似,这里就不介绍了。下面是往B树中依次插入 6 10 4 14 5 11 15 3 2 12 1 7 8 8 6 3 6 21 5 15 15 6 32 23 45 65 7 8 6 5 4 的演示动画: B+ 树是对B树的一种变形树,它与B树的差异在于: 有k个子结点的结点必然有k个关键码; 非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。

启动、配置、扩容、伸缩、存储,开普勒云平台之使用指南

前提是你 提交于 2019-12-03 04:25:56
本文从启动、配置、扩容、伸缩、存储等方面介绍如何使用开普勒云平台。 一、Kplcloud是什么? kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。 Kplcloud已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器。 一、登陆 登陆可以分为三种,分别是LDAP登陆、邮箱密码登陆、三方授权登陆,咱们没有注册功能。下面对这三种登陆方式进行讲解。 LDAP与邮箱登陆大同小异,只需要简单的配置即可。 1.1 LDAP登陆 在app.cfg文件找到[server]的login_type参数,设置为 ldap并且找到[ldap]块 [ldap] ldap_host = 127.0.0.1 ldap_port = 389 ldap_base = DC=yourdomain,DC=corp ldap_sseSSL = false ldap_bindDN = ldap_bind_password = ldap_user_filter = (userPrincipalName=%s) ldap_group_filter = (&(objectCategory=Group)) ldap_attr = name;mail [server] ;auth

【1101 | Day58】一篇文章彻底理解cookie,session,token

痴心易碎 提交于 2019-12-03 03:37:46
目录 彻底理解cookie,session,token 发展史 Cookie Session Token 彻底理解cookie,session,token 发展史 1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记住是谁刚刚发了HTTP请求, 每个请求对我来说都是全新的。这段时间很嗨皮 2、但是随着交互式Web应用的兴起,像在线购物网站,需要登录的网站等等, 马上就面临一个问题,那就是要管理会话,必须记住哪些人登录系统, 哪些人往自己的购物车中放商品, 也就是说我必须把每个人区分开,这就是一个不小的挑战,因为HTTP请求是无状态的 ,所以想出的办法就是给大家发一个会话标识(session id), 说白了就是一个随机的字串,每个人收到的都不一样, 每次大家向我发起HTTP请求的时候,把这个字符串给一并捎过来, 这样我就能区分开谁是谁了 3、这样大家很嗨皮了,可是服务器就不嗨皮了,每个人只需要保存自己的session id,而服务器要保存所有人的session id ! 如果访问服务器多了, 就得由成千上万,甚至几十万个。 这对服务器说是一个巨大的开销 , 严重的限制了服务器扩展能力, 比如说我用两个机器组成了一个集群,

Redis应用场景

匿名 (未验证) 提交于 2019-12-03 00:44:02
Memcached 采用客户端 - 服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端 Library 可以用任何语言实现。 Memcached服务器 使用基于 Slab 的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个 Slab 按需动态分配一个 page 的内存(和 4Kpage 的概念不同,这里默认 page Ϊ 1M ), page 内部按照不同 slab class 的尺寸再划分为内存 chunk 供服务器存储 KV 键值对使用( slab机制相当于内存池机制, 实现从操作系统分配一大块 内存, 然后 memcached 自己管理这块内存, 负责分配与回收。) 关于memcached的内存分配机制: Memcached 内存分配机制介绍   1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。   2.Memcached与MySQL数据库数据一致性问题。   3.Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑。   4.跨机房cache同步问题。 Memcache存储大数据的问题   众多NoSQL百花齐放,如何选择   最近几年,业界不断涌现出很多各种各样的NoSQL产品,那么如何才能正确地使用好这些产品

GSMA RCS标准的演变

匿名 (未验证) 提交于 2019-12-03 00:42:01
市场需求推动了丰富通信服务技术标准的发展.开放移动联盟(OMA)基于IMS和SIP技术指定了SIMPLE IM和融合IP消息系统(CPM)的技术细节.这种技术的概念反映了2000年代中期左右流行的基于PC的消息传送服务.自2000年代后期左右智能手机时代以来、以运营商为中心的生态系统开始崩溃、许多OTT(Over-The-Top、通信服务)通信服务开始在市场上以其免费短信和语音通话服务起飞、从而威胁到传统 运营商的收入.运营商通过提出GSMA指定的丰富通信套件(RCS)技术来应对这些威胁.RCS的标准仍在不断发展、其中纳入了上市时间服务功能的各种要求、并考虑了商业模式。 当GSM协会(GSMA)于2011年4月首次指定富通讯套件演变(RCSe)标准、品牌名称为“Joyn”时、许多全球电信公司预计Joyn可能成为与现有和突出OTT服务、如Whatsapp、Viber、Line等。从运营商的角度来看、这些OTT服务通过搭载电信公司的既有基础设施而大幅增长、他们甚至通过免费提供免费电话服务的收入来源mVoIP和消息服务功能。在韩国、三大电信公司(即SKT、KT和LG U +)于2012年底开始提供Joyn服务、而在欧洲、特别是西班牙和德国、沃达丰和Orange等全球性公司也开始提供相同的服务。从那时起已经差不多三年了。与最初的猜测不同的是、这些国家的Joyn服务并没有得到很大的普及

Android 里的数据储存

匿名 (未验证) 提交于 2019-12-03 00:40:02
数据持久化 关于数据储存,这个话题已经被反复讨论过很多次了,我是不建议把网络存储这种方式纳入到数据储存的范围的,因为这个和Android没多少关系,因此就有如下的分类: 本地储存 (也称之为数据持久化,包含 文件储存, SharedPreferences,SQLite储存和ContentProvider(内容提供者)) 内存储存(静态变量、全局变量存值) 适用场景 如果app内有些数据是需要使用到上次该app关闭时的数据,比如下次启动app没有网络时要求显示之前的省市信息,那么无论,你有多么不愿意,本地储存是必要的,无非就是有数据时从内存先取,没有时从本地存储空间取; 内存储存相对于本地储存有着响应快,耗时低的优势,本地储存数据量大IO操作耗时长时甚至要在非UI线程来执行.这就意味着,能不用本地储存就不要用. 基本用法 使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。 它是什么样的处理方式呢?