• 欢迎关注微信公众号:九万里大数据
  • 请使用Ctrl+D收藏本站到书签栏
  • 手机也可访问本站 jwldata.com

Hive3新特性(二)

大数据技术 九万里大数据 1年前 (2021-02-23) 688次浏览 0个评论 扫描二维码
文章目录[隐藏]

执行引擎

Hive3新特性(二)
在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来调度查询。
Hive3新特性(二)

这张图,显示了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");

欢迎关注我的公众号“九万里大数据”,原创技术文章第一时间推送。


Hive3新特性(二)


本站文章,如未注明,均为原创 | 原创文章版权归九万里大数据所有,未经许可不得转载。
本文链接:Hive3新特性(二)
喜欢 (9)

您必须 登录 才能发表评论!