过去两年,我的主要工作都在Hadoop这个技术栈中,而最近有幸接触到了Ceph.我觉得这是一件很幸运的事,让我有机会体验另一种大型分布式存储解决方案,可以对比出HDFS与Ceph这两种几乎完全不同的存储系统分别有哪些优缺点.适合哪些场景. 对于分布式存储,尤其是开源的分布式存储,站在一个SRE的角度,我认为主要为商业公司解决了如下几个问题: 可扩展,满足业务增长导致的海量数据存储需求: 比商用存储便宜,大幅降低成本: 稳定,可以驾驭,好运维. 总之目标就是:又好用,又便宜,还稳定.但现实似乎并没…
本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 - 概述>一文中描述的几个关注方面么?分布式文件系统属于分布式存储中的一种面向文件的数据模型,它需要解决单机文件系统面临的容量扩展和容错问题. 所以 HDFS 的架构设计目标就呼之欲出了: 面向超大文件或大量的文件数据集 自动检测局部的硬件错误并快速恢复 基于此目标,考虑应用场景出于简化设计和实现的目…
1. hadoop中HDFS的NameNode原理 1.1. 组成 包括HDFS(分布式文件系统),YARN(分布式资源调度系统),MapReduce(分布式计算系统),等等. 1.2. HDFS架构原理 比如现在要上传一个1T的大文件,提交给HDFS的Active NameNode(用以存放文件目录树,权限设置,副本数设置等),它会在指定目录下创建一个新的文件对象,比如access_20180101.log 至于具体数据,它会将它拆分后进行分布式存储,分散在各个DataNode节点,且默认都会…
原文:SQL Server中TempDB管理(版本存储区的一个example) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive/tags/tempdb/ http://blogs.msdn.com/b/sqlserverstorageengine/archive/2008/12/31/managing-tempdb-in-sql-server-tempdb-basics-version-store-simple-examp…
在浏览器中回车和F5刷新有什么区别那?今天就来说说:浏览器中回车(Enter)和刷新的区别是什么? 这点事. 概论: 1.回车在 Expires有效的时候,是不会去请求服务器的,打开调试看到的请求也只是伪造的,比如 谷歌浏览器可能显示 200(cached)(比正常的200多了) 其实是没有发起实际的缓存,直接读取本地硬盘缓存. 2.如果按了 f5则 Expires设置不再起效果,只有Last-Modified/ETag有效果,如果在缓存期间内则返回 304,再读取本地缓存内容 3.ctrl+f…
在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障,那么将导致整个集群无法利用,直到NN重启或者在另一台主机上启动NN守护线程. 主要在两方面影响了HDFS的可用性: (1).在不可预测的情况下,如果NN所在的机器崩溃了,整个集群将无法利用,直到NN被重新启动: (2).在可预知的情况下,比如NN所在的机器硬件或者软件需要升级,将导致集群宕机. H…
原文链接:在kolla中配置cinder ceph多后端…
要了解这些先看看关于数据库组件的那些事儿(就是 Eloquent ORM) 数据库组件大概分了三层: 数据库连接层 查询构造层 应用层 来看一下每一层有哪些东西,分别对应文档的哪一部分: 数据库连接层 数据库连接层是整个数据库组件依赖的基础,这个不言而喻,但是这部分实际上从 文档 都能够看得出,本身更多是基于 PDO的封装,在此基础上提供了以下几个主要功能: 更为直观易用的事务 读写分离功能 多种数据库驱动兼容和切换 数据库事件 这一部分的功能可以通过 Facade 快捷调用(DB 类),文档已…
[Qt开发]关于Qt应用程序中的堆栈.静态存储区的使用错误 标签:[Qt开发] 最近终于又碰到了这个问题,想在main函数中定义一个局部大的数组,结果运行就报错,尼玛!刚开始真的不知道到发生了什么,后来一步一步的试,锁定在这个大的数组上.在主函数里定义的局部变量应该是在栈区保存的,难道是Qt默认的栈不够所致. 后来改为new或者malloc,也就是从堆里面申请内存,程序就没问题,或者是定义全局变量应该是放在了全局静态存储区,都是可以的,不报错! 所以牢记这一点!! 下面还是经典的经典内存分布说明…
要说Java中的栈,堆,方法区和常量池就要提到HotSpot,HotSpot是Sun JDK 和 Open JDK中所带的虚拟机. (Sun JDK 和 Open JDK除了注释不同,代码实现基本上是一样的) 以下说的内容都是围绕HotSpot. Stack(栈):分为VM Stack(虚拟机栈)和Native Method Stack(本地方法栈),不过HotSpot虚拟机直接把本地方法栈和虚拟机栈合二为一了. 虚拟机栈: 线程私有的, 描述的是Java方法执行的内存模型,方法调用的同时创建一…
作者:张华  发表于:2014-06-21版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 (http://blog.csdn.net/quqi99 ) 作者将又一次研究ceph, 先温习一下之前作者大半年前发表在openstack中国社区的一篇理论文章(http://www.openstack.cn/p276.html),复制例如以下: Ceph是一个支持大量小文件和随机读写的分布式文件系统,在维护 POSIX 兼容性的同一时候添加了复制和容错功能.眼下C…
接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode.DataNode 和 Client.本文首先进一步解析 HDFS NameNode 的设计和实现要点. 元数据持久化 NameNode 将所有元信息以特定的数据结构组织存放在内存中,对于 namespace 和 replication factor 的信息会进行持久化,而映射关系则不会持久化.因为映射关系是通过 DataNode 启动后定时汇报上来,即使 NameNode 重启后内存信息丢…
在网络环境方面,作为分布式系统,Hadoop基于TCP/IP进行节点间的通信和传输. 在数据传输方面,广泛应用HTTP实现. 在监控.通知方面,Hadoop等分布式大数据软件则广泛使用异步消息队列等机制. 1. hadoop的概念及其发展历程 Hadoop是Apache开源组织的一个分布式计算开源框架,用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算. Hadoop框架中最核心设计:HDFS和MapReduce,HDFS实现存储,MapReduce实现原理分析…
在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同.一.内存分区 栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等.栈是系统数据结构,对应线程/进程是唯一的.优点是快速高效,缺点时有限制,数据不灵活.[先进后出] 栈空间分静态分配 和动态分配两种. 静态分配是编译器完成的,比如自动变量(auto)的分配. 动态分配由alloca函数完成. 栈的动态分配无需释放(是自动的),也就没有释放函数. 为可移植的程序起见,栈的动态分配操作是不…
本文讲述怎么在Linux Shell中对HDFS进行操作. 三种命令格式: hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统 hadoop dfs只能适用于HDFS文件系统 hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统 创建文件夹(在hadoop安装目录下) ./bin/hadoop fs -mkdir hdfs://127.0.0.1:9000/WordCount 显示文件夹中文件信息 ./bin/hadoop fs -ls…
文章来自:http://www.cnblogs.com/hark0623/p/4177794.html 转载请注明 其实问题很简单,因为在CDH中hdfs-site.xml配置文件中WEB UI配置的是域名,而域名在Hosts又被解析成内网IP. 你使用netstat -apn | grep 50700看一下监听情况. 你会发现监听的是你的内网IP,而不是外网IP,所以HDFS的WEB UI就无法访问啦. 解决办法:如果你使用的是Apache Hadoop,那么需要去手动修改hdfs-site.…
HDFS是Hadoop Distribute File System的简称,也是Hadoop的一个分布四文件系统 一.HDFS的主要设计理念 1.存储超大文件 这里的 “超大文件” 是指几百MB .GB甚至 TB级别的文件. 2.最高效的访问模式是一次写入.多次读取(流式数据访问)  HDFS存储的数据集作为hadoop的分析对象,在数据集生成后,长时间在此数据集上进行各种分析.每次分析都将设计该数据的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要. 3.运…
JAVA中entrySet();跟keySet();的区别是什么 红叶_书生 | 浏览 10397 次  2014-04-10 10:45 2014-04-10 10:49   最佳答案   keySet是键的集合,Set里面的类型即key的类型entrySet是 键-值 对的集合,Set里面的类型是Map.EntrykeySet()的速度比entrySet()慢了很多使用entrySet则必须将map对象转换为Map.Entry,keySet则不需要…
「后端分布式系列」前面关于 HDFS 的一些文章介绍了它的整体架构和一些关键部件的设计实现要点. 我们知道 HDFS 最早是根据 GFS(Google File System)的论文概念模型来设计实现的. 然后呢,我就去把 GFS 的原始论文找出来仔细看了遍,GFS 的整体架构图如下: HDFS 参照了它所以大部分架构设计概念是类似的,比如 HDFS NameNode 相当于 GFS Master,HDFS DataNode 相当于 GFS chunkserver. 但还有些细节不同的地方,所以…
在前面的文章 <HDFS DataNode 设计实现解析>中我们对文件操作进行了描述,但并未展开讲述其中涉及的异常错误处理与恢复机制.本文将深入探讨 HDFS 文件操作涉及的错误处理与恢复过程. 读异常与恢复 读文件可能发生的异常有两种: 读取过程中 DataNode 挂了 读取到的文件数据损坏 HDFS 的文件块多副本分散存储机制保障了数据存储的可靠性,对于第一种情况 DataNode 挂了只需要失败转移到其他副本所在的 DataNode 继续读取,而对于第二种情况读取到的文件数据块若校验失…
前面对 HDFS NameNode 和 DataNode 的架构设计实现要点做了介绍,本文对 HDFS 最后一个主要构成组件 Client 做进一步解析. 流式读取 HDFS Client 为客户端应用提供一种流式读取模型,就像访问本机文件系统一样来访问 HDFS.将复杂的分布式文件系统读取细节隐藏,简化了上层应用的使用难度.写过读取本机文件的程序员想必都很熟悉流式读取的编程模型,就不多说了. 错误处理 相比读取本机文件系统,从分布式文件系统读取出错概率会更高.因此 HDFS Client 提供…
前文分析了 NameNode,本文进一步解析 DataNode 的设计和实现要点. 文件存储 DataNode 正如其名是负责存储文件数据的节点.HDFS 中文件的存储方式是将文件按块(block)切分,默认一个 block 64MB(该大小可配置).若文件大小超过一个 block 的容量可能会被切分为多个 block,并存储在不同的 DataNode 上.若文件大小小于一个 block 的容量,则文件只有一个 block,实际占用的存储空间为文件大小容量加上一点额外的校验数据.也可以这么说一个…
转载自:http://www.daniubiji.cn/archives/596 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Google 文件系统(中文,英文). HDFS有很多特点: ①保存多个副本,且提供容错机制,副本丢失或宕机自动恢复.默认存3份. ②运行在廉价的机器上.(商用机) ③适合大数据的处理.多大?多小?HDFS默认会将文件分割成bl…
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分析解决能力 问题场景 1.Namenode 服务器的磁盘故障导致 namenode 宕机,如何挽救集群及数据? 2.Namenode 是否可以有多个?namenode 内存要配置多大?namenode 跟集群数据存储能 力有关系吗? 3.文件的 blocksize 究竟调大好还是调小好?结合 map…
1.停掉外部接入服务: 2 NameNode Metadata备份: 2.1 备份fsimage数据,(该操作适用HA和非HA的NameNode),使用如下命令进行备份: [root@cdh01 dfs]# mkdir nn_metadata_back [root@cdh01 dfs]# hdfs dfsadmin -fetchImage nn_metadata_back/ [root@cdh01 dfs]# ll nn_metadata_back 2.2 备份edits数据(该操作适用非HA的…
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分析解决能力 问题场景 1.Namenode 服务器的磁盘故障导致 namenode 宕机,如何挽救集群及数据? 2.Namenode 是否可以有多个?namenode 内存要配置多大?namenode 跟集群数据存储能 力有关系吗? 3.文件的 blocksize 究竟调大好还是调小好?结合 map…
转自:http://blog.csdn.net/sdlyjzh/article/details/28876385 Hadoop其实并不是一个产品,而是一些独立模块的组合.主要有分布式文件系统HDFS和大型分布式数据处理库MapReduce.由于目前主要用到HDFS,所以这里看一下它的工作原理,以及相应的介绍下配置. 什么是HDFS?Hadoop Distributed File System,字面意思,Hadoop分布式文件系统,通俗的讲,就是可以将不同节点的设备用来存储.它分为两个部分:Nam…
在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障,那么将导致整个集群无法利用,直到NN重启或者在另一台主机上启动NN守护线程. 主要在两方面影响了HDFS的可用性: (1).在不可预测的情况下,如果NN所在的机器崩溃了,整个集群将无法利用,直到NN被重新启动: (2).在可预知的情况下,比如NN所在的机器硬件或者软件需要升级,将导致集群宕机. H…
另外,常量池在方法区中…
1,修改core-site.xml文件,先改成localhost,将所有进程关闭stop-all.sh(或者是先关闭所有进程,然后再修改文件),然后重启,在修改core-site.xml文件成ip地址.注意:修改core-site文件的之后,如果出现问题,则重启文件内容:<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href=&quo…