大数据之运维资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hive设计特征
• Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveQL 语言 实现数据查询,所有Hive 的数据都存储在Hadoop 兼容的文件系统(例如, Amazon S3、HDFS)中。Hive 在加载数据过程中不会对数据进行任何的修改,只 是将数据移动到HDFS 中Hive 设定的目录下,因此,Hive 不支持对数据的改写和 添加,所有的数据都是在加载的时候确定的。Hive 的设计特点如下。
• Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用
来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL, 它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发 者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完 成的复杂的分析工作。
● 支持索引,加快数据查询。 ● 不同的存储类型,例如,纯文本文件、HBase 中的文件。 ● 将元数据保存在关系数据库中,大大减少了在查询过程中执行语义检查的时间。 ● 可以直接使用存储在Hadoop 文件系统中的数据。 ● 内置大量用户函数UDF 来操作时间、字符串和其他的数据挖掘工具,支持用户扩展UDF 函 数来完成内置函数无法实现的操作。 ● 类SQL 的查询方式,将SQL 查询转换为MapReduce 的job 在Hadoop集群上执行。
解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化 以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调 用执行。
• Hadoop
Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询, 比如 select * from tbl 不会生成 MapReduce 任务)。
大数据运维
郭现伟
大数据知识图谱
大数据运维知识图谱
Hadoop简介
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量 的数据提供了存储,而MapReduce则为海量的数据提供了计算
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop 上开发和运行处理海量数据的应用程序。它主要有以下几个优点: 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以 方便地扩展到数以千计的节点中。 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处 理速度非常快。 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。 低成本。
Buckets 对指定列计算 hash,根据 hash 值切分数据,目的是为了并行,每一个 Bucket 对应一 个文件,例如user 列分散至 32 个 bucket,首先对 user 列的值计算 hash,对应 hash 值为 0 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00000;hash 值为 20 的 HDFS 目录为: /wh/pvs/ds=20090801/ctry=US/part-00020
Hive数据模型
• 内部表(Table) Hive中的表和关系型数据库中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表 的数据,存储位置通过hive-site.xml ${hive.metastore.warehouse.dir} 配置指定 • 外部表(External Table) Hive中的外部表和表很类似,但是其数据不是放在自己表所属的目录中,而是存放到别处,这样的 好处是如果你要删除这个外部表,该外部表所指向的数据是不会被删除的,它只会删除外部表对应 的元数据;而如果你要删除内部表,该表对应的所有数据包括元数据都会被删除。 • 分区(Partition)
Hive 体系结构
• 用户接口 用户接口主要有三个:CLI,Client 和 WUI。
• 元数据存储
Hive 将元数据存储在数据库中,如 mysql、derby。Hive 中的元数据包括表的名字, 表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
• 解释器、编译器、优化器、执行器
询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的 HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上, Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务 处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳 使用场合是大数据集的批处理作业,例如,网络日志分析。
Map Reduce分布式计算框架
分布式计算框架将复杂的数据集分发给不同的节点去操作,每个节点会周期性的返回它所完成的工作和最新的状态
Hadoop分布式计算流程
Hive简介
• Hive 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张
数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行 运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统 计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
wk.baidu.com
Hive使用场景
• Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且
在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上 实现低延迟快速的查询,例如,Hive 在几百MB 的数据集上执行查询一般有分钟级 的时间延迟。
• Hive 并不适合那些需要低延迟的应用,例如,联机事务处理(OLTP)。Hive 查
在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中。比 如wyp表有dt和city两个分区,则对应dt=20131218,city=BJ对应表的目录为 /user/hive/warehouse/dt=20131218/city=BJ,所有属于这个分区的数据都存放在这个目录中。 • 桶(Bucket)
谢谢