为了达到预期的效果,Impala依赖于软件、硬件的可用性,以及下面章节描述的配置。java
继续阅读:node
支持的64位操做系统:python
Red Hat Enterprise Linux (RHEL) 5.7/6.2/6.四、Oracle Linux 5.7/6.2/6.四、Centos 5.7/6.2/6.4shell
在Red Hat Enterprise Linux 5.0及其兼容版本中,须要作一些额外的工做,impala-shell才能使用Kerberos链接到Impala集群数据库
sudo yum install python-devel openssl-devel python-pip sudo pip-python install ssl
SLES 11 SP1及以上版本ubuntu
Ubuntu 10.04/12.04 或 Debian 6.03安全
Impala 1.2.1支持CDH 4.1及以上版本。下面列出了不一样Impala与CDH版本之间的支持关系:服务器
注意:由于Impala 1.2.1是与CDH 4协同工做,而CDH 5 beta发布时包含的是Impala 1.2.0,这样从CDH 4升级到CDH 5 beta版时其实是恢复到较早的Impala版本。CHD 5 beta版本中自带的Impala beta版包含了基于CDH 5基础架构的资源管理功能,以及急需的用户定义函数功能和目录服务。而后,它不包括Impala 1.2.1中的一些新功能,例如 SHOW CREATE TABLE 语句、 SHOW TABLE STATS 语句和 SHOW COLUMN STATS 语句、 OFFSET 和 NULLS FIRST/LAST 选项,以及SYNC_DDL 选项。网络
Impala能够与存储在Hive中的数据交互,使用与Hive相同的基础架构跟踪schema中对象如表和列的元数据。如下组件是前提条件:架构
注意:
安装与配置Hive metastore是Impala的必要条件。没有Hive metastore则Impala没法工做。参见安装 Cloudera Impala,了解安装与配置Hive metastore的步骤。尽管MySQL和PostgreSQL均可以用做Hive的metastore,可是只有使用MySQL时才可使用表统计信息功能。
应当配置Hive metastore服务而不是直接链接到metastore数据库。 Metastore服务知足CDH中的Hive与Impala之间不一样层次的交互需求,并避免了许多已知的直接链接的问题(The metastore service is required to interoperate between possibly different levels of Hive used by CDH and Impala, and avoids known issues with connecting directly to the metastore database.假如经过Cloudera Manager 4.5安装,则Metastore服务被设置为默认启用。
Hive安装步骤总结以下:
- 安装MySQL或PostgreSQL数据库,若是没有自动启动则启动
- 下载MySQL/PostgreSQL链接器,放于/usr/share/java/目录下
- 使用适当的命令行工具链接到数据库,建立Hive metastore数据库
- 使用适当的命令行工具链接到数据库,授予hive用户权限
- 修改hive-site.xml文件,添加数据库信息:URL、用户名、密码。你须要将该hive-site.xml移动到下面将讲到的Impala配置目录
Impala主要由C++编写,它使用Java与其余不一样的Hadoop组件通信:
包或正确配置的库。你能够经过Cloudera Impala公共库,或自定义的库,使用包手工安装Impala。使用Cloudera Impala 公共库时,下载并安装下面的文件到每一台准备安装Impala或Impala Shell的机器上。安装步骤以下:
例如,在Red Hat 6系统中,你能够运行下面这组命令:
$ cd /etc/yum.repos.d $ sudo wget http://archive.cloudera.com/impala/redhat/6/x86_64/impala/cloudera-impala.repo $ ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo Cloudera-cdh.repo cloudera-impala.repo
注意:
你可使用wget或curl在archive.cloudera.com下载这些文件,但不要使用rsync。
一样,你也可使用 Cloudera Manager 安装、管理 Impala。Impala 1.2.1及更高版本须要Cloudera Manager 4.8及以上版本,以前版本的Cloudera Manager没法管理 Impala 目录服务。
注意: 在CM管理环境中,新的目录服务不会被CM 4.8以前的版本支持或管理。CM 4.8及以上版本须要Impala的目录服务。所以,假如你升级到Cloudera Manager 4.8及以上版本,你必须同时把Impala升级到1.2.1或更高版本. 也就是说,若是你把Impala升级到1.2.1或更高版本,也必须把Cloudera Manager升级成4.8或更高版本。
经过Cloudera Manager安装时,能够采用特定OS的包安装,也能够采用parcels方式安装。Parcels方式简化了集群中升级或发布程序步骤。
为了确保最佳性能,Impala会试图彻底经过本地数据完成任务,而不会经过网络链接使用远程数据。为了这一目标,Impala经过解析主机名标识为ip地址,提供给每一个Impala守护进程哥哥数据节点的ip地址。 Impala使用简单的数据节点上和Impala守护进程的全部机器上的IP接口来操做本地数据。确保Impala守护进程的主机名表示能够解析为IP数据节点的地址。对于单一宿主的机器,这一般是自动的,可是对于多宿主的机器,确保Impala守护进程的主机名能够解析为正确的接口。Impala在启动时会试图肯定正确的主机名,并在日志中打印一条主机名的消息(To support this goal, Impala matches the hostname provided to each Impala daemon with the IP address of each datanode by resolving the hostname flag to an IP address. For Impala to work with local data, use a single IP interface for the datanode and the Impala daemon on each machine. Ensure that the Impala daemon's hostname flag resolves to the IP address of the datanode. For single-homed machines, this is usually automatic, but for multi-homed machines, ensure that the Impala daemon's hostname resolves to the correct interface. Impala tries to to detect the correct hostname at start-up, and prints the derived hostname at the start of the log in a message of the form):
Using hostname: impala-daemon-1.cloudera.com
绝大部分状况下这能够正常工做。假如须要手工指定主机名,使用 –hostname 选项。
当执行链接操做时,全部数据集都会加载到内存中。数据集可能很是大,所以应确认你的硬件有足够的内存,以确保链接能如期完成。
根据数据集的大小不一样而需求不一样,如下是通常推荐:
Impala建立一个名叫impala的用户和用户组。请不要删除该用户或用户组,也不要修改用户、用户组的许可与权限。确保现有系统不会阻挠该用户、用户组功能。例如,你可能有脚本自动删除不在白名单中的用户,请先把这一用户、用户组添加到许可列表中。
为了资源管理功能可用(与CDH五、YARN、Liama组件协做),impala用户须要是hdfs组的成员。当新安装时这一设置会自动执行,但当从较早版本的Impala升级到1.2时不会自动执行。当你把一个已经安装了1.0或1.1版本Impala的节点升级到的CDH 5时,须要手工添加impala用户到hdfs组。
为了执行 DROP TABLE 操做时能正确的删除,Impala须要移动文件到HDFS回收站。你可能须要手工建立一个HDFS目录/user/impala,并设置为impala用户可写,这样回收站就能够被建立。不然,执行 DROP TABLE 操做后数据可能仍然保留。
Impala不该以root用户运行。Impala经过直接读取来达到最佳性能,而root不容许直接读取。所以,以root用户运行Impala可能会影响性能。
Impala安全功能提供受权,受权是基于链接到Impala服务器的Linux操做系统用户以及用户所属组的权限。参见Impala安全了解详细信息。