Hive3新特性(二)

点击查看Hive3新特性(一)

目录

执行引擎

LLAP负载管理

统一查询接口

JDBC Connector

Kafka Connector


  • 执行引擎

在Hive3中,Tez完全取代了MapReduce,这张图显示了Hive3的查询流程。

  1. Hive编译查询语句

  2. Tez执行查询

  3. YARN分配资源

  4. Hive更新HDFS上的数据

  5. Hive返回查询结果给JDBC连接

  • LLAP负载管理

LLAP(Live Long And Process)功能是在Hive2.0中引入的。LLAP的核心概念是利用常驻进程,来取代之前Hive与HDFS DataNode进行直接交互的方式。轻量查询(低延迟高并发的分析工作负载)会主要由这种常驻进程处理掉,重型查询(耗资源,长时间运行的工作负载)则依然由传统的YARN来调度查询。

这张图,显示了LLAP的执行过程。Tez AM协调整个执行过程,查询的初始状态被推送至LLAP,大型的shuffle会在独立的容器进行。

Hive3增强了在多租户场景下的LLAP负载管理,主要通过resource plan的方式进行实现:

  1. 划分LLAP资源为多个pool,比如bi池和etl池

  2. 自动映射applications到对应的池

  3. 可以设置触发条件,实现自动从一个池到另一个池,比如自动把长时间运行的application移动到etl池

  4. 可以根据需要activate/deactivate这些resource pools

CREATE RESOURCE PLAN my_plan;
CREATE POOL my_plan.bi
WITH  ALLOC_FRACTION=70,QUERY_PARALLELISM=4;
CREATE POOL my_plan.etl
WITH  ALLOC_FRACTION=30,QUERY_PARALLELISM=10;
CREATE TRIGGER my_plan.slow_query
WHEN execution_time_ms > 60000
DO MOVE TO etl;
ALTER PLAN my_plan SET DEFAULT POOL=bi;
ALTER PLAN my_plan ENABLE ACTIVATE;

  • 统一查询接口

JDBC Connector

支持从任何jdbc数据源读取数据

只支持读

支持自动查询下推

CREATE EXTERNAL TABLE student_jdbc
(
  name string,
  age int,
  gpa double
)
STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
TBLPROPERTIES (
   "hive.sql.database.type" = "MYSQL",
   "hive.sql.jdbc.driver" = "com.mysql.jdbc.Driver",
   "hive.sql.jdbc.url" = "jdbc:mysql://localhost/sample",
   "hive.sql.dbcp.username" = "hive",
   "hive.sql.dbcp.password" = "hive",
   "hive.sql.table" = "STUDENT",
   "hive.sql.dbcp.maxActive" = "1"
);

Kafka Connector

可以从Kafka读取实时数据

CREATE EXTERNAL TABLE kafka_table (
      `timestamp`timestamp, 
      `page` string,  
      `newPage` boolean,
      added int,
      deleted bigint, 
      delta double
)
STORED BY 'org.apache.hadoop.hive.kafka.KafkaStorageHandler'
TBLPROPERTIES (
    "kafka.topic" = "test-topic",
    "kafka.bootstrap.servers" = "localhost:9092"
);

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值