连接到 impalad
在你连接到 impalad 守护进程实例的 impala-shell 会话中,可以只运行查询。你既可以在运行 impala-shell 时通过命令行选项指定连接信息,也可以在 impala-shell 会话中通过运行 CONNECT 命令指定。你可以连接到任意运行了 impalad 实例的数据节点,然后这个节点会协调发给它的所有查询的执行。
简单起见,你可能会始终连接到同一个节点,可能在运行 impalad 的相同节点运行 impala-shell,指定主机名为 localhost。当表数据或元数据被其他节点更新后,路由所有的 SQL 语句到同一个节点可以避免频繁的执行 REFRESH 语句。
为了负载均衡和灵活性,你的每一个 impala-shell 会话可能会连接到任意节点。这时候,依赖于表数据或元数据是否已经被其他节点更新,你可能需要执行 REFRESH 语句把该节点上所有表的元数据更新到当前时间 (针对将查询许多表长时间存在的会话) 或 执行特定的 REFRESH table_name 语句只更新要查询的表的元数据。
在 impala shell 连接到任意的运行 impalad 守护进程的数据节点:
- 不指定连接启动 impala-shell
$ impala-shell
你会看到如下提示符:
Welcome to the Impala shell. Press TAB twice to see a list of available commands. Copyright (c) 2012 Cloudera, Inc. All rights reserved. (Shell build version: Impala Shell v1.0.1 (9ef893a) built on Fri May 31 17:50:30 PDT 2013) [Not connected] >
- 使用 connect 命令连接到 Impala 实例:
[Not connected] > connect impalad-host > [impalad-host:21000] >
Note: 替换上面的 impalad-host 为正确的运行 Impala 的数据节点名。变化的提示符表示连接成功