Impala Shell 简单命令

目录

1.更新元数据

2.对查询结果去格式化

3.查询结果存储到文件

4.去格式化后指定分隔符

5.-p或者--show-profiles:显示查询的执行计划(与EXPLAIN语句输出相同)和每个查询语句底层的执行步骤的详细信息.

6.指定主机名连接 (-i)

7.执行查询语句

8.指定脚本文件执行SQL

9.-r或者--refresh_after_connect

10 -k或者-kerberos

11.-s或者-kerberos_service_name

12.-V或者-verbose

13.-quiet

14.-v或者-version

15.-c:

16.-d或者--database-

17.表的统计分析 

 18.字段的统计分析


 

1.更新元数据

invalidate metadata;
对于通过Hive加载,插入,改变的数据操作,或者通过hdfs命令对数据文件进行的变更操作,
Impala都无法自动识别数据的变更情况.如果想让Impala识别到这些变化,
在连接到impala-shell后,首先要做的操作就是REFRESH table_name,该语句会让lmpala识别到数据的变更情况.

2.对查询结果去格式化

> impala-shell -B

3.查询结果存储到文件

  • 使用 -o 将查询结果保存到txt文件中后会提示编码问题,如下
[impala@test101 ~]$ impala-shell -o 0502.txt -q ' select * from sina_weibo limit 1;'
Starting Impala Shell without Kerberos authentication
Connected to test101:21000
Server version: impalad version 2.11.0-cdh5.14.0 RELEASE (build d68206561bce6b26762d62c01a78e6cd27aa7690)
Query: select * from sina_weibo limit 1
Query submitted at: 2018-05-02 17:19:30 (Coordinator: http://test101:25000)
Query progress can be monitored at: http://test101:25000/query_plan?query_id=2e4528016c46ebfa:4ce8e72a00000000
Unknown Exception : 'ascii' codec can't encode characters in position 1834-1835: ordinal not in range(128)
Could not execute command: select * from sina_weibo limit 1
  • 解决方案
1. 查找我们执行的impala-shell具体内容[root@test101 impala]# whereis impala-shell
impala-shell: /usr/bin/impala-shell
[root@test101 impala]# vim /usr/bin/impala-shell2. 我们发现impala-shell会执行 impala_shell.py 
PYTHONPATH="${EGG_PATH}${SHELL_HOME}/gen-py:${SHELL_HOME}/lib:${PYTHONPATH}" \exec python ${SHELL_HOME}/impala_shell.py "$@"3. 查找impala_shell.py ,设置编码为utf-8
[root@test101 impala]# find / -name 'impala_shell.py'
/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/impala-shell/impala_shell.py> import sys  
> reload(sys)  
> sys.setdefaultencoding('utf-8')  4. 再次执行结果出来

4.去格式化后指定分隔符

--output delimiter-:该选项对使用-B选项去格式化输出的查询结果指定各字段间的分,隔符.默认的分隔符为制表键('\t'),如果输出字段中包含了分隔符字符,这个字段将使用/进行 转义.

[test101:21000] > select uid,gender,city from offline_user2 limit 5;
Query: select uid,gender,city from offline_user2 limit 5
Query submitted at: 2018-05-04 20:23:52 (Coordinator: http://test101:25000)
Query progress can be monitored at: http://test101:25000/query_plan?query_id=254620554e7f3de7:3b47e8e600000000
5887898482,女,海口
6013580396,男,NULL
3485070663,男,NULL
6081748563,男,深圳
5903926726,男,商丘
Fetched 5 row(s) in 0.19s

5.-p或者--show-profiles:显示查询的执行计划(与EXPLAIN语句输出相同)和每个查询语句底层的执行步骤的详细信息.

6.指定主机名连接 (-i)

-i或者-imapad-:后面接主机名用来指定连接到指定的impalad节点.
默认的连接端口为21000,我们可以使用该命令连接到集群中任何一台impalad节点上.
如果Impala启动时使用了备用端口,则需要使用--fe-port选项标识.

7.执行查询语句

-q或者-query-:该选项用于执行一个查询语句或者shell命令.
Impala不必等待查询或者shell执行结束即可返回.这里的查询仅限于像SELECT, CREATE TABLE, SHOW TABLES等单条的语句.
因为USE语句是一条单独的SQL语句,而这个选项只能指定单条语句,
所以如果对象没有前缀只能访问default数据库,如果要访问其他数据库就必须指定数据库名称作为前缀.

8.指定脚本文件执行SQL

-f或者-query-file-:这个选项后面可以跟一个SQL查询脚本文件,
脚本文件中的SQL必须使用";"来分隔.> cat query.sql
use default;
select  from student;
select mf, count (*) from student group by mf;
> impala-shell -f query.sql

9.-r或者--refresh_after_connect

连接后刷新Impala元数据信息.效果和连接之后执行REFRESH语句相同.

10 -k或者-kerberos

该选项用来指定当shell连接到impalad节点时使用kerberos身份验证.但是如果impalad节点本身没有启用kerberos,连接将会报错.

11.-s或者-kerberos_service_name

该选项后面跟kerberos服务名称让impala-shell验证一个特定的impalad服务.如果没有指定kerberos服务名称,将使用impala作为默认的名称.如果
该选项用于一个不支持kerberos的连接,将会返回错误.

12.-V或者-verbose

启用详细信息输出.

13.-quiet

禁用详细信息输出.

14.-v或者-version

显示版本信息.

15.-c:

如果查询失败继续执行.

16.-d或者--database-

该选项后面跟上数据库的名称用于连接到指定的数据库.该选项的效果和连接上之后执行USE的效果相同.如果不指定该选项,将连接到系统默认的default数据库.

17.表的统计分析 

[test03:21000] namespace1> show table stats tableName;
Query: show table stats tableName
+-----------------+----------------------------------+------------+----------+
| Region Location | Start RowKey                     | Est. #Rows | Size     |
+-----------------+----------------------------------+------------+----------+
| test01          |                                  | 1290769    | 833.00MB |
| test01          | 3c9f93135954c1c22bba09a549b9db4d | 1288975    | 904.00MB |
| test02          | 7ff81356e5d100ca91cda300bd4b11ed | 1191259    | 890.00MB |
| test03          | c1c3ace151cad4ebb62f55d952b17d83 | 1183541    | 855.00MB |
| Total           |                                  | 4954544    | 3.40GB   |
+-----------------+----------------------------------+------------+----------+
Fetched 5 row(s) in 0.57s

18.字段的统计分析

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gtest测试用例

google tf测试框架代码 https://github.com/google/googletest/tree/2fe3bd994b3189899d93f1d5a881e725e046fdc2 跑单个测试例 ./test --gtest_filterAllTest.t1 跑这个模块的所有测试例 ./test --gtest_filterAllTest*

__stdcall

__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事:1.参数传递顺序2.调用堆栈由谁(调用函数或被调用函数)清理常见的函数调用约定:stdcall cdecl fastcall thiscall naked call__stdcall表示1.参数从右向左…

CDH邮件预警

转载自:http://blog.51cto.com/feature09/2055835 在CDH的7180页面找到Cloudera Managerment Service 如图所示: 在Configuration中,搜索alert 设置接收信息的邮箱。 设置内容都在图片上: 添加邮件页眉说明,第一行显…

结构光双目视觉测距原理

结构光视觉技术是一种主动投影式的三维测量技术,通过使用投影仪和相机组成的系统来对物体进行三维测量 系统结构: 硬件系统: 常见编码方法: 结构光图案编码 常用的是格雷码和传统的二进制码相比,格雷码的编码数中任意…

c++静态成员函数为什么不能为虚函数?

知乎用户 three passions govern my life2 人赞同可以把静态成员函数看作是“命名空间受限的普通函数”,所以它不能有运行时多态发布于 2015-06-23 添加评论 感谢 分享收藏 • 没有帮助 • 举报 • 作者保留权利Elvis Wang C程序员转型Java中6 人赞同其实我觉得这个…

Hive Shell

目录 hive是否执行mr 创建数据库指定目录 删除数据库 显示表信息/表结构 查看表示内部表还是外部表 拷贝一张已经存在的表的表模式(而无需拷贝数据) 复制一张表(包括数据) hive-cli 显示当前所在数据库 执行命令不进入hiv…

c++11/14新特性学习

1.__func__ 预定义表示符 返回所在函数的名字 #include<string> #include<iostream> using namespace std; const char* hello(){return __func__}int main() {cout<<hello()<<endl; } 打印结果&#xff1a; hello 2.__VA__ARGC__ 可以在宏定义的…

Linux chattr 与 lsattr命令

PS&#xff1a;有时候你发现用root权限都不能修改某个文件&#xff0c;大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大&#xff0c;其中一些功能是由Linux内核版本来支持的&#xff0c;不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修…

在C++中用虚函数的作用是什么?为什么要用到虚函数

简单地说&#xff0c;那些被virtual关键字修饰的成员函数&#xff0c;就是虚函数。虚函数的作用&#xff0c;用专业术语来解释就是实现多态性&#xff08;Polymorphism&#xff09;&#xff0c;多态性是将接口与实现进行分离&#xff1b;用形象的语言来解释就是实现以共同的方法…

如何成为一个优秀的高级C++程序员

C这门语言从诞生到今天已经经历了将近30个年头。不可否认&#xff0c;它的学习难度都比其它 语言较高。而它的学习难度&#xff0c;主要来自于它的复杂性。现在C的使用范围比以前已经少了很多&#xff0c;java、C#、python等语言在很多方面已经可以代替 C。但是也有很多地方是其…

cuda学习资源

https://bbs.gpuworld.cn/ https://developer.nvidia.com/cuda-zone http://docs.nvidia.com/cuda/index.html# https://www.cnblogs.com/1024incn/category/695134.html

c++标准库 及 命名空间std

1、命名空间std   C标准中引入命名空间的概念&#xff0c;是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念&#xff0c;标识符就被限制在特定的范围(函数)内&#xff0c;不会引起命名冲突。最典型的例子就是std命名空间&#xff0c;C标准库中所有标…

Cloudera-Manager 与 原生集群 免密登录问题

原生集群启动方式&#xff1a; 在Hadoop启动以后&#xff0c;namenode是通过SSH来启动和停止各个节点上的各种守护进程的&#xff0c;这就需要在节点之间执行指令的时候是不需要输入密码的方式&#xff0c;故我们需要配置SSH使用无密码公钥认证的方式。 Cloudera-Manager启动方…

相机标定原理和opencv代码解析

1.单目标定 单应矩阵 设三维空间点的齐次坐标,对应的图像坐标为 他们满足一下关系&#xff1a; s为尺度因子&#xff0c;K为内参矩阵 R和T旋转平移矩阵统称为外参 假设我们提供K个棋盘图像&#xff0c;每个棋盘有N个角点&#xff0c;于是我们拥有2KN个约束方程。与此同时&am…

C++:构造函数和析构函数能否为虚函数

C&#xff1a;构造函数和析构函数能否为虚函数&#xff1f; 简单回答是&#xff1a;构造函数不能为虚函数&#xff0c;而析构函数可以且常常是虚函数。 &#xff08;1&#xff09; 构造函数不能为虚函数 让我们来看看大牛C之父 Bjarne Stroustrup 在《The C Programming Langua…

Linux平台下C++编程

关于Linux下开发应该具备哪些基础知识&#xff0c;应该如何进阶。除了C的基本语法知识外&#xff0c;应该学习哪些内容&#xff0c;更有助于工作和成长。同事给出了他自己的学习思路。具体如下&#xff1a; 1、STL STL作为已经被发明过的轮子&#xff0c;使用起来有很多好处&am…

Hive 大小表关联查询异常

异常原因&#xff1a;mr将数据量小的表识别成了大表&#xff0c;数据量大的识别成小表&#xff0c;导致将数据量大的表加入到内存&#xff0c;导致程序异常处理方法&#xff1a; set hive.execution.enginemr; set hive.mapjoin.smalltable.filesize55000000; set hive.auto.co…

cudaMemcpyToSymbol使用

学到了cudaMemcpyToSymbol竟然还有将数据从host拷贝到global的功能&#xff0c;以前只用过这个函数拷贝到constant memory。拷贝方式的不同是由目的内存申请的方式决定的。 申请的是device内存&#xff0c;cudaMemcpyToSymbol拷贝就是从host拷贝到global memory。 申请的是co…

定义一个结构体指针需要分配存储空间?

前言 问题的来源于在学数据结构的时候&#xff0c;C的语法和C语言的语法竟然不一样。 1.首先函数的参数有两种传递方式&#xff0c;一个是值传递&#xff0c;一个是地址传递。当指针作为参数传递的时候&#xff0c;即为地址传递&#xff0c;但C写的时候需要加&引用符号&a…

内核模式和用户模式

2位x86系统&#xff0c;每个进程的空间是4GB&#xff0c;即地址0x00000000到0xFFFFFFFF。 为了高效调用&#xff0c;Windows会把操作系统的内核数据和代码映射的系统中所有进程的进程空间中。因此4GB空间被划分为两个区域&#xff1a;用户空间和系统空间&#xff0c;默认大小为…