简介
本文以Hadoop实战为主,另外参考hadoop权威指南,hadoop技术内幕还有网上的资料给出的一个hadoop生态圈的一个简介,
主要以要点为主。
Hadoop历史
hadoop的历史blablabla….
主要记下hadoop不同版本的特性。
特性 | 1.x | 0.22 | 2.x |
---|---|---|---|
安全认证 | 是 | 否 | 是 |
旧的配置名称 | 是 | 弃用 | 弃用 |
新的配置名称 | 否 | 是 | 是 |
旧的MapReduce API | 是 | 是 | 是 |
新的MapReduce API | 是(加入部分缺失类库) | 是 | 是 |
MR1运行环境(经典) | 是 | 是 | 否 |
MR2 运行环境(YARN) | 否 | 否 | 是 |
HDFS联邦管理 | 否 | 否 | 是 |
HDFS高可用 | 否 | 否 | 是 |
Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop2.0。第一代Hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则NameNode HA等新的重大特性。第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性。
Hadoop项目及其结构
- Common 主要包括你FileSystem,RPC和串行化库。
- Avro Avro是用户数据序列化的系统.提供了丰富的数据结构类型,快速可压缩的二进制数据格式,存储持久性数据的文件集,远程调用RPC的功能和简单的动态语言集成功能。
- MapReduce: 用于大规模数据集(大于1TB)
- HDFS: 分布式文件系统,
- Hive : 数据仓库
- HBase : 按列存储的数据库,使用HDFS作为底层存储
- ZooKeeper : 分布式协调任务
Hadoop与分布式开发
- 数据分布存储
- 分布式并行计算
- 本地计算
- 任务粒度
- 数据分割
- 数据合并
- Reduce
- 任务管道
Hadoop计算模型-MapReuduce
Hadoop 数据管理
HBase的数据管理
Hive的数据管理
含*的查询不会生成MR任务
每个table在hive中都有一个相应的目录来存储数据。
比如一个表pvs: /wh/pvs/,其中wh是hive-site.xml中指定的数据仓库的目录。
Hive将元数据存储在RDBMS中,如Mysql中,hive中的元数据包括表的名字,表的列,表的分区,表分区的属性,表的属性,表的数据所在的目录等。