学习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;一个简单的运算方式,最重要的 ...
随机推荐
- 应用phpexcel导出excel文件后打不开的问题解决方法
应用phpexcel导出excel文件后打不开,提示“文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件的格式匹配”. 试了以下方法: 1.首先区分文件格式是2003,还是2007. 参 ...
- CentOS6.5配置PHP CI程序
步骤: 1.安装CentOS6.5系统: 1.选择PHP+Mysql环境 2.关闭防火墙和SeLinux 1.chkconfig --level 35 iptables off ...
- Linux内核设计基础(五)之内存管理
我感觉学习操作系统首先要从内存分配和管理入手. 首先我们应该知道现代操作系统是以页为单位进行内存管理的,32位体系结构支持4KB的页.而64位体系结构支持8KB的页.页是用来分配的.怎样才干进行高效和 ...
- Xilinx下载方式(具体可以参考配置MCS文件时右下角help调出的doc)
1.两者都属高速并行配置模式.SelectMAP是早期的FPGA两类配置模式之一,是相对于串行(Serial)配置而言的,与主串(Master Serial)和从串(Slave Serial)模式对应 ...
- 【bzoj1875】【SDOI2009】【HH去散步】
1875: [SDOI2009]HH去散步 Time Limit: 20 Sec Memory Limit: 64 MB Submit: 932 Solved: 424 [Submit][Status ...
- 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 ...
- address-already in use 以及查看端口
https://stackoverflow.com/questions/19071512/socket-error-errno-48-address-already-in-use
- Sping 的 BeanFactory 容器
Sping 的 BeanFactory 容器 这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在 org.springframework.beans.factory.B ...
- 基于python的七种经典排序算法(转)
一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性:经过某种排序后,如果两个 ...
- nodejs rar/zip加密压缩、解压缩
1.shell/cmd命令行压缩解压缩 (1)zip压缩解压缩 zip压缩:zip -rP{密码} <目标文件.zip> <源文件> //默认覆盖现有文件 zip解压缩:zip ...