天天看点

安装Impala过程1. 环境2. 安装3. 配置4. 启动服务5. 使用shell

与hive类似,impala也可以直接与hdfs和hbase库直接交互。只不过hive和其它建立在mapreduce上的框架适合需要长时间运行的批处理任务。例如:那些批量提取,转化,加载(etl)类型的job,而impala主要用于实时查询。

centos 6.4 x86_64

cdh 5.0.1

jdk1.6.0_31

集群规划为3个节点,每个节点的ip、主机名和部署的组件分配如下:

目前,cdh 5.0.1中 impala 版本为<code>1.4.0</code>,下载repo文件到 /etc/yum.repos.d/:

然后,可以执行下面的命令安装所有的 impala 组件。

但是,通常只是在需要的节点上安装对应的服务:

在 hive metastore 所在节点安装impala-state-store和impala-catalog

在 datanode 所在节点安装 impala-server 和 impala-shell

查看安装路径:

impalad的配置文件路径由环境变量<code>impala_conf_dir</code>指定,默认为<code>/usr/lib/impala/conf</code>,impala 的默认配置在/etc/default/impala,修改该文件中的<code>impala_catalog_service_host</code> 和 <code>impala_state_store_host</code>

设置 impala 可以使用的最大内存:在上面的 <code>impala_server_args</code> 参数值后面添加 <code>-mem_limit=70%</code> 即可。

如果需要设置 impala 中每一个队列的最大请求数,需要在上面的 <code>impala_server_args</code> 参数值后面添加 <code>-default_pool_max_requests=-1</code> ,该参数设置每一个队列的最大请求数,如果为-1,则表示不做限制。

在节点cdh1上拷贝<code>hive-site.xml</code>、<code>core-site.xml</code>、<code>hdfs-site.xml</code>至<code>/usr/lib/impala/conf</code>目录并作下面修改在<code>hdfs-site.xml</code>文件中添加如下内容:

同步以上文件到其他节点。

在每个节点上创建/var/run/hadoop-hdfs:

拷贝postgres jdbc jar:

impala 安装过程中会创建名为 impala 的用户和组,不要删除该用户和组。

如果想要 impala 和 yarn 和 llama 合作,需要把 impala 用户加入 hdfs 组。

impala 在执行 drop table 操作时,需要把文件移到到 hdfs 的回收站,所以你需要创建一个 hdfs 的目录 /user/impala,并将其设置为impala 用户可写。同样的,impala 需要读取 hive 数据仓库下的数据,故需要把 impala 用户加入 hive 组。

impala 不能以 root 用户运行,因为 root 用户不允许直接读。

创建 impala 用户家目录并设置权限:

查看 impala 用户所属的组:

由上可知,impala 用户是属于 imapal、hadoop、hdfs、hive 用户组的

在 cdh1节点启动:

如果impalad正常启动,可以在<code>/tmp/ impalad.info</code>查看。如果出现异常,可以查看<code>/tmp/impalad.error</code>定位错误信息。

使用<code>impala-shell</code>启动impala shell,连接 cdh1,并刷新元数据

当在 hive 中创建表之后,第一次启动 impala-shell 时,请先执行 <code>invalidate metadata</code> 语句以便 impala 识别出新创建的表(在 impala 1.2 及以上版本,你只需要在一个节点上运行 <code>invalidate metadata</code> ,而不是在所有的 impala 节点上运行)。

你也可以添加一些其他参数,查看有哪些参数:

例如,你可以在连接时候字段刷新:

使用 impala 导出数据: