Avro
1、数据序列化工具,由于hadoop的创始人Doug Cutting主持开发
2、用于支持大批量数据交换的应用。支持二进制序列化方式,可以
便捷,快速地处理大量数据
3、动态语言友好。Avor提供的机制使动态语言可以方便地处理Avro
4、Thrift接口
ChuKwa
1、架构在HADOOP之上的数据采集分析框架
2、主要进行日志采集和分析
3、通过安装在收集节点的“原始的日志数据
4、代理”采集最数据发给收集器
5、收集器定时将数据写入hadoop集群
6、指定定时启动的Map-Reduce作业对数据进行加工处理和分析
7、hadoop基础管理中心(HlCC)最终展示数据
HDFS架构
1、构成HDFS集群的主要两类节点,并以主从模式,或者说是管理者-工作者的模式运行,即NameNode(管理者)和多个
DataNode(工作者)
还有一种节点叫secondaryNameNode镜像数据备份。NameNode、DataNode和secondaryNameNode其实是各自节点上运行的
守护进程
所以Namedoe既是守护进程,也可以指运行NameNdoe守护进程的节点。
守护进程
1、NameNdoe
作用:(集群中的数目1个)存储文件系统的元数据,存储文件与数据块映射,并提供文件系统的全景图
NameNode也称名字节点,它相当于HDFS大脑,它维护着整个文件系统的目录树,以及目录树里所有的文件和目录,这些信
息以两种
文件存储在本地存储在本地文件中:一种是命名空间镜像(File System Image,FSImage,也称文件系统镜像)即HDFS元数
据的快照,每次
NameNode启动的时候,默认会加载最新的命名空间镜像,另一种命名空间镜像的编辑日志。
NameNode上的FSImage和Edit Log文件是HDFS的核心数据结构,如果这些文件损坏,HDFS将失效,所以NameNode由secodray
NameNode定期备份
FSImage和Edit Log文件
2、secondaryNameNode
作用:(集群中的数目1个)备份NameNode数据,并负责镜像与NameNode日志数据的合并
secondaryNameNode也称为第二个名字节点。用于定期合并命名空间镜像和命名空间镜像的编辑日志的辅助守护进程。每
个HDFS集群都有
一个secondaryNameNode,在生产环境下,一般SecondaryNameNode也会单独运行在一台服务器上
3、DataNode(集群中的数目:多个(至少一个))存储块数据
DataNode被称为数据节点,它在NnmeNode的指导下完成I/O任务,而存放在HDFS的文件都是由HDFS的块组成,所有的块都
存放于DataNode的节点
1、Google Bigtable的开源实现
2、列式数据库
3、可集群化
4、可以使用shell、web、api等多种方式访问
5、适合高读写(inrert)的场景
6、HQL查询语言
7、NoSQL的典型代表产品
Hbase简介
hbase是一个分布式的、面向列的开源数据库,该技术来源于changetal 所撰写的,Google论文“BIGTABLE:一个结构化数
据的分布式存储系统。
2、就像Bigtable利用了Google文件系统所提供的分布式数据存储一样。HBase在hadoop之上提供了类似于Bitable能力
3、HBase是Apache的hadoop项目的子项目。
4、HBase不同于一般的关系数据库,它是一个适合非结构化数据存储的数据库,另一个不同的是HBase基于列的而不是基于
行的模式
Hbase逻辑模型
1、以表的形式存放数据
2、表由行与列组成,每列属于某个列族,由行和列确定的存储单元称为元素
3、每个元素保存了同一份数据的多个版本,由于时间戳来标识区分
行键
1、行键是数据行在表里的唯一标识,并作为检索记录的主键
2、访问表里的行只有三种方式
3、给定行键的范围访问
4、全表扫描
行键可以是最大长度不超过64k的任意字符串,并按照字典存储
对于经常要 一起读取的行,要对行键值精心设计,以便他们能放在一起存储
列族与列
1、列表示为<列族>:<限定符>
2、Hbase在磁盘上按照列族存储数据,这种列式数据库设计非读写方式常适合于数据分析的情形
3、列族里的元素最好的具有相同的(例如 等长的字符串),以提高性能
时间戳
1、对应每次数据操作的时间,可由系统自动生成,也可以由用户显示的赋值
2、Hbase支持两种数据版本回收方式:1每个数据单元,只存储定个数的最新版
2保存指定时间长度的版本(例如7天)
3、常见的客户端时间查询:“某个时刻起的最新数据”或“给我全部版本的数据
4、元素由行键,列族:限定符,时间戳 唯一决定
5、元素以字节码形式存放,没有类型之分
Region和Region服务器
1、表在行方向上,按照行键范围划分成若干的region
2、每个表最初只有一个region,当记录数增加到超过某个阀值时,开始分裂成两个
region
3、物理上所有数据存放在HDFS,由Region服务器 提供region的管理
4、一台物理节点只能跑一个HRegionServer
5、一个Hregionserver可以管理 多个Region
6、一个Region实例包括HIog日志和存放数据的store
7、Hmaster作为总控节点
8、zookeeper负责调度
-ROOT-和.META.表
1、Hbase有两张特殊的Table,-ROOT-和.META.
2、.META.:记录了用户表的Region信息,.META可以有多个region
3、-ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
4、zookeeper中记录了-ROOT-表的location
他们三者之间的关系是这样的:zookeeper---ROOT---META------user Table
即通过zookeeper找到-ROOT-再通过-ROOT-找到-META 接下来就通过.META.找到数据的地方位置
Memstore与storefile
1、一个region由多个store组成,每个store包含一个列族的所有数据
2、store包括位于把内存的memstore和位于硬盘的storefile
3、写操作先写入memstore,当memstore中的数据量达到某个阀值。Hregionserver会启动
flashcahe进程写入storefil,每次写入形成单独一个storefile
4、当storefil文件的数量增长到一定阀值后,系统会进行合并,在合并过程中会进行版本
合并和删除工作,形成更大的storefil
5、当storefile大小超过一定的阀值后,会把当前的region分割为两个,并由Hmaster分配
到相应的region服务器,实现负载均衡
6、客户端检索数据时,先在memstore找,找不到再找storefile
Hbase vs Oracle
1、索引不同造成行为的差异
2、Hbase适合大量插入同时又有读的情况
3、Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间
4、Hbase很适合寻找按照时间排序topn的场景
Hive
1、数据仓库工具。可以把hadoop下的原始结构化数据变成Hive中的表
2、支持一种与SQL 几乎完成相信的语言HiveQL。除了不支持更新、索引和
事务,几乎SQL的其他特征都能支持
3、可以看成是从SQL到Map-Reduce的映射器,其优点是学习成本低,对于常见的数据分析需求不必
开发专门的MapReduce作业,非常适合大规模数据统计分析
4、提供shell、JDBC/ODBC、Thrift、web等接口
MapReduce
构成MapReduce的两类节点即jobTracker和TaskTracker,它们是MapReduce的守护进程,它们运行在各自节点。客户端负责
用户作业的
提交。
jobTracker的作用主要负责接受客户端作业的提交,调度任务到TaskTracke上运行,并提交监控TaskTracker及进度等管理
功能
TasTracker(集群中的数目(至少一个))实例化用户程序,在本地执行任务并周期性地向jobTracker汇报状态
pig
1、是对大型数据集进行分析和评估的工具
2、使用类似于SQL的面向数据流的语言pig Latin,它与SQL接口不同,它提供了一种
高层的、面向领域的抽象语言,相比SQL更灵活,但成本高
3、pig Latin可以完成排序,过滤,求和,聚组,关联操作,可以支持自定义函数
4、pig 自动上传到集群运行,减少用户编写java程序的苦恼
5、三种运行方式:Grunt shell,脚本方式,嵌入式
Sqoop
1、用于在hadoop和关系型数据库之间交换数据
2、通过JDBC接口连入关系型数据库
Zookeeper
0、Zookeeper作为一个分布式的服务框架,基于Fast Paxos算法,解决了分布式系统中一致性问题
ZooKeeper提供了配置维护、名字服务、分布式同步、组服务等。
1、Google Chubby的开源实现
2、用于协调分布式系统的各种服务。例如确认消息是否准确达,防止单点失效,处理
负载均衡等
3、应用场景:Hbase,实现Namenide自动切换
4、工作原理:领导者,跟随者以及选举过程
同步节点状态
HBase的master server与server之的通信
同步HBase各表中region的状态
转载于:https://blog.51cto.com/11019607/1763584