Cloudera Impala需求

Cloudera Impala需求

为了达到预期的效果,Impala依赖于软件、硬件的可用性,以及下面章节描述的配置。java

继续阅读:node

  • 支持的操做系统
  • 支持的Hadoop发布
  • Hive Metastore及相关配置
  • Java依赖关系
  • 包和库
  • 网络配置需求
  • 硬件需求
  • 用户账户需求

支持的操做系统

支持的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安全

支持的Hadoop发布

Impala 1.2.1支持CDH 4.1及以上版本。下面列出了不一样Impala与CDH版本之间的支持关系:服务器

  • CDH 4.1 与 Impala 1.2.1
  • CDH 5 beta版与 Impala 1.2
  • CDH 4.1以上版本与Impala 1.1
  • CDH 4.1以上版本与Impala 1.0
  • CDH 4.1以上版本与Impala 0.7
  • CDH 4.2以上版本与Impala 0.6
  • CDH 4.1与Impala 0.5或更早版本。这一组合仅支持RHEL/CentOS

注意:由于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 语句、 OFFSETNULLS FIRST/LAST 选项,以及SYNC_DDL 选项。网络

Hive Metastore及相关配置

Impala能够与存储在Hive中的数据交互,使用与Hive相同的基础架构跟踪schema中对象如表和列的元数据。如下组件是前提条件:架构

  • Hive使用 MySQL 或 PostgreSQL做为 metastore  

    注意:

    安装与配置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安装步骤总结以下:

      1. 安装MySQL或PostgreSQL数据库,若是没有自动启动则启动
      2. 下载MySQL/PostgreSQL链接器,放于/usr/share/java/目录下
      3. 使用适当的命令行工具链接到数据库,建立Hive metastore数据库
      4. 使用适当的命令行工具链接到数据库,授予hive用户权限
      5. 修改hive-site.xml文件,添加数据库信息:URL、用户名、密码。你须要将该hive-site.xml移动到下面将讲到的Impala配置目录

     

  • 可选:Hive。尽管只有Hive metastore是Impala所需的功能,你仍能够在几台客户端机器上建立、载入数据到特定格式的表。参见Impala支持的Hadoop文件格式了解详细信息。Hive与Impala不须要安装在相同的数据节点上,他们只须要访问相同的metastore数据库。

Java Dependencies

Impala主要由C++编写,它使用Java与其余不一样的Hadoop组件通信:

  • Impala官方支持的JVM是Oracle JVM。其余版本的JVM可能会出现问题,一般致使impalad启动失败。特别是,Ubuntu中默认几个层面使用的JamVM会致使impalad启动失败。
  • Impalad守护进程内部经过 JAVA_HOME 环境变量定位java库。确保impalad服务运行在正确的JAVA_HOME下。
  • 全部java依赖的程序都打包到impala-dependencies.jar文件里,该文件位于/usr/lib/impala/lib/下。These map to everything that is built under fe/target/dependency.

包与库

包或正确配置的库。你能够经过Cloudera Impala公共库,或自定义的库,使用包手工安装Impala。使用Cloudera Impala 公共库时,下载并安装下面的文件到每一台准备安装Impala或Impala Shell的机器上。安装步骤以下:

  • 下载Red Hat 5 repo file (http://archive.cloudera.com/impala/redhat/5/x86_64/impala/cloudera-impala.repo) 到/etc/yum.repos.d/
  • 下载Red Hat 6 repo file (http://archive.cloudera.com/impala/redhat/6/x86_64/impala/cloudera-impala.repo) 到/etc/yum.repos.d/
  • 下载SUSE repo file (http://archive.cloudera.com/impala/sles/11/x86_64/impala/cloudera-impala.repo) 到/etc/zypp/repos.d/
  • 下载Ubuntu 10.04 list file (http://archive.cloudera.com/impala/ubuntu/lucid/amd64/impala/cloudera.list) 到/etc/apt/sources.list.d/
  • 下载Ubuntu 12.04 list file (http://archive.cloudera.com/impala/ubuntu/precise/amd64/impala/cloudera.list) 到/etc/apt/sources.list.d/
  • 下载Debian list file (http://archive.cloudera.com/impala/debian/squeeze/amd64/impala/cloudera.list) 到/etc/apt/sources.list.d/

例如,在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 选项。

硬件需求

当执行链接操做时,全部数据集都会加载到内存中。数据集可能很是大,所以应确认你的硬件有足够的内存,以确保链接能如期完成。

根据数据集的大小不一样而需求不一样,如下是通常推荐:

  • CPU - Impala使用新处理器中包含的SSE4.2指令集。Impala也可使用在就处理器,但最佳性能是运行在:  
    • Intel - Nehalem (released 2008) 或之后处理器
    • Intel - AMD - Bulldozer (released 2011)或之后处理器
  • 内存 - 推荐至少128 GB,最好256 GB以上。假如查询处理过程当中,某个节点上的中间结果超出该节点上Impala可以使用内存的限制,查询将取消。注意查询时并行的,而聚合查询的中间结果一般比原始数据小,Impala能够查询比个别节点上实际可用内存大不少的表或链接操做。
  • 存储 - 数据节点有12块以上的硬盘。I/O速度一般是Impala磁盘性能的限制因素。确保有足够的硬盘空间来存放Impala将查询的数据。

用户账户需求

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安全了解详细信息。

相关文章
相关标签/搜索