Hadoop分布式架构及NoSQL

并行计算是指同时使用多种计算资源解决计算机问题的过程。

云计算是分布式技术+服务化技术+资源隔离+管理技术。虚拟化技术包括:资源虚拟化,统一分配监测资源、向资源池中添加资源。

分布式产品:

Hadoop:HDFS文件系统是一个可扩缩的、容错的、可以在廉价机器上运行的分布式文件系统,是一个NameNode和多个DataNode的结构。除了提供分布式文件存储外,Hadoop还提供基于Map/Reduce的框架,进行按行的并行分析,可以用来查询和计算。

ZooKeeper是Hadoop生态体系中作为协同系统出现的,包括分布式锁,统一命名等。

Paxos:被认为是处理分布式系统消息传递一致性的最好算法。实现领导者选举

启动ZK服务器集群环境后,多个ZK服务器在工作前会选举出一个Leader,若在接下来的工作中这个Leader死了,剩下的ZK被通知,并重新选举,目的是保证数据的一致性。

另外,ZK支持观察的概念,客户端可以在每个znode节点设置一个watch,如果观察的及节点有变更,那么watch就会触发,这个watch所属的客户端将接到一个通知,断开连接时同样也会,也就是说一个ZK服务器可以服务多个客户端。当然也可以多对多。

HBase:需要一个面向键/值的列存储数据库,并可以支持水平扩充。

分布式并行计算模式

HDFS:1、文件量相对不大,文件中间的内容不可以篡改,只能添加到尾部。2、只能对文件进行创建、删除、重命名、修改属性等操作。有数据块、复制因子两个概念。

Hadoop的基础计算框架MapReduce:前提是数据节点之间有高速的网络连接。尽量把数据储存在计算节点上。

1、map映射,把一个问题域中所有的数据在一个或多个节点中转化成key-value值,然后对这些key-value进行map操作,生成零个或者多个新的键值对,最后按key值排序,同样的key排在一起,合并生成一个key-value列表。

2、Reduce(简化)做的收集工作,把map步骤中生成的新的key-value列表按照key值放到一个或者多个节点中编写reduce操作处理归并成一个列表,得到最终的输出结果。

能满足健壮稳定性和高可拓展性的特点,但是处理能力不行

Hbase特点:1、永久保存。2、分布式,数据存储在不同的数据节点上的也是接住了HDFS。3、稀疏的。4、多维度排序的匹配图。

数据量可以很大,可以有很多行

数据维度可以很多,可以有很多列。

Hbase可以在很多台服务器上运行。

Hbase不同之处在于

是NoSQL数据库,不遵从ACID原则,跨表格的join操作是不被支持的,数据可以重复,没有真正意义上的索引,不会出现索引膨胀的问题,可以用普通的硬件,不需要用专业的数据库服务器,Hbase的容错性会解决节点的时效性问题。

Hadoop 核心基础架构:

namenode和datanode,通信协议如下1、每隔3秒,数据节点都会发送心跳信息给namenode,所以namenode会实时知道哪些数据是连线的。2、每个6h,数据节点会发送完整的数据块给namenode.

Hadoop其他组件

资源分配系统YARN

pig编程语言

数据挖掘工具Mahout

专注于数据挖掘的R语言

数据仓库工具Hive

新的框架Spark。

Hadoop :对海量数据快速存储,分布式计算模型能够对海量数据作出快速计算,性价比高,可以存储结构化或者是非结构化的数据。可以通过添加节点的方式扩展系统,容错率高。

分布式系统上的CAP原理:一致性,数据的一致性,任何一个读操作总是能读取到之前完成的写操作的结果,多点的数据是一致的。可用性。分区容忍性:可靠性,数据会有分离,那么在故障的情况下,分离的系统也能正常运行。

ACID和BASE概念

BA:basically available,基本可用性,系统保证的是任何时候对用户的查询都能返回需要的信息。

S:soft state可变状态,在系统中存储的数据是可能会发生变化的

E:eventtually  consistent最终一致性,也就是说在数据更新完成之后,系统存储的数据是一致的。

NoSQL(Not Only SQL)

可以说是一场数据库的革命性运动,解决关系型数据库解决不了的问题,有一个共通点是存储海量的数据,NoSQL没有复杂的关系模式,库中的变是可以拆分的。

文档:一个key-value的存储数据结构

//MongoDB

传统数据库的瓶颈:数据量问题,数据类型的问题,数据处理延时的问题。数据模型变化的问题

数据量问题:分布式计算








猜你喜欢

转载自blog.csdn.net/qiuyumin430/article/details/79853749
今日推荐