赞
踩
位图索引的例子,如下图所示,我们可以存储为
- “男”:100101
- “女”:011010
行号 | 姓名 |
---|---|
1 | 男 |
2 | 女 |
3 | 女 |
4 | 男 |
5 | 女 |
6 | 男 |
ID | name | age | sex | aihao |
---|---|---|---|---|
1 | 小明 | 21 | 男 | 女 |
2 | 隔壁老王 | 25 | 隔壁孩子 |
1,小明,21,男,女
2,隔壁老王,25, null, 隔壁孩子
<1, name>,小明
<1, age>, 21
...
<2, name>, 隔壁老王
文档id | 文档内容 |
---|---|
doc1 | how are you? fine, thank you, and you? I fine too, thank you! |
doc2 | good morning, LiLei, good morning, Hanmeimei |
倒排索引示例:ES的存储(倒排索引)的结果如下
- 应该将查询频率高的单词放在前面(越高越前)
- ES默认将文档存储,也可以配置不存储文件信息
- TF-IDF算法:参见Tec1-TF-IDF算法
dictionary | posting-list |
---|---|
fine | -> doc1 |
Hanmei | -> doc2 |
good | -> doc2 |
LiLei | -> doc2 |
… | … |
you | -> doc1 -> doc2 |
列存储 | 行存储 | |
---|---|---|
关注点 | 经常关注一张表某几列而非整表数据的时候 | 关注整张表的内容,或者需要经常更新数据 |
计算需要 | 数据表列有非常多行数据并且需要聚集计算的时候 | 不需要聚集运算,或者快速查询需求 |
计算方式 | 基于一列或者比较少的列计算的时候 | 需要经常读取某行数据 |
数据形式 | 数据表拥有非常多的列的时候 | 数据表本身数据行并不多 |
数据特性 | 数据表列有非常多的重复数据,有利于高度压缩 | 数据表的列本身有太多唯一的数据 |
物理存储的最小的单位是块(Block)
聚集索引 | 非聚集索引 |
---|---|
Select (tuple) from database
Insert into database value
Update database set xxx = xxx where statement
Delete from database where xxx
LSM,Log-Structured Merge-Tree,日志结构合并树
memstore:插入时优先放置到memstore,驻存内存,到了一定程度后再刷新到storeFile、插入都是写入操作
存储方式 | 结构 |
---|---|
MySQL | 单节点,包含数据、日志两个层面的操作 |
HBase & HDFS | 分布式文件系统,每一个节点操作类似MySQL的单节点 |
ES | 各节点备份 |
Hadoop:一个Apache基金会开发的开源软件框架,支持在由普通计算机组成的集群中运行海量数据的分布式计算,他可以让应用程序轻松扩展到上千个节点和PB级别的数据。
(k1,v1)->list(k2,v2)
(k2,list(v2)) -> (k3, v3)
Input -> Map -> Sort -> Combine -> Partition -> Reduce -> Output
Filename -> BlockSequence(FsImage)
、Block -> DatanodeList(BlockReport)
文件存储的基本单位。它存储文件块在本地文件系统中,保存了文件块的meta-data,同时周期性的发送所有存在的文件块的报错给Namenode
读文件:读取完之后会校验(Check Sum),未通过则告知错误
写文件:复制的策略,冗余数据放置在机柜中,跨机柜要经过交换机等设备
角色 | 内容描述 |
---|---|
ZooKeeper | 1. 一个高效的、可扩展的协调系统 2. Hadoop的子项目,不属于HBase |
HMaster | 1. 管理网络对Table的增、删、改、查操作 2. 管理HRegionServer负载均衡 |
HRegionServer | 1. 管理一系列HRegion 2. Region读写的场所 |
角色 | 内容描述 |
---|---|
HRegion | 1. 对应Table的Region 2. HStore和HLog |
HStore | 1. 对应了Table中的一个Column Family的存储 2. MemStore 3. StoreFile(HFile) |
StoreFile | 1. Compact 2. Split |
Table & Column Family
Table & Region
.META.
:记录用户表的Region信息,可以有多个regoin-ROOT-
:记录.META.表的Region信息,只有一个regionZookeeper
:记录了-ROOT-表的locationhadoop jar ~/hbase-0.92.1/hbase-0.92.1.jar importtsv \
-Dimporttsv.separator= "," # 指定输入文件的分隔符为;\
-Dimporttsv.bulk.output=/output # 输出hfile到/output
-Dimporttsv.columns=HBASE ROW KEY,cf1:USER NAME
#源文件的第一列为rowkey ,第二列为cf1:USER NAME\
users /bulkload/users.txt #导 入hbase的users表中,输 入文件在/bulkload\
hadoop jar ~/hbase-0.92. 1/hbase-0.92.1.jar completebulkload/output users
Hive相当于一套Hadoop的访问接口,运维如下几个问题需要注意
Apache Pig架构
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。