hadoop: 开源分布式计算平台 包括HDFS和Map/Reduce两个核心模块 HDFS具有高容错性和高伸缩性 MapReduce可以使用户在不了解分布式底层框架的前提下开发并行应用程序
hadoop可以高效的存储管理和分析大数据,采用分布式存储方式来提高读写速度和扩大存储容量,采用MapReduce整合分布式文件系统上的数据,保证高速分析处理数据,采用冗余存储来保证数据的安全性。
hadoop优势:高可靠性、高扩展性、高容错性、高效性
MapReduce是一种编程模型,用于大规模的数据集的并行运算。
HDFS的设计目标: 检测和快速恢复硬件故障、流式的数据访问:用于提高数据的吞吐量而不是数据的访问效率。简化一致性模型:一次写入多次读取。写入后即不修改。通信协议:基于TCP/IP协议,客户端明确配置的端口的名字节点(NameNode),建立连接之后,他和名字节点之间便是客户端协议。名字节点和数据节点之间用数据节点协议?
Hbase:分布式、面向列的开源数据库。与关系数据库的区别:1.适用于非结构化数据结构数据存储。2.Hbase是基于列而不是基于行。Hbase主要用于需要随机访问和实时读写的大数据。
DataNode是所有NameNode的管理者,一个集群中有一个NameNode和多个DataNode,客户端写入数据是不经过NameNode,直接把数据写入DataNode。
MapReduce是一种并行编程模式,利用这种模式,软件开发者可以轻松的编写分布式并行程序。他将任务分发到集群中的多台机器中,以一种可靠容错的方式进行大数据的处理。
HDFS在MapReduce任务处理过程中提供了对文件操作和存储的支持,MapReduce在HDFS的基础上实现数据的分发、跟踪和执行等工作,并收集结果。二者相辅相成,完成Hadoop的分布式集群的主要任务。
Hadoop与分布式开发:
1.数据分布式存储:一个计算机分布式系统有一个NameNode和多个DataNode,每一个Node就相当于一台计算机,在HDFS的底层,文件被切分成多个Block,以Block的方式进行存储,每个Block存储多个DataNode节点上,以达到容错的特性。NameNode是整个HDFS的核心,他通过维护一些数据结构来记录每一个文件被分成多少个Block,这些Block可以从哪些DataNode获得,以及这些Block的状态信息等。
2.分布式并行计算:Hadoop有一个作为主控的JobTracker,用于监控和调度多个TaskTracker,JobTracker可以运行在任何一台计算机中,而TaskTracker必须运行在DataNode节点中,所以DataNode既是存储节点又是计算节点。当JobTracker把任务分配给TaskTracker时,会监控这些任务,当其中有些TaskTracker执行任务失败时,JobTracker会重新分配任务给其他的JobTracker。
NameNode是整个分布式存储的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的MetaData存储在内存中,这些信息主要包括文件信息,每一个文件对应的文件块信息,每个文件块对应的DataNode节点的信息。
DataNode是文件存储的基本单元,他将文件块存储在本地文件系统中,保存了Block的MetaData信息,并周期性的将所有存储的Block信息发送给NameNode。
Client是获取分布式文件系统文件的应用软件。
Hbase是一个稀疏的、长期存储的、多维度的顺序映射表,这张表的索引是:行关键字、列关键字、时间戳。表中的数据是纯字符串,没有类型。
稀疏存储:同一张表中的每一行数据都可以有不同的列,列名字的格式是:<family>:<label>;它是由字符串组成的,每一张表有一个family集合,这个集合是不变的,只能通过修改表结构来修改这个family集合。而label由于每一行可以有不同的列,因此它是可以改变的。
Hbase把每一个family存储在同一个目录下,Hbase的写操作时锁行的,每一行是一个原子操作。每一次数据库的更新都有一个时间戳,Hbase保存一定数量的版本。
hadoop可以高效的存储管理和分析大数据,采用分布式存储方式来提高读写速度和扩大存储容量,采用MapReduce整合分布式文件系统上的数据,保证高速分析处理数据,采用冗余存储来保证数据的安全性。
hadoop优势:高可靠性、高扩展性、高容错性、高效性
MapReduce是一种编程模型,用于大规模的数据集的并行运算。
HDFS的设计目标: 检测和快速恢复硬件故障、流式的数据访问:用于提高数据的吞吐量而不是数据的访问效率。简化一致性模型:一次写入多次读取。写入后即不修改。通信协议:基于TCP/IP协议,客户端明确配置的端口的名字节点(NameNode),建立连接之后,他和名字节点之间便是客户端协议。名字节点和数据节点之间用数据节点协议?
Hbase:分布式、面向列的开源数据库。与关系数据库的区别:1.适用于非结构化数据结构数据存储。2.Hbase是基于列而不是基于行。Hbase主要用于需要随机访问和实时读写的大数据。
DataNode是所有NameNode的管理者,一个集群中有一个NameNode和多个DataNode,客户端写入数据是不经过NameNode,直接把数据写入DataNode。
MapReduce是一种并行编程模式,利用这种模式,软件开发者可以轻松的编写分布式并行程序。他将任务分发到集群中的多台机器中,以一种可靠容错的方式进行大数据的处理。
HDFS在MapReduce任务处理过程中提供了对文件操作和存储的支持,MapReduce在HDFS的基础上实现数据的分发、跟踪和执行等工作,并收集结果。二者相辅相成,完成Hadoop的分布式集群的主要任务。
Hadoop与分布式开发:
1.数据分布式存储:一个计算机分布式系统有一个NameNode和多个DataNode,每一个Node就相当于一台计算机,在HDFS的底层,文件被切分成多个Block,以Block的方式进行存储,每个Block存储多个DataNode节点上,以达到容错的特性。NameNode是整个HDFS的核心,他通过维护一些数据结构来记录每一个文件被分成多少个Block,这些Block可以从哪些DataNode获得,以及这些Block的状态信息等。
2.分布式并行计算:Hadoop有一个作为主控的JobTracker,用于监控和调度多个TaskTracker,JobTracker可以运行在任何一台计算机中,而TaskTracker必须运行在DataNode节点中,所以DataNode既是存储节点又是计算节点。当JobTracker把任务分配给TaskTracker时,会监控这些任务,当其中有些TaskTracker执行任务失败时,JobTracker会重新分配任务给其他的JobTracker。
NameNode是整个分布式存储的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等。NameNode会将文件系统的MetaData存储在内存中,这些信息主要包括文件信息,每一个文件对应的文件块信息,每个文件块对应的DataNode节点的信息。
DataNode是文件存储的基本单元,他将文件块存储在本地文件系统中,保存了Block的MetaData信息,并周期性的将所有存储的Block信息发送给NameNode。
Client是获取分布式文件系统文件的应用软件。
Hbase是一个稀疏的、长期存储的、多维度的顺序映射表,这张表的索引是:行关键字、列关键字、时间戳。表中的数据是纯字符串,没有类型。
稀疏存储:同一张表中的每一行数据都可以有不同的列,列名字的格式是:<family>:<label>;它是由字符串组成的,每一张表有一个family集合,这个集合是不变的,只能通过修改表结构来修改这个family集合。而label由于每一行可以有不同的列,因此它是可以改变的。
Hbase把每一个family存储在同一个目录下,Hbase的写操作时锁行的,每一行是一个原子操作。每一次数据库的更新都有一个时间戳,Hbase保存一定数量的版本。
Hbase的组成:HBaseMaster,HRegionServer,Hbase Client
HBase的体系结构:
1.client: 调用Hbase的接口,把数据存储在缓存中
2.zookeeper: 确保只有一个Master, 存储Region的寻址入口, 实时监控RegionServer的上下线信息,并反馈给Master, 存储Hbase的schema和table元数据
3.Master:为HRegionServer分配Region, 发现失效的RegionServer,重新分配Region, 负责RegionServer的负载均衡,管理用户对table的增删改查操作
4.HRegionServer: 负责维护Region,处理这些Region的增删改查操作, 负责切分在运行过程中变得过大的Region
5.-ROOT-表: 用来查询Region表中的每个RegionServer的位置,Root表中只有一个Region, zookeeper中记录了-ROOT-表的位置
5. .meta.表: 记录各个表中每个Region所在的RegionServer。 可以有多个Region(可以查询到具体的数据?)