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.

- 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表中的数据太多,也会进行自动分区。
1万+

被折叠的 条评论
为什么被折叠?



