Impala shell详解

简介:

 

 

 

   查看帮助文档

impala-shell -h

 

   刷新整个云数据

impala-shell -r
use impala;
show tables;

 

 

  去格式化,查询大数据量时可以提高性能

impala-shell -B
show tables;

  则,效果就跟hive效果一样了。

 

  去格式化时显示列名

impala-shell -B --print_header
show tables;

 

 

  指定分隔符

impala-shell -B --output_delimiter

 

 

impala-shell -B --print_header   --output_delimiter

 

 

  查看对应版本

impala-shell -v

 

 

   执行查询文件(常用)

impala-shell -f

   常常把sql语句写到某文件中。

 

 比如vi test.tst

select *  from impala.res  limit 5;

  注意,impala是我的数据库,res是这个数据库里的表。

 

impala-shell -f  test.tst

或者

impala-shell --query_file = test.txt

  这种语句的作用,跟sql语句里的作用是一样的。

 

 

  连接对应的impalad服务

impala-shell -i

 

impala-shell -- impalad

 

impala-shell --fe_port

 

 

 

   保存结果执行到文件

impala-shell -o

 

impala-shell -o --output_file

 

impala-shell -o  result.txt   --query_file=test.txt

 

 

 

 

impala-shell  -B  --print_header  -o  result.txt  --query_file=test.txt
result.txt

 

 

impala-shell  -B   -o  result.txt  --query_file=test.txt
result.txt

 

 

 

 

 

 

 

 

 

  执行某一用户运行impala-shell

impala-shell -u

 

 

   显示执行计划

impala-shell -p

 

 

   不能进入impala-shell执行查询

impala-shell -q

 

 

  使用kerberos安全加密方式运行impala-shell

impala-shell -k

 

  忽略错误语句继续执行

impala-shell -c

 

 

  使用LDAP协议进行访问

impala-shell -l

 

 

  指定进入某一个数据库

impala-shell -d

 

 

 

 

 

 

 

 

 

 

  帮助选项

impala-shell;
help

 

 

 

 

  增量刷新

impala-shell;
refresh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

摘要: http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Using-Impala/ciiu_shell_options.html

impala-shell 命令行选项

你可以在启动 impala-shell 时设置以下选项,用于修改命令执行环境。

   Note:

这些选项与 impalad 守护进程的配置选项不同。关于 impalad 选项,参见 Modifying Impala Startup Options。

选项

描述

-B or --delimited

导致使用分隔符分割的普通文本格式打印查询结果。当为其他 Hadoop 组件生成数据时有用。对于避免整齐打印所有输出的性能开销有用,特别是使用查询返回大量的结果集进行基准测试的时候。使用 --output_delimiter 选项指定分隔符。使用 -B 选项常用于保存所有查询结果到文件里而不是打印到屏幕上。在 Impala 1.0.1 中添加

--print_header

是否打印列名。整齐打印时是默认启用。同时使用 -B 选项时,在首行打印列名

-o filename or --output_file filename

保存所有查询结果到指定的文件。通常用于保存在命令行使用 -q 选项执行单个查询时的查询结果。对交互式会话同样生效;此时你只会看到获取了多少行数据,但看不到实际的数据集。当结合使用 -q 和 -o 选项时,会自动将错误信息输出到 /dev/null(To suppress these incidental messages when combining the -q and -o options, redirect stderr to /dev/null)。在 Impala 1.0.1 中添加

--output_delimiter=character

当使用 -B 选项以普通文件格式打印查询结果时,用于指定字段之间的分隔符(Specifies the character to use as a delimiter between fields when query results are printed in plain format by the -B option)。默认是制表符 tab ('\t')。假如输出结果中包含了分隔符,该列会被引起且/或转义( If an output value contains the delimiter character, that field is quoted and/or escaped)。在 Impala 1.0.1 中添加

-p or --show_profiles

对 shell 中执行的每一个查询,显示其查询执行计划 (与 EXPLAIN 语句输出相同) 和发生低级故障(low-level breakdown)的执行步骤的更详细的信息

-h or --help

显示帮助信息

-i hostname or --impalad=hostname

指定连接运行 impalad 守护进程的主机。默认端口是 21000。你可以连接到集群中运行 impalad 的任意主机。假如你连接到 impalad 实例通过 --fe_port 标志使用了其他端口,则应当同时提供端口号,格式为 hostname:port

-q query or --query=query

从命令行中传递一个查询或其他 shell 命令。执行完这一语句后 shell 会立即退出。限制为单条语句,可以是 SELECT, CREATE TABLE, SHOW TABLES, 或其他 impala-shell 认可的语句。因为无法传递 USE 语句再加上其他查询,对于 default 数据库之外的表,应在表名前加上数据库标识符(或者使用 -f 选项传递一个包含 USE 语句和其他查询的文件)

-f query_file or --query_file=query_file

传递一个文件中的 SQL 查询。文件内容必须以分号分隔

-k or --kerberos

当连接到 impalad 时使用 Kerberos 认证。如果要连接的 impalad 实例不支持 Kerberos,将显示一个错误

-s kerberos_service_name or --kerberos_service_name=name

Instructs impala-shell to authenticate to a particular impalad service principal. 如何没有设置 kerberos_service_name ,默认使用 impala。如何启用了本选项,而试图建立不支持 Kerberos 的连接时,返回一个错误(If this option is used in conjunction with a connection in which Kerberos is not supported, errors are returned)

-V or --verbose

启用详细输出

--quiet

关闭详细输出

-v or --version

显示版本信息

-c

查询执行失败时继续执行

-r or --refresh_after_connect

建立连接后刷新 Impala 元数据,与建立连接后执行 REFRESH 语句效果相同

-d default_db or --database=default_db

指定启动后使用的数据库,与建立连接后使用 USE 语句选择数据库作用相同,如果没有指定,那么使用 default 数据库

-l 启用 LDAP 认证
-u 当使用 -l 选项启用 LDAP 认证时,提供用户名(使用短用户名,而不是完整的 LDAP 专有名称(distinguished name)) ,shell 会提示输入密码

 

 

 

 

 

 

 

 

1、Impala 外部 Shell

  Impala外部Shell 就是不进入Impala内部,直接执行的ImpalaShell 例如通过外部Shell查看Impala帮助可以使用: $ impala-shell -h 这样就可以查看了;

  再例如显示一个SQL语句的执行计划: $ impala-shell -p select count(*) from t_stu

  下面是Impala的外部Shell的一些参数:

  • -h (--help) 帮助
• -v (--version) 查询版本信息
• -V (--verbose) 启用详细输出
• --quiet 关闭详细输出
• -p 显示执行计划
• -i hostname (--impalad=hostname) 指定连接主机格式hostname:port 默认端口21000
• -r(--refresh_after_connect)刷新所有元数据
• -q query (--query=query) 从命令行执行查询,不进入impala-shell

  • -d default_db (--database=default_db) 指定数据库
• -B(--delimited)去格式化输出
• --output_delimiter=character 指定分隔符
• --print_header 打印列名
• -f query_file(--query_file=query_file)执行查询文件,以分号分隔
• -o filename (--output_file filename) 结果输出到指定文件
• -c 查询执行失败时继续执行
• -k (--kerberos) 使用kerberos安全加密方式运行impala-shell
• -l 启用LDAP认证
• -u 启用LDAP时,指定用户名

 

 

 

2、Impala内部Shell

  使用命令 $ impala-sehll  可以进入impala,在这里可以像Hive一样正常使用SQL,而且还有一些内部的impala命令:

  • help
• connect 连接主机,默认端口21000
• refresh 增量刷新元数据库
• invalidate metadata 全量刷新元数据库
• explain 显示查询执行计划、步骤信息
• set explain_level 设置显示级别(0,1,2,3)
• shell 不退出impala-shell执行Linux命令
• profile (查询完成后执行) 查询最近一次查询的底层信息

  例:查看帮助可以直接使用: help ,要刷新一个表的增量元数据可以使用 refresh t_stu;

 

本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6785596.html,如需转载请自行联系原作者

相关文章
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
1023 9
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
464 60
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
1096 2
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
560 1
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1468 1
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
1480 17
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
2487 25
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
485 4