hive(1)

Apache Hive数据仓库软件方便了使用SQL读取、写入和管理驻留在分布式存储中的大型数据集。结构可以投影到已经存储的数据上。提供命令行工具和JDBC驱动程序将用户连接到Hive。
Hive产生的原因:非java编程者通过SQL语句对hdfs的数据做mapreduce操作。

对比项 Hive 关系型数据库
查询语音 HQL SQL
数据存储 HDFS Local FS or RawDevice
执行器 MapReducer Executor
数据insert 支持批量导入和单条插入 支持批量导入和单条插入
数据Update和delete 支持追加,不支持删除 行级别更新和删除
数据规模 大 小
执行延迟 高 低
分区 支持 支持
索引 v0.8后支持 支持
数据加载模式 读时模式(快) 写时模式(慢)
扩展性 高 低
应用场景 海量数据查询 实时查询
1.2 Hive架构

• Hive的架构
– (1)用户接口主要有三个:CLI,JDBC/ODBC和 WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。 WUI是通过浏览器访问Hive。
– (2)Hive将元数据存储在数据库中,如mysql、derby(hive自带的内存数据库)。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
– (3)解释器(SQL Parser)、编译器(Compiler)、优化器(Optimizer)完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有执行器(Executor)调用MapReduce执行。
– (4)Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含*的查询,比如select * from tbl不会生成MapRedcue任务)。

– select id,name from psn;

• Hive的架构
– 编译器将一个Hive SQL转换操作符
– 操作符是Hive的最小的处理单元
– 每个操作符代表HDFS的一个操作或者一道MapReduce作业
• Operator(操作符)
– Operator都是hive定义的一个处理过程
– Operator都定义有:
– protected List <Operator<? extends Serializable >> childOperators;
– protected List <Operator<? extends Serializable >> parentOperators;
– protected boolean done; // 初始化值为false

查询操作 表扫描操作 限制输出 文件输出操作。

ANTLR词法语法分析工具解析hql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值