前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EMR(弹性MapReduce)入门之数据仓库工具Hive组件使用(十一)

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

原创
作者头像
小司机带你入门EMR
修改2020-02-13 18:26:36
1.8K0
修改2020-02-13 18:26:36
举报
文章被收录于专栏:EMR冲鸭

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日志配置一致,怀疑有定期删除的脚本,需要确认。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hive产生背景
  • Hive是什么
  • Hive架构
    • 基本组成
    • Hive工作原理
    • Hive常见故障
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档