Hadoop Hive概念学习系列之HiveQL编译基础(十)
由客户端提交的HiveQL语句将最终被转换为一个或多个MapReduce任务并提交由Hadoop执行。不包含聚合和连接的简单SELECT语句可以使用一个单独的只包含Map阶段的任务实现。使用GROUP BY子句的聚合可以使用一个独立的MapReduce任务实现。包含大量多表连接的复杂查询需要依靠多个MapReduce任务的顺序执行来实现。
HiveQL编译器的操作分为好几个阶段。
在第一个阶段中,查询语句被解析并转化成抽象的语法树。随后语法树将被传给语义分析器,在这一过程中,通过使用元数据存储中的信息来判别列名和数据类型。
语义分析器将它们转化并生成一种内部的表达方式,然后传递给逻辑计划生成器,在这里将生成一颗逻辑操作树。在逻辑计划经过数次的传递和优化之后,它将被送往物理计划生成器。经过物理计划生成器和处理之后,将产生一张DAG(有向无环图)用以生成最终的MapReduce任务。
本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6105080.html,如需转载请自行联系原作者
Hadoop Hive概念学习系列之HiveQL编译基础(十)相关推荐
- Hadoop Hive概念学习系列之hive的正则表达式初步(六)
说在前面的话 hive的正则表达式,是非常重要!作为大数据开发人员,用好hive,正则表达式,是必须品! Hive中的正则表达式还是很强大的.数据工作者平时也离不开正则表达式.对此,特意做了个hive ...
- Hadoop Hive概念学习系列之hive里的HiveQL——查询语言(十五)
Hive的操作与传统关系型数据库SQL操作十分类似. Hive主要支持以下几类操作: DDL 1.DDL:数据定义语句,包括CREATE.ALTER.SHOW.DESCRIBE.DROP等. 详细点, ...
- Hadoop Hive概念学习系列之hive的数据压缩(七)
Hive文件存储格式包括以下几类: 1.TEXTFILE 2.SEQUENCEFILE 3.RCFILE 4.ORCFILE 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直 ...
- Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)(十八)...
把MySQL里的数据导入到HDFS 1.使用MySQL工具手工导入 把MySQL的导出数据导入到HDFS的最简单方法就是,使用命令行工具和MySQL语句. 为了导出整个数据表或整个数据库的内容,MyS ...
- Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)
调用文件系统(FS)Shell命令应使用 $HADOOP_HOME/bin/hadoop fs *** 的形式!!! 所有的FS Shell命令使用URI路径作为参数. URI格式是scheme:/ ...
- Hadoop HBase概念学习系列之HRegion服务器(三)
所有的数据库数据一般是保存在Hadoop分布式系统上面的,用户通过一系列HRegion服务器获取这些数据.一台机器上一般只运行一个HRegion服务器,而且每一分区段的HRegion也只会被一个HRe ...
- Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)
其他相关命令还包括以下这些: NameNode -format : 格式化DFS文件系统 secondaryNameNode : 运行DFS的SecndaryNameNode进程 NameNo ...
- Hadoop HDFS概念学习系列之HDFS升级和回滚机制(十二)
不多说,直接上干货! HDFS升级和回滚机制 作为一个大型的分布式系统,Hadoop内部实现了一套升级机制,当在一个集群上升级Hadoop时,像其他的软件升级一样,可能会有新的bug或一些会影响现有应 ...
- Hadoop HDFS概念学习系列之两个和HDFS读写操作最为密切的Hadoop包(二十)
是org.apache.hadoop.fs和org.apache.hadoop.conf. fs包主要是文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口: conf用于读conf包,就 ...
最新文章
- 宏基因组分析技术研讨会第5期-最后3个名额,下周开课
- Acwing第 6 场周赛【未完结】
- RHCS套件实现高可用负载均衡集群(三)——共享存储
- 深度神经网络实践:车牌识别
- 【最简便解法】1066 图像过滤 (15分)
- 条件变量实现线程同步
- Qt工作笔记-使用qrand与QTime产生随机数
- python判断今天周几_Python如何根据日期判断周几
- 微软是如何使用C#重写C#编译器并将其开源的
- 变相裁员?人人车发奇葩通知:未离职员工每天打卡三次 只抄规则
- SourceInsight下面一直出现unable to write to temp file for saving operation 这样的提示
- CloudStack 4.4+KVM之通过ISO文件创建CentOS虚拟机
- access 江苏计算机二级_计算机二级考试都要考些什么?
- 养成女友?我训练出了一个“杨超越”聊天机器人
- Mysql-slowlog
- 关于Arduino下载并添加DHT11库文件的详细教程
- USB转RS232串口线-交叉线or直连线
- ptp精准时间协议_PTP时钟协议原理
- 【奈茶君】STM32F407驱动WS2812
- 【SSL】2022.5.2 1125.集合
热门文章
- STM32应用笔记转载
- C#中5中timer的比较
- Spring for Apache Hadoop 1.0发布
- Flex 传JAVA BEAN 到后台 JAVA
- C#与vb6 com组件的互相调用方法
- log4net简单配置与应用
- [django]Django输出页面方式的补充
- JAVA线程池_并发队列工作笔记0001---认识阻塞队列_非阻塞队列
- Python工作笔记007---win10安装Python3.7.3_以及用pycharm创建Python项目_以及对System interpreter理解
- JAVA学习笔记001---认识了解NIO