学习Hive和Impala必看经典解析
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必看经典解析的更多相关文章
- 学习ios(必看经典)牛人40天精通iOS开发的学习方法
学习ios(必看经典)牛人40天精通iOS开发的学习方法 描述 这是一套从一个对iOS开发感兴趣的学员到iOS开发高手的系统.专业的课程体系.以培养企业开发真正需要的人才为目标,每个知识点都用案例来讲 ...
- 【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2
原文网址:http://bbs.51cto.com/thread-1099956-1.html 亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做 ...
- Java编程学习知识点分享 入门必看
Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...
- python必看经典书籍:笨办法学python
书评: 感谢作者和译者,很好的手把手的一个新手编程体验书,消除编程物质恐惧感,在线看的liam huang翻译的版,不确定看的是第几版,有一些加分题没有做,第五十题黑手党外星人飞船做起来有点压力,准备 ...
- java初学者必看经典
配置java环境变量: JAVA_HOME:配置JDK的目录 CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码) PATH:指定可执行程序的位置 LINUX系统(在" .ba ...
- (纯干货)最新WEB前端学习路线汇总初学者必看
Web前端好学吗?这是很多web学习者常问的问题,想要学习一门自己从未接触过的领域,事先有些了解并知道要学的内容,对接下来的学习会有事半功倍的效果.在当下来说web前端开发工程师可谓是高福利.高薪水的 ...
- 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...
- 1.16 Linux该如何学习(新手入门必看)
本节旨在介绍对于初学者如何学习 Linux 的建议.如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法. 如何去学习 学习大多类似庖丁解牛,对事物的认识一般都是由 ...
- iOS面试必看经典试题分析
> **不用临时变量怎么实现两个数据的交换?** 方式一:加减法的运算方式求解new_b = a - b + b = a;new_a = a + b - a = b;一个简单的运算方式,最重要的 ...
随机推荐
- Scala 机器学习库
自然语言处理 ScalaNLP-机器学习和数值计算库的套装 Breeze -Scala用的数值处理库 Chalk-自然语言处理库. FACTORIE-可部署的概率建模工具包.用Scala实现的软件库. ...
- 查看tensorflow版本和存储位置
>>>import tensorflow as tf >>>tf.__version__ __是两个下划线,中间有空格 >>>tf.__path_ ...
- QT学习二:工具栏
QT 的工具栏提供 Dock 功能.文字/图标显示排列的功能. void MainWindow::createToolBar(void) { QToolBar *toolBar = new QToo ...
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- [容器]docker-ce安装最新版-docker常用操作
社区: http://www.dockerinfo.net/rancher http://dockone.io/ https://www.kubernetes.org.cn/ 1,docker安装配置 ...
- Tomcat的类加载器
看完了Java类装载器,我们再来看看应用服务器(Tomcat)对类加载器的使用,每个应用服务器都有一套自己的类加载器体系,从而与Java的类加载器区别开以达到自己与应用程序隔离的目的.Tomcat的类 ...
- 167. Two Sum II - Input array is sorted【easy】
167. Two Sum II - Input array is sorted[easy] Given an array of integers that is already sorted in a ...
- 283. Move Zeroes【easy】
283. Move Zeroes[easy] Given an array nums, write a function to move all 0's to the end of it while ...
- apache下用expires_module让浏览器缓存静态文件
让浏览器缓存CSS.JS.图片.静态文件等是很重要的事情,这样可以减轻服务器的压力,省的浏览器经常要去服务端下载这些静态文件.下面看看配置方法吧. 1.开启apache扩展模块mod_expires. ...
- ex:0602-169 遇到不完整或无效的多字节字符,转换失败
错误原因:在AIX系统中,用vi命令编辑文件,出现rt错误,是因为AIX系统不识别文件编码格式. 解决方法:建议重新新建一个编码格式为ASC的文件,再重新上传到AIX系统中,或者改变访问linux的客 ...