Nosql复习篇(三)

Chapter3-5

1.Hadoop中的HDFS分布式文件系统解决了HBase的数据底层存储问题,实现了文件系统、数据分片、多副本容错、数据一致性等诸多功能。
2.Hadoop最初的应用场景为搜索引擎的底层技术支持。
3.核心组件:分布式文件系统HDFS、分布式处理框架MapReduce、分布式资源管理框架Yarn。
4.Google:The Google File System、MapReduce、Bigtable。
Hadoop:HDFS、MapReduce、HBase
5.
Hadoop核心组件及重要扩展项目

  • HDFS文件系统是存储基础,负责对大数据文件和存储集群进行管理。
  • HBase可以在HDFS基础上,将数据处理成面向列的数据表,并支持按照行键进行快速检索等功能。本身不对数据进行分布式处理。
  • Yarn负责对集群中的内存、CPU等资源进行管理,同时负责对分布式任务进行资源分配和管理。
  • Tez和Spark是MapReduce的升级和替代产品,可以支持HDFS、HBase作为数据源和输出,并通过Yarn向分布式集群提交分布式处理任务。
  • Hive可以将HDFS文件映射为传统的二维数据表,并且支持将SQL语句转化为MapReduce过程。
  • Sqoop基于MapReduce构建,实现关系型数据库和HDFS、HBase之间的分布式数据转换。
  • Flume可以将日志数据采集到大数据平台。
  • Oozie和hue分别实现数据处理过程的工作流构建和可视化操作。
  • Zookeeper实现各个服务集群的节点监控、高可用性管理和配置同步等功能。
  • Ambari和Cloudera Manager实现快速部署并简化运维Hadoop集群。

6.不部署在Windows系统而是Linux系统上的原因:

  • Hadoop是基于Linux系统开发的,充分考虑Linux系统的特点。
  • Hadoop的扩展组件大多基于Linux开发。
  • Windows系统收费,不适用部署在多个服务器上,Linux具有成本优势。

7.Hadoop利用TCP/IP进行节点间的通信和传输;用HTTP进行数据传输;用异步消息队列机制进行监控和通知。
8.HDFS不适合提供通用的网络存储或云盘服务,因为HDFS在文件随机更新和海量小文件管理等方面不擅长。
9.HBase、Hive、Solr等分布式数据库或数据仓库使用HDFS作为底层存储系统。
10.HBase可以完成实时任务,可以实现对记录的更新和删除,不支持Sql语言,不支持事务、关联查询。
11.HDFS的主要优势:

  • 将大文件分块,实现元数据统一管理,数据分布式存储,且具有良好的横向扩展性。
  • 实现数据的多副本存储,不必担心由于节点或网络故障造成的数据不可用。
  • 隐藏分块、副本等存储细节,上层应用可以通过类POSIX接口实现文件读写。

12.HDFS存在的问题:

  • 不支持对数据的随机改写,处理数据的“一次写入多次读取”。
  • 没有表的概念,如果采用逗号或Tab分隔数据,HDFS无法定义各列名的信息。
  • 无法针对行数统计、过滤扫描等常见数据查询功能实现快捷操作,需要MapReduce编程实现,无法实时检索。

13.HBase特点:

  • 采用面向列加键值对的存储模式。
  • 可实现便捷的横向扩展。HBase可以利用HDFS实现数据的分布式存储以及集群容量的横向扩展。对于元数据管理能力的扩展,可采用数据分片方式进行。
  • 可以实现自动的数据分片。(对用户透明)
  • 可以实现严格的读写一致性和自动的故障转移。多副本之间的同步、故障检测与转移等机制都可以自动实现。
  • 可以实现对全文的检索与过滤。不仅可以实现基于键的快速检索,还可以实现基于值、列名等的全文遍历与条件检索。
  • 支持通过命令行或者Java等语言进行操作。可以支持Spark和MapReduce读取和写入数据。

14.HBase的数据模型

  • 行键:所有其他信息都可以看做行键的字段。
  • 列族:包含多个列,需要在建表前进行定义。
  • 列限定符:不需要预先设定列名,数据类型以及值。
  • HBase不需要预先设计列的结构,当添加新的列时,只要在新记录中记录这个列名,如果一行数据不存在某个列,则不会记录该键值对。
  • 数据更新机制:HBase可以查询出某个数据的所有可用版本,然后再根据查询条件进行筛选。

15.表和列族操作:创建表(create)、查看表名(list)、确认表是否存在(exist)、描述表结构(describe)、修改表结构(alter)、删除表中的某一部分(delete)、删除表(先disable再drop)、清空所有数据(truncate)
16.数据操作:

  • 数据更新:数据插入(put)、数据更新(put)、数据删除(delete)、计数器(加和incr)(查看当前值get_counter)
  • 数据查询:根据行键获取一条数据(get)、不指定行键采用全表扫描查询数据(scan)、行计数(count)
  • 过滤查询(scan–>FILTER)
  • 快照操作(snapshot)

17.水平分区原理:

  • HBase可以将大数据表进行水平分分割形成不同的区域(region),并由不同的RegionServer进行管理。当数据表刚被建立时,只有一个数据分区,随着数据表的膨胀,HBase根据一定规则将表进行水平拆分。分区的拆分是基于行键进行的,相同行键的数据一定存储在一个Region中。当HBase的一个分区切分成两个时,后一个分区的所有行键均大于前一个分区。当新的键值对被写入时,会根据行键单词的首字母自动被指派到对应的分区。
  • HBase的数据文件是一种Map文件,即排序后的序列化文件。
  • 各个RegionServer所管理的表和分区记录在META表中,META表也采用键值对和面向列的存储模式。如果分区数量太多,META表中的数据太多,也会进行自动分区。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值