hive里的扩展接口

hive里的扩展接口,主要包括CLI(控制命令行接口)、Beeline和JDBC等方式访问Hive。

  CLI和Beeline都是交互式用户接口,并且功能相似,但是语法和实现不同。

  JDBC是一种类似于编程访问关系型数据库的编程接口。

1、CLI

  在UNIX shell环境下输入hive命令可以启用Hive CLI。在CLI下,所有的Hive语句都以分号结束。

在CLI下可以对一些属性做出设置,像是设置底层MapReduce任务中Reducer的实例数。这些信息都详细地记录在在线Hive语言手册中。

下面是一些专门针对Hive,并且对使用Hive CLI非常有帮助的属性:

  hive.cli.print.header:当设置为true时,查询返回结果的同时会打印列名。默认情况下设置为false。因此不会打印。

             想要开启列名打印的功能需要输入以下指令。

             hive > set hive.cli.print.header=true;

  hive.cli.print.current.db:当设置为true时,将打印当前数据库的名字。默认情况下设置为false。

            可以通过输入以下指令修改属性:

            hive > set hive.cli.print.current.db=true;

            hive (default) >

  

2、Beeline

  Beeline可以作为标准命令行接口的替代者。它使用JDBC连接Hive,而且基于开源的SQLLine项目。

Beeline的工作方式和Hive CLI很像,但是使用Beeline需要与Hive建立显示的连接:

  $ beeline

  Beeline version 0.11.0 by Apache Hive

  beeline > !connect jdbc:hive:// nouser nopassword

  本地模式中使用的JDBC的URL是jdbc:hive//。如果是集群中的配置,那么JDBC的URL通常是这样的形式:dbc:hive//<hostname>:<port>。

  <hostname>是Hive服务器的主机名,<port>是预先配置的端口号(默认为10000)。

  这样的情况下,我吗可以使用Beeline执行任何Hive语句,与使用CLI一样。

3、JDBC

  Java客户端可以使用预先提供的JDBC驱动来连接Hive。连接步骤和其他兼容JDBC的数据库一样。首先载入驱动,然后建立连接。

JDBC驱动的类名是org.apache.hadoop.hive.jdbc.HiveDriver。

  本地模式中使用的JDBC的URL是jdbc:hive://。

  如果是集群中的配置,那么JDBC的URL通常是这样的形式:jdbc:hive//<hostname>:<port>。

  <hostname>是Hive服务器的主机名,<port>是预先配置的端口号(默认为10000)。

  给一个例子,展示使用JDBC连接本地模式的Hive,并提交查询请求:

时间: 2024-11-04 15:54:02

hive里的扩展接口的相关文章

0001 - Spring 框架和 Tomcat 容器扩展接口揭秘

前言 在 Spring 框架中,每个应用程序上下文(ApplicationContext)管理着一个 BeanFactory,BeanFactory 主要负责 Bean 定义的保存.Bean 的创建.Bean 之间依赖的自动注入等.应用程序上下文则是对 BeanFactory 和 Bean 的生命周期中的各个环节进行管理,并且提供扩展接口允许用户对 BeanFactory 和 Bean 的各个阶段进行定制,本文从以下三个点进行切入讲解. refresh()是应用上下文刷新阶段. getBean(

hive里的优化和高级功能

在一些特定的业务场景下,使用hive默认的配置对数据进行分析,虽然默认的配置能够实现业务需求,但是分析效率可能会很低. Hive有针对性地对不同的查询进行了优化.在Hive里可以通过修改配置的方式进行优化. 以下,几种方式调优的属性. 1.列裁剪 在通过Hive读取数据的时候,并不是所有的需求都要获取表内的所有的数据.有些只需要读取所有列中的几列,而忽略其他列的的数据. 例如,表Table1包含5个列Column1.Column2.Column3.Column4.Column5.下面的语句只会在

hibernate核心接口,和扩展接口。回顾笔记,以前没记,现在补上,纯手工敲的。

hibernate核心接口: 所有的hibernate应用都会访问hibernate的5个核心接口 1,Configuration接口 Configuration用于配置并且根启动Hibernate.Hibernate应用通过Configuration实例来获取对象-关系映射文件中的元数据,以及动态配置Hibernate的属性,然后创建SessionFactory实例. 2,SessionFactory接口 一个SessionFactory实例对应一个数据存储源,应用从SessionFactor

hive里的分区

为了对表进行合理的管理以及提高查询效率,Hive可以将表组织成"分区". 分区是一种根据"分区列"(partition column)的值对表进行粗略划分的机制.Hive中的每个分区对应数据库中相应分区列的一个索引,每个分区对应着表下的一个目录,在HDFS上的表现形式与表在HDFS上的表现形式相同,都是以子目录的形式存在. 一个表可以在多个维度上进行分区,并且分区可以嵌套使用.建分区需要在创建表时通过PARTITIONED BY子句指定,例如: CREATE TAB

POJ 1061 青蛙的约会(欧几里得扩展)

题意:已知青蛙1位置x,速度m,青蛙2位置y,速度n,纬线长度为l,求他们相遇时最少跳跃次数. 思路:设最小跳跃次数为k,则(x + k*m) - (y + k*n) = q*l:经过整理得到k*(n-m) + q*l = y - x:此时k和l为变量.欧几里得扩展中有线性方程a*x+b*y = c,当且仅当c是gdc(a,b)的整数倍的时候,所以这个题我们可以使用这个算法求得一个x0(x0已经被乘以了倍数),故x0为满足题意的一个解,X的解系为x0 + k[b/gcd(a,b)](具体证明不在

java通过继承来扩展接口

接口主要是为了向上转型,从而使基类(接口方法)更具灵活性!不想废话,看例子: /** * */ package interfaces; interface Monster{ void menace(); } interface DangerousMonster extends Monster{ void destory(); } interface Lethal{ void kill(); } class DragonZilla implements DangerousMonster{ publ

Spring8:一些常用的Spring Bean扩展接口

前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格遵循了OCP----开闭原则,即: 1.保证对修改关闭,即外部无法修改Spring整个运作的流程 2.提供对扩展开放,即可以通过继承.实现Spring提供的众多抽象类与接口来改变类加载的行为 开卷有益,阅读Spring源码(无需每个类都看得很细,大体流程能梳理出来即可)对于个人水平的提升是帮助非常大

从头认识java-7.5 怎样通过继承扩展接口?

我们这一章节来讨论一下怎样通过继承扩展接口. 接口跟类一样,具有继承的特性,但是他只是继承接口,不继承类. package com.ray.ch07; interface WhatPersonCanDo { void run(); void sleep(); } interface WhatSingerCanDo extends WhatPersonCanDo { void sing(); } class Singer implements WhatSingerCanDo { @Override

欧几里得扩展定理

//poj   1061 思路:两只青蛙跳一次所花费的时间相同,我们设其为t,则x+mt是青蛙A从坐标原点到终点所走的距离,y+nt是B走的距离,要想碰面,则他们相减一定是地面周长的整数倍,设为k*L:则:(x+mt)-(y+nt)=kl;变形得:(m-n)t-(y-x)=kL;即有(m-n)t mod L=y-x;为线性同余方程.此方程有解当且仅当y-x能被m-n和L的最大公约数(记为gcd(m-n,L)),即gcd(m-n,L)|y-x.这时,如果x0是方程的一个解,即当t=x0时,(m-n