- 11
- 0
- 约8.21千字
- 约 61页
- 2016-12-25 发布于重庆
- 举报
Splitblock MapReduce举例 MapReduce故障恢复 Client崩溃? 挂了就挂了,无伤大雅 Task失败? 本机重试 向JobTracker报告错误 在别的TaskTracker中重试 TaskTracker崩溃? 由JobTracker将其任务移交给别的TaskTracker JobTracker崩溃? 哎呀!需要人工干预 正在执行的Job需要重新执行 Hadoop2.0简介 产生背景 Hadoop1.0中HDFS和MapReduce在高可用、扩展性等方面存在问题 HDFS存在的问题 NameNode单点故障,难以应用于在线场景 NameNode压力过大,且内存受限,影响系统扩展性 MapReduce存在的问题 JobTracker访问压力大,影响系统扩展性 难以支持除MapReduce之外的计算框架,比如Spark、Storm Spark内存计算框架 Storm流计算框架 Hadoop1.x和2.x Hadoop2.x由HDFS、MapReduce和YARN三个分支 HDFS:NN Federation、HA MapReduce:运行在YARN上的MR YARN:资源管理系统 HDFS 2.x 解决HDFS1.0中单点故障和内存受限问题 解决单点故障 HDFS HA:通过主备NameNode解决 如果主NameNode发生故障,则切换到被NameNode 解决内存受限问题 HDFS Federation 水平扩展,支持多个NameNode 每个NameNode分管一部分目录 所有NameNode共享所有DataNode存储资源 2.X仅是架构上发生了变化,使用方式不变 对HDFS使用者透明 HDFS 1.x中的命令和API扔可使用 Hadoop HA架构图 HDFS 2.x Federation 通过多个NameNode/namespace把元数据的存储和管理分散到多个节点中,使到NameNode/namespace可以通过增加机器来进行水平扩展 。 能把单个NameNode的负载分散到多个节点中,在HDFS数据规模较大的时候不会降低HDFS的功能。可以通过多个namespace来隔离多个不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的NameNode中。 HDFS Federation HIVE数据仓库 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive是什么 适用场景 Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。 Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。 Hive与数据库对比 HBase列式数据库 HBase简介 HBase—Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩实时读写的分布式数据库 利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务 主要用来存储非结构化和半结构化的松散数据(列存NoSQL数据库) HBase数据模型 Column Family列族 qualifier列 HBase表中的每个列都归属于某个列族,列族必须作为表模式(schema)定义的一部分预先给出。如create ‘test’, ‘course’; 列名以列族作为前缀,每个列族都可以有多个列成员,如course:math, course:english,新的列族成员(列)可以随后按需、动态加入; 权限控制、存储以及调优都是在列族层面进行的; HBase把同一列族里面的数据存储在同一目录下,由几个文件保存。 概念视图
原创力文档

文档评论(0)