hive如何提交hql语句到hive上执行

hive的安装部署,网上有很多教程,我在这边就不再重复了,这次我要讲的是hive如何提交hql语句到hive上执行。

一共有以下几种方式:

第一、 hiveserver

通过搭建hiveserver来提供thrift接口,接收来自远程提交的hql语句执行。

这样做的好处是不需要hive客户端,简化部署方式,但是对于数据分析工程需要一定的研发能力来实现thrift协议,不过可以设计一个公用的组件来简化数据分析师的工作量。弥补数据分析师不熟悉开发的欠缺。

第二、hive client

hive client的部署方式,需要安装部署hive和hadoop作为客户端。数据分析师可以采用hive -e 的方式提交hql语句。

hive client的元数据,一般设置为local模式,hive在启动过程中,通过jdbc连接hive的元数据数据库得到元数据。但这样最大的问题是暴露了hive元数据数据库的用户名和密码,而且在mysql服务端,也无法对权限做精细化控制。

hive client的元数据可以通过remote的方式来控制,通过设置hive.metastore.uris 参数,连接远程服务器的remote元数据,那么hive client端不需要提供msyql的用户名和密码,大大提高了安全性。同时msyql服务端可以通过精细化的控制权限。

  部署方式

    选择一台服务器,安装hive,msyql的jdbc驱动,配置mysql的数据库、用户名、密码。执行  bin/hive --service metastore & 启动服务。

  

    hive client 配置hive.metastore.uris 参数(此处可以把数据库的配置信息和jdbc驱动去掉),将hive.metastore.uris 设置成 thrift://$ip:9083

    执行hql  bin/hive -e "select ****"

时间: 2024-08-01 16:01:58

hive如何提交hql语句到hive上执行的相关文章

HQL语句实现新闻上一篇下一篇

要实现新闻的上一篇下一篇功能,关键是HQL语句 上一篇:HQL="from News d where d.id<? order by id desc"; 下一篇:HQL="from News d where d.id>? order by id asc "; daoImpl实现的方法: public News nextPage(News news){ try{ String queryString="from News d where d.id

Hive操作之HQL语句

HQL操作1.Distribute by    distribute by col按照col列把数据分散到不同的reduce    sort    sort by col 按照col列把数据排序    select col,co2 from table_name distribute by col1 sort by col1    asc,col2 desc;    两者结合出现,确保每个reduce的输出都是有序的     应用场景:    * map输出的文件大小不均    * reduce

hive的常用HQL语句

1.过滤条件 where .limit. distinct. between and . null. is not nullselect * from emp where sal > 3000;select * from emp limit 1; select distinct deptno from emp; select * from emp where sal between 2000 and 3000;select ename from emp where comm is null;se

同事总结的hivesql优化Hive是将符合SQL语法的字符串解析生成可以在Hadoop上执行的M

同事总结的hive sql 优化 Hive是将符合SQL语法的字符串解析生成可以在Hadoop上执行的MapReduce的工具. 使用Hive尽量按照分布式计算的一些特点来设计sql,和传统关系型数据库有区别, 所以需要去掉原有关系型数据库下开发的一些固有思维. 基本原则: 1:尽量尽早地过滤数据,减少每个阶段的数据量,对于分区表要加分区,同时只选择需要使用到的字段 select ... from A join B on A.key = B.key where A.userid>10 and B

大数据技术之_08_Hive学习_01_Hive入门+Hive安装、配置和使用+Hive数据类型

第1章 Hive入门1.1 什么是Hive1.2 Hive的优缺点1.2.1 优点1.2.2 缺点1.3 Hive架构原理1.4 Hive和数据库比较1.4.1 查询语言1.4.2 数据存储位置1.4.3 数据更新1.4.4 索引1.4.5 执行1.4.6 执行延迟1.4.7 可扩展性1.4.8 数据规模第2章 Hive安装.配置和使用2.1 Hive安装地址2.2 Hive安装部署2.3 将本地文件导入Hive案例2.4 MySql安装2.4.1 安装包准备2.4.2 安装MySql服务器2.

hibernate之HQL语句

1. 什么是hql HQL是Hibernate Query Language的缩写 2. hql和sql区别/异同 HQL                                          SQL 类名/属性                                     表名/列名 区分大小写,关键字不区分大小写                   不区分大小 别名                                                别名 ?,

HQL语句大全

Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态 和关联之类的概念. 第 15 章 HQL: Hibernate查询语言Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL.但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承.多态 和关联之类的概念. 15.1. 大小写敏感性问题除了Java类与属

HQL语句中数据类型转换

我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基础上开发新系统),竟然将序号字段的类型设成了varchar2,真是让人郁闷,这样的话,如果排序的话,就是对字符串排序,12是比2小的数,那么就需要转换一下类型. 以下写法调整中是错误的,不能执行,报空指针错误:select cast(t.a as Integer) from table_1 t 我也使用了这段代码,同样报空指针异常

HQL语句查询

/** *  */package com.b510.example; import java.util.Iterator;import java.util.List;import java.util.Map; import org.hibernate.Criteria;import org.hibernate.FetchMode;import org.hibernate.Query;import org.hibernate.Session; /** *  * @author XHW *  * @