Impala实战 第5章 Impala shell

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/myvanguard/article/details/86653118

第5章 Impala shell

使用Impala shell工具(impala-shell)来创建数据库、表.插入数据.执行查询等。

5.1命令行选项

我们可以通过制定以下命令行选项来启动impala-shell来改变shell命令的执行方式。

(1)-B或者-delimited:对查询结果去格式化,并将其按照指定的分隔方式进行分隔。
(2)o或者-output_file:该选项后面跟文件名称,可以将输出结果存储为指定的文件。
(3)–output delimiter=:该选项对使用-B选项去格式化输出的查询结果指定各字段间的分隔符。
(4)-p或者–show profiles:显示查询的执行计划和每个查询语句底层的执行步骤的详细信息。
(5)h或者-help:显示帮助信息。
(6)-i或者-imapad=:后面接主机名用来指定连接到指定的impalad节点。
(7)-q或者-query=:该选项用于执行一个查询语句或者shell命令。
(8)-f或者-query_file=:选项后面可以跟一个SQL查询脚本文件文件中的SQL必须使用";"来分隔。
(9)-k或者-kerberos:该选项用来指定当shell连接到impalad 节点时使用kerberos身份验证。
(10)-s或者-kerberos service name:该选项后面跟 kerberos 服务名称让impala-shell 验证一个特定的impalad服务。
(11)-V或者–verbose:启用详细信息输出。
(12)–quiet:禁用详细信息输出。
(13)-v或者-version:显示版本信息。
(14)-c:如果查询失败继续执行。
(15)-r或者-refresh_after_connect:连接后刷新Impala元数据信息。
(16)-d或者-database=:该选项后面跟上数据库的名称用于连接到指定的数据库。
(17)-1:该选项用于启用LDAP身份验证。
(18)-u:如果启用了-1选项,则用-u来指定身份验证的用户名称。

impala-she11-B
impala-she11-o student.txt
impala-she11-B--output delimiter=','-o student. txt
impala-shell-p
impala-shel1-i hadoop-cs2
impala-shel1-q 'select * from student'
impala-shel1-f query.sql
impala-shel1--quiet
impala-shell-d d1

5.2连接到Impalad

在lmpala中,我们只有连接到impalad进程节点后才能执行查询操作。当我们使用impala-shell连接到impalad进程节点时可以配置相关的命令行选项指定连接信息。我们可以连接到任何一个运行了impalad进程的DataNode,接受了连接的节点将作为协调者节点运行查询任务。

为了让imapla-shell连接到任何impalad节点:
1.启动impala-shell
2.使用connect连接到lmpala实例

impala-shell
connect hadoop-cs1;

5.3运行命令

我们可以通过按两次TAB键获得所有命令的列表:

alter create describe exit help insert profile select
shell unset values with
connect desc drop explain history load quit set show
use version

5.4命令参考

当shell连接到Impalad节点之后,我们可以使用下述命令向Impala发送请求。有两种发送请求的方式,一种是直接在shell命令提示符中交互式执行,一种是通过启动 shell时指定-q选项。

  • alter.改变一个Impala表,Hive表的表结构或者配置信息。
  • compute stats:搜集表性能相关的统计信息,在优化Impala查询时使用。
  • connect:连接到Impalad节点。连接的默认端口号为21000.
  • describe:显示指定表的列,列数据类型,列注释信息等。
  • drop:删除一个对象,在某些情况下还会删除相关的数据文件。
  • explain:显示一个查询的执行计划及它执行的各个步骤信息。
  • help:显示所有可用的命令和选项的列表。
  • history:维护一个会话无关的执行过的命令的历史记录。
  • insert:向指定的表中写入数据。
  • invalidate metadata:更新元数据信息。在创建、删除、修改了数据库、表、分区后使用本命令。
  • profile:显示最近的查询到底层信息用于问题诊断或者性能优化。
  • quit:退出shell。quit命令也需要以";"结尾,shell才能识别。
  • refresh:刷新HDFS数据文件位置相关的元数据信息。
  • select:查询满足特定条件的数据集。
  • set:管理impala-shell会话的查询选项。
  • shell不退出impala-shell执行操作系统的命令。我们也可以使用!作为shell命令的缩写。
  • show:显示对象的元数据信息。该命令还可以用来搜集特定的数据库或者表的相关信息。
  • unset:用于删除我们通过set命令设置的查询选项,将其修改为默认值。
  • use:切换到指定的数据库。
  • version:返回Impala的版本信息。

5.5查询参数设置

(1)ABORT_ON_DEFAULT_LIMIT_EXCEEDED该参数与DEFAULT_ORDER_BY_LIMIT结合使用,确保ORDERBY查询的结果不会被截断。
(2)ABORT_ON_ERROR如果未启用该选项,当某个Impalad进程节点故障时,
已经发出的查询会在其他节点继续执行,并返回一个依赖部分Impalad进程节点运算的结果。
(3)ALLOW_UNSUPPORTED_FORMATS该选项是一个过时的将要被抛弃的选项,
在早期用于支持不同的文件格式。
(4)BATCH_SIZE_SQL操作符一次可以计算的行数。如果未指定该值或者指定为0,将使用默认值1024。
(5)DEBUGACTION用于Cloudera内部故障诊断和调试。
(6)DEFAULT_ORDER_BY LIMIT为了避免对海量的结果集进行排序
(7)DISABLE_CODEGEN这是一个用于诊断系统崩溃的调试参数。
(8)EXPLAIN_LEVEL该参数控制EXPLAIN语句输出的信息量。
默认值:1。
参数:参数值的范围为数字0-3。

  • 0:即MINIMAL,是执行计划的最小输出。
  • 1:即STANDARD,是执行计划的标准输出。
  • 2:即EXTENDED,是执行计划的扩展输出。
  • 3:即VERBOSE,是执行计划最详细的输出。
    set explain level=0;

(9)HBASE_CACHE_BLOCKS设置该参数相当于在HBase Java应用程序中调用了org.apache.hadoop.hbase.client.Scan的setCacheBlocks方法,可用于控制HBase region服务器的内存压力。
(10)HBASE_CACHING设置该参数相当于调用了org.apache.hadoop.hbase.client.Scan的setCaching方法,可用于控制HBase region服务器的内存压力。
(11)MAXERRORS在Impala日志文件中可记录的某个查询的非关键性错误的最大个数。
(12)MAX_IO_BUFFERS该参数将被抛弃。
(13)MAX_SCAN_RANGE_LENGTH该参数表示扫描范围的最大长度。
(14)MEM_LIMIT如果没有启用资源管理功能,该参数用来定义每个节点的最大内存数量。
(15)NUM_NODES仅在调试过程中限制节点数时使用。
(16)NUM_SCANNER_THREADS一个查询在每个节点上扫描线程的最大数量。
(17)PARQUET_COMPRESSION_CODEC当Impala向Parquet表插入数据时,底层的压缩算法由该参数控制。
(18)PARQUET_FILE_SIZE在向Impala的Parquet表插入数据时,该参数指定Parquet数据文件的最大大小
(19)REQUEST_POOL查询需要提交的池或者队列的名称。
(20)RESERVATION REQUEST_TIMEOUT Impala为一个完全授权或者拒绝授权预留的最大毫秒数。
(21)SUPPORT START OVER保持该值为FALSE。默认值:FALSE。
(22)SYNC _DDL启用了该参数将会导致任何DDL语句必须通过Catalog服务将更新的元数据信息推送到所
有节点上之后,才会返回。
(23)V_CPU_CORES从YARN中请求的每台主机的虚拟CPU核的数量。

猜你喜欢

转载自blog.csdn.net/myvanguard/article/details/86653118