专栏首页EMR冲鸭EMR(弹性MapReduce)入门之数据仓库工具Hive组件使用(十一)
原创

EMR(弹性MapReduce)入门之数据仓库工具Hive组件使用(十一)

Hive产生背景

Apache Hive数据仓库软件可以使用SQL方便地阅读、编写和管理分布在分布式存储中的大型数据集。结构可以投射到已经存储的数据上。提供了一个命令行工具和JDBC驱动程序来将用户连接到Hive。

由Facebook开源,最初用于解决海量结构化的日志数据统计问题

MapReduce编程的不便性

HDFS上的文件缺少Schema(字段名,字段类型等)

Hive是什么

1、构建在Hadoop之上的数据仓库

2、Hive定义了一种类SQL查询语言:HQL(类似SQL但不完全相同)

3、通常用于进行离线数据处理(采用MapReduce)

4、底层支持多种不同的执行引擎(Hive on MapReduce、Hive on Tez、Hive on Spark)

5、支持多种不同的压缩格式、存储格式以及自定义函数(压缩:GZIP、LZO、Snappy、BZIP2.. ; 存储:TextFile、SequenceFile、RCFile、ORC、Parquet ; UDF:自定义函数)

Apache HiveApache Hive数据仓库软件为分布式存储的大数据集上的读、写、管理提供很大方便,同时还可以用SQL语法在大数据集上查询。

1、是一种易于对数据实现提取、转换、加载的工具(ETL)的工具。可以理解为数据清洗分析展现。2、它有一种将大量格式化数据强加上结构的机制。3、它可以分析处理直接存储在hdfs中的数据或者是别的数据存储系统中的数据,如hbase。4、查询的执行经由mapreduce完成。5、hive可以使用存储过程6、通过Apache YARN和Apache Slider实现亚秒级的查询检索。

Hive架构

基本组成

1、 用户接口

CLI,Shell 终端命令行(Command Line Interface),采用交互形式使用 Hive 命令行与 Hive进行交互,最常用(学习,调试,生产)JDBC/ODBC,是 Hive 的基于 JDBC 操作提供的客户端,用户(开发员,运维人员)通过这连接至 Hive server 服务Web UI,通过浏览器访问 Hive

2、Thrift Serve

Thrift 是 Facebook 开发的一个软件框架,可以用来进行可扩展且跨语言的服务的开发,Hive 集成了该服务,能让不同的编程语言调用 Hive 的接口

3 、 元数据存储

元数据,通俗的讲,就是存储在 Hive 中的数据的描述信息。Hive 中的元数据通常包括:表的名字,表的列和分区及其属性,表的属性(内部表和外部表),表的数据所在目录Metastore 默认存在自带的 Derby 数据库中。缺点就是不适合多用户操作,并且数据存储目录不固定。数据库跟着 Hive 走,极度不方便管理。

解决方案:通常存我们自己创建的 MySQL 库( 本地 或  远程)Hive 和 MySQL 之间通过 MetaStore 服务交互。

4 、Driver : 编译器 (Compiler) ) ,优化器 (Optimizer) ) ,执行器 (Executor )

Driver 组件完成 HQL 查询语句从词法分析,语法分析,编译,优化,以及生成逻辑执行

计划的生成。生成的逻辑执行计划存储在 HDFS 中,并随后由 MapReduce 调用执行

Hive 的核心是驱动引擎, 驱动引擎由四部分组成:

(1) 解释器:解释器的作用是将 HiveSQL 语句转换为抽象语法树(AST)

(2) 编译器:编译器是将语法树编译为逻辑执行计划

(3) 优化器:优化器是对逻辑执行计划进行优化

(4) 执行器:执行器是调用底层的运行框架执行逻辑执行计划

Hive工作原理

接收到一个sql,后面做的事情包括:

1.词法分析/语法分析:使用antlr将SQL语句解析成抽象语法树-AST

2.语义分析:从Megastore获取模式信息,验证SQL语句中队表名,列名,以及数据类型的检查和隐式转换,以及Hive提供的函数和用户自定义的函数(UDF/UAF)

3.逻辑计划生产:生成逻辑计划-算子树

4.逻辑计划优化:对算子树进行优化,包括列剪枝,分区剪枝,谓词下推等

5.物理计划生成:将逻辑计划生产包含由MapReduce任务组成的DAG的物理计划

6.物理计划执行:将DAG发送到Hadoop集群进行执行

7.将查询结果返回

Hive常见故障

1、所有Hive无法登陆,显示404

排查步骤:看各个节点组件是否异常;很多集群出现404,发现报错都是指向访问其中一个数据库;该数据库为元数据库,被退回了,恢复找回后恢复正常。

2、Hive任务运行时报异常解决思路

解决方法:首先确认是否使用Hadoop用户提交任务,确认该任务已经提交到yarn集群。

3、hdfs界面已授权,但是hive无权限

解决方法:主节点创建对应用户和用户组

4、hive目录/data/emr/hive/tmp里面的文件有的创建不了

原因分析:通过hive命令启动hive cli,而因为所在节点/data/emr/hive/tmp(或/tmp目录)目录一直未清理,创建目录数量(Inode数量)到上限,所以创建目录失败了。

解决方法:建议客户定期的删除/data/emr/hive/tmp(或/tmp目录)目录下的文件,比如修改时间为1天以前的目录。

5、Hive日志被删除。两台机器的配置一样,一台机器日志可以保留一天,另外一台机器日志只能保留一个小时。

解决思路:log4j2日志配置一致,怀疑有定期删除的脚本,需要确认。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • EMR(弹性MapReduce)入门之EMR集群的基础排障(五)

    前面四节已经向大家介绍完,EMR集群的概括和搭建以及集群内的一些操作,在实际的生产过程中,又会出现各式各样的故障。接着就为大家介绍一些常见的故障已经解决方法。

    小司机带你入门EMR
  • EMR(弹性MapReduce)入门之组件Hue(十三)

    Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Had...

    小司机带你入门EMR
  • EMR(弹性MapReduce)入门之资源管理器YARN及其故障排除(七)

    整个EMR的集群调度工具是YARN,那我们就继续学习下去吧。首先了解yarn的功能。

    小司机带你入门EMR
  • Hive基本概念

    天策
  • 「大数据系列」:Apache Hive 分布式数据仓库项目介绍

    Apache Hive™数据仓库软件有助于读取,编写和管理驻留在分布式存储中的大型数据集并使用SQL语法进行查询

    首席架构师智库
  • Hive基础(1)

    Hive基础(1) Hive的HQL(2) 1. Hive并不是分布式的,它独立于机器之外,类似于Hadoop的客户端。 2. 元数据和数据的区别,前者如表名、...

    王小雷
  • 值得拥有 不容错过的Hive精华汇总

    Hive作为Hadoop家族的重要一员,具有学习成本低,开发者可通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用。在攒...

    Albert陈凯
  • 大数据之脚踏实地学09--Hive嵌入式安装

    经过前面几期内容的介绍,相信大家已经把Hadoop的环境搭建好了吧。正如前几期所说,Hadoop的搭建实际上最核心的就是HDFS(文件存储系统)、Map-Red...

    1480
  • 一分钟看完 Hive 体系结构

    ①CLI(command line interface):CLI启动的时候会同时启动一个Hive副本;

    Lenis
  • hive学习笔记——Hive表的创建

    初衷:以前看过Hadoop方面的材料,但是一直以来都是与实际应用脱轨,现在有机会接触到真正的Hadoop集群,还是被他的性能所震撼,利用这个机会认真重新学习下...

    zhaozhiyong

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动