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"
);

为了设计款能够有效聚合校园生活信息的APP,首先需要从用户的需求出发,详细分析目标用户群体的特点和需求,即XXXX生的日常生活和学习需求。在此基础上,定义APP的核心功能和服务范围,包括但不限于选课指南、考试资源、兼职信息、生活充值等服务。 参考资源链接:[校园生活APP:服务XXXX生的创新创业计划](https://wenku.csdn.net/doc/7ji9n8gsq2?spm=1055.2569.3001.10343) 接下来,进行市场调研,了解同类APP的现状、优缺点以及目标用户对此类APP的使用体验反馈。这步骤将帮助我们确定产品的差异化特征,并据此制定出创新点和改进方向。 根据调研结果,设计APP的架构和用户界面。架构设计要考虑到数据的高效采集、存储、处理和展示,以及第三方平台的接口对接。用户界面设计则需要注重用户体验,确保操作简便、界面友好。 确定技术路线后,开始APP的开发工作。开发过程中,选择合适的开发工具和框架,如React Native或Flutter等跨平台开发框架,可以快速构建iOS和安卓双端应用。对于数据聚合,可以利用爬虫技术定时从校园网站、合作伙伴网站等来源抓取信息,并存储于服务器。开发中还应考虑到数据的安全性和隐私保护措施。 对于信息的更新及时性与准确性,可以设立后台管理系统,由专业团队负责日常的信息维护和更新,同时设置用户反馈机制,鼓励用户上报错误信息或提出建议。利用机器学习等技术优化信息分类和匹配准确性。 测试阶段,进行全面的系统测试、性能测试和用户测试,确保APP的稳定性和易用性。在APP上线后,进行持续的监控和迭代更新,根据用户反馈不断优化功能和提升服务质量。 总结来说,开发款校园生活APP需要深入理解用户需求,合理规划产品功能,采用合适的开发技术和架构,并且注重后期的运营和维护。为了深入了解如何将这些步骤具体实现,建议参考《校园生活APP:服务XXXX生的创新创业计划》。这份文档不仅提供了产品规划的全面视角,还包括市场分析和运营策略,是解决当前问题的有力支持。 参考资源链接:[校园生活APP:服务XXXX生的创新创业计划](https://wenku.csdn.net/doc/7ji9n8gsq2?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值