1 配置要求
本节将对安装Impala之前的软硬件配置作简要的介绍。
操作系统
- Apache Impala仅在Linux系统上运行。有关更多信息,请参阅README.md文件。
组件要求
- 安装MySQL或PostgreSQL数据库。如果安装后没有启动,则启动数据库。
- 下载MySQL或PostgreSQL的图形界面,并将其放在
/usr/share/java/
目录中。
- 使用适合您的数据库的命令行工具来创建Metastore数据库。
- 使用适用于您的数据库的命令行工具向用户授予Metastore数据库的
hive
权限。
- 修改
hive-site.xml
以包含与您的特定数据库匹配的信息:其URL、用户名和密码。您将在hive-site.xml
稍后的Impala安装过程中将该文件复制到Impala配置目录。
Java要求
- Impala官方支持的JVM是Oracle JVM。其他JVM可能会导致问题,通常会导致impalad启动失败。特别是某些级别的Ubuntu系统默认使用的JamVM会导致impalad无法启动。
- 在内部,impalad守护进程依赖于
JAVA_HOME
环境变量来定位系统Java库。确保impalad服务不是在此变量设置不正确的环境中运行的。
- 所有Java依赖项都打包在
impala-dependencies.jar
文件中,该文件位于/usr/lib/impala/lib/
.这些映射到在fe/target/dependency
。
用户账号要求
- Impala创建并使用名为的用户和组
impala
。不要删除此帐户或组,也不要修改该帐户或组的权限和权限。确保现有系统不妨碍这些账户和群组的运作。例如,如果您有删除不在白名单中的用户帐户的脚本,请将这些帐户添加到允许的帐户列表中。
- 为了在
DROPTABLE
操作期间正确删除文件,Impala必须能够将文件移动到HDFS垃圾箱。您可能需要创建一个可由用户写入的HDFS目录/user/impalaimpala
,以便可以创建垃圾箱。否则,数据文件可能会在DROPTABLE
语句后保留。
- Impala不应以root身份运行。使用直接读取可实现最佳Impala性能,但不允许root使用直接读取。因此,以root身份运行Impala会对性能产生负面影响。
- 默认情况下,任何用户都可以连接到Impala并访问所有关联的数据库和表。您可以根据连接到Impala服务器的Linux操作系统用户以及该用户的关联组启用授权和身份验证。
- 这些安全功能不会改变底层文件权限要求;该
impala
用户仍然需要能够访问的数据文件。
2 安装Impala
Impala是Apache Hadoop的开源分析数据库,可快速响应查询。
按照以下步骤通过从源构建来在集群上设置Impala:
- 下载最新版本:下载Impala。
- 对使用Impala感兴趣的开发人员可以查看Impala的源代码库:
gitclonehttps://gitbox.apache.org/repos/asf/impala.git
3 Impala安装包
Impala主要由以下这些可执行文件组成,安装完成后可以使用这些可执行文件:
- impalad:Impala守护进程。计划和执行针对HDFS、HBase和AmazonS3数据的查询。
- statestored:跟踪Impalad集群中所有实例的位置和状态的名称服务。大多数生产部署在namenode上运行这个守护进程。
- catalogd:元数据协调服务,将ImpalaDDL和DML语句的更改发送至到所有受影响的Impala节点,以便新表、新加载的数据对通过任何Impala节点提交的查询立即可见。
- impala-shell:用于向Impala守护程序发出查询的命令行界面。您可以将其安装在网络上任何位置的一台或多台主机上,不一定是DataNode,甚至不必安装在Impala所在的同一集群中。它可以远程连接到Impala守护进程的任何实例。