Hive和Impala作为数据查询工具,它们是怎样来查询数据的呢?与Impala和Hive进行交互,我们有哪些工具可以使用呢?

我们首先明确Hive和Impala分别提供了对应查询的接口:

(1)命令行shell:

1、 Impala:impala shell

2、 Hive:beeline(早期hive的命令行版本是hive shell,现在基本不使用)

(2)Hue Web UI:

1.Hue里面提供了 Hive查询编辑器

2.Hue里面提供了Impala查询编辑器

3.Hue里面提供了元数据管理器,可以直接对元数据进行访问。

(3)提供了JDBC和ODBC支持

下面进行具体介绍:

一、Impala

(1)使用Impala shell

Impala shell是类似于MySQL的交互式工具,可以直接在终端启动Impala shell,但是Impala shell在哪里启动很有讲究。Impala本身是分布式的架构,它的Impalad是在每个slave节点中的。那么Impala按照如下这种情况直接执行的话肯定是在slave节点中运行的。

如果不是在slave节点中运行的话,可以指定它的server,像如下这种方式,通过—i的参数,指定21000端口执行。

Impala shell和所有的SQL一样,输入分号作为语句的结束,使用quit命令退出shell。如果需要查看帮助的话使用impala-shell --help查看完整的选项列表。因为任何的工具它的参数都是很多的,一定要习惯和学会使用帮助去找到自己想要的一些参数,然后去解决一些复杂数据的分析和处理。

在Impala shell里面执行查询的示例:

(2)Impala与操作系统进行交互

在Impala里面,我们有时候需要去执行一些Linux的命令,比如查询日期,远程连接,访问目录数据等,我们不需要退出Impala shell,直接操作就可以,比如:

但是Impala不直接支持HDFS命令,但是可以使用shell运行hdfs dfs命令去创建一个目录,如下:

(3)从命令行运行Impala查询,可以不用登陆Impala shell就可以执行,如:

1、         使用-f选项来执行包含查询的文件

2、         使用-q选项直接在命令行运行查询

3、         使用-o来将结果输出到文件

 

二、Hive

(1)启动beeline

Hive shell是Hive早期版本,现在使用Beeline shell,跟Impala shell相似,但是它是基于JDBC和ODBC,如果需要使用Beeline的话,需要去启动Hive2,通过为Hive2服务器指定URL来启动Beeline,这个时候还需要根据需要指定用户名和密码,如下:

(2)在Beeline执行查询

和SQL一样以分号结束,执行查询和Impala shell类似,但结果格式有少许不同,如:

(3)使用Beeline

和其他工具有一些不同,执行查询都是正常的SQL输入,但是如果是一些管理的命令,比如进行连接,中断,退出,执行Beeline命令需要带上“!”,不需要终止符。常用命令介绍:

1、!connect url –连接不同的Hive2服务器

2、!exit –退出shell

3、!help –显示全部命令列表

4、!verbose –显示查询追加的明细

示例:

(4)从命令行执行Hive查询

1、使用-f选项来执行包含HiveQL代码的文件

2、使用-e选项直接在命令行运行HiveQL

3、使用--silent来阻止通知的消息输出,也可以和-e或-f选项一起使用

三、Hue

(1)通过Hue访问Hive和Impala,它们各自都有editors,在Hue的query editors里面我们可以找到Hive和Impala的一些工具,

如下:

以及元数据库我们可以在Data Browsers里面可以看到它的一些工具,如:

(2)Hue查询编辑器,查询Impala和Hive查询编辑器几乎相同,具体操作示意:

与Impala和Hive进行交互,以上就是我们可以利用和使用的工具,但是在实际的操作中我们还需要加强自己的实战能力才能更好的去掌握和理解。大数据作为当下还在不断完善发展的技术,需要每一位想要从事和已经从事它的人员不断去学习和积累,更需要去交流和分享,共同进步。“大数据cn”、“大数据时代学习中心”是我平时自己在自主学习过程中找到微信服务号,里面介绍的关于大数据的知识以及大数据发展的一些行业知识都很不错,平常大家可以看看。

本文出自 “11872756” 博客,请务必保留此出处http://11882756.blog.51cto.com/11872756/1887331

学习Hive和Impala必看经典解析的更多相关文章

  1. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

    学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...

  2. 【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2

    原文网址:http://bbs.51cto.com/thread-1099956-1.html 亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做 ...

  3. Java编程学习知识点分享 入门必看

    Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...

  4. python必看经典书籍:笨办法学python

    书评: 感谢作者和译者,很好的手把手的一个新手编程体验书,消除编程物质恐惧感,在线看的liam huang翻译的版,不确定看的是第几版,有一些加分题没有做,第五十题黑手党外星人飞船做起来有点压力,准备 ...

  5. java初学者必看经典

    配置java环境变量: JAVA_HOME:配置JDK的目录 CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码) PATH:指定可执行程序的位置 LINUX系统(在" .ba ...

  6. (纯干货)最新WEB前端学习路线汇总初学者必看

    Web前端好学吗?这是很多web学习者常问的问题,想要学习一门自己从未接触过的领域,事先有些了解并知道要学的内容,对接下来的学习会有事半功倍的效果.在当下来说web前端开发工程师可谓是高福利.高薪水的 ...

  7. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

    C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...

  8. 1.16 Linux该如何学习(新手入门必看)

    本节旨在介绍对于初学者如何学习 Linux 的建议.如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法. 如何去学习 学习大多类似庖丁解牛,对事物的认识一般都是由 ...

  9. iOS面试必看经典试题分析

    > **不用临时变量怎么实现两个数据的交换?** 方式一:加减法的运算方式求解new_b = a - b + b = a;new_a = a + b - a = b;一个简单的运算方式,最重要的 ...

随机推荐

  1. 20180113Go匿名函数和闭包

    最近codereview看到闭包,得学习下 https://studygolang.com/articles/5057 匿名函数:没有函数名的函数 闭包:外部函数定义的内部函数. 闭包给访问外部函数定 ...

  2. TFTP 与 FTP的区别

    FTP(File Transfer Protocol,文件传输协议)协议在TCP/IP协议族中属于应用层协议,用于在远端服务器和本地客户端之间传输文件,使用TCP端口20和21进行传输.端口20用于传 ...

  3. nginx的proxy_cache缓存配置

    为什么要做web cache,我想大家最主要的是解决流量的压力.随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力.与此同时某些网站的页面 ...

  4. 每天进步一点点——Linux中的文件描写叙述符与打开文件之间的关系

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38965239 1. 概述     在Linux系统中一切皆能够看成是文件,文件又可分为:普通 ...

  5. Android 使用handler实现线程间发送消息 (主线程 与 子线程之间)、(子线程 与 子线程之间)

    keyword:Android 使用handler实现线程间发送消息 (主线程 与 子线程之间).(子线程 与 子线程之间) 相信大家平时都有使用到异步线程往主线程(UI线程)发送消息的情况. 本文主 ...

  6. 关于extern的说明

    extern的作用: extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.   声明外部变量 现代编译器一般采用按文件编译的方式 ...

  7. vbox安装ubuntu之后挂载共享文件夹无权限访问的问题以及改了主机名,导致命令行不能解析主机名的问题

    1.挂载方法在挂载的时候虚拟机给出了命令 2. sudo adduser yourusername vboxsf (vboxsf是挂载的文件夹的用户组,在/media目录下用 ls -l 命令可以看到 ...

  8. python django -4 模板

    模板介绍 作为Web框架,Django提供了模板,可以很便利的动态生成HTML 模版系统致力于表达外观,而不是程序逻辑 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视 ...

  9. Entity Framework中的主从表关系的使用

    其关系图: 我们使用Entity Framework生成映射关系如下: 其中author表中的books导航属性为一个集合,表示当前作者的书. 在页面中我们可以使用如下代码来实现: 代码中author ...

  10. hdu 4576(概率dp+滚动数组)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4576 思路:由于每次从某一位置到达另一位置的概率为0.5,因此我们用dp[i][j]表示第i次操作落在 ...