• Impala官网翻译07-Impala要求


    Impala要求

    为了达到预期的性能,Impala取决于以下各节所述的软件、硬件和配置的可用性。

    支持的操作系统

    Apache Impala仅在Linux系统上运行。更多信息请参见 README.md 文件。

    Hive Metastore和相关配置

    Impala可以与存储在Hive中的数据互操作,并使用与Hive相同的基础架构来跟踪表和列等模式对象的元数据。以下组件是Impala的先决条件。

    • MySQL或PostgreSQL,作为Impala和Hive的元存储数据库。

    配置Hive元存储服务,而不是直接连接到元存储数据库。如果您的环境需要Hive元存储服务,则需要在不同级别的元存储API之间进行互操作,而且使用它可以避免直接连接到元存储数据库的已知问题。

    • Hive(可选)。虽然Impala只需要Hive元存储数据库才能运行,但您可能会在某些客户机上安装Hive,以创建和加载数据到使用某些文件格式的表中。有关详情,请参见 Impala 如何与 Hadoop 文件格式一起工作。Hive 不需要与 Impala 安装在相同的 DataNodes 上,它只需要访问相同的 metastore 数据库。

    要安装metastore,参考如下:

    1. 安装一个MySQL或PostgreSQL数据库。如果安装后没有启动数据库,请启动数据库。
    2. 下载MySQL连接器或PostgreSQL连接器,并将其放置在/usr/share/java/目录中。
    3. 使用适合你的数据库的命令行工具来创建元存储数据库。
    4. 使用适当的命令行工具为你的数据库授予metastore数据库的权限给hive用户。
    5. 修改 hive-site.xml,以包含与你的特定数据库相匹配的信息:它的 URL、用户名和密码。您将在稍后的Impala安装过程中把hive-site.xml文件复制到Impala配置目录中。

     Java依赖

    虽然Impala主要是用C++编写的,但它确实使用Java与各种Hadoop组件进行通信。

    • 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 通过将主机名标志解析为 IP 地址,将提供给每个 Impala 守护进程的主机名与每个 DataNode 的 IP 地址相匹配。为了让Impala使用本地数据,请为每台机器上的DataNode和Impala守护进程使用单一IP接口。确保 Impala 守护进程的主机名标志解析为 DataNode 的 IP 地址。对于单主机,这通常是自动的,但对于多主机,请确保Impala守护进程的主机名解析到正确的接口。Impala会在启动时尝试检测正确的主机名,并在日志开始时以消息的形式打印导出的主机名。

    使用主机名:impala-daemon-1.example.com。
    在大多数情况下,这种自动检测是正确的。如果你需要明确设置主机名,可以通过设置--hostname标志来实现。

    硬件要求

    Impala执行器节点之间的内存分配应该是一致的。单个Impala执行器的内存限制比其他执行器低,很容易成为瓶颈,导致性能不理想。

    本准则不适用于仅有协调器的节点。

    最佳Join性能的硬件要求

    在联接操作期间,来自每个联接表的部分数据被加载到内存中。数据集可能非常大,因此确保您的硬件有足够的内存来容纳您预期完成的联接。

    虽然要求根据数据集的大小而不同,但一般建议如下。

    • CPU

    Impala 2.2及更高版本使用SSSE3指令集,新的处理器中包含该指令集。

    注意:这个所需的处理器级别与Impala 1.x版本相同。Impala 2.0和2.1版本对SSE4.1指令集有更严格的要求,现在已经放宽。

    • 内存

    建议128GB以上,最好是256GB以上。如果在某个节点上查询处理过程中的中间结果超过了Impala在该节点上的可用内存量,查询就会将临时工作数据写入磁盘,这会导致查询时间过长。需要注意的是,由于工作是并行化的,聚合查询的中间结果通常小于原始数据,所以Impala可以查询和加入比单个节点上可用内存大得多的表。

    • 目录服务器的JVM堆大小

    建议使用 4 GB 或更多,最好是 8 GB 或更多,以容纳您计划使用 Impala 的最大数量的表、分区和数据文件。

    • 存储空间

    DataNodes,每个节点有12个或更多磁盘。I/O速度通常是Impala的磁盘性能的限制因素。确保您有足够的磁盘空间来存储Impala将要查询的数据。

    用户账户要求

    Impala 创建并使用一个名为 impala 的用户和组。不要删除该帐户或组,也不要修改该帐户或组的权限和权利。确保没有现有系统阻碍这些账户和组的功能。例如,如果你有删除不在白名单中的用户账户的脚本,请将这些账户添加到允许账户列表中。

    为了在DROP TABLE操作期间正确删除文件,Impala必须能够将文件移动到HDFS垃圾桶。你可能需要创建一个HDFS目录/user/impala,impala用户可以写,这样才能创建垃圾桶。否则,数据文件可能会在DROP TABLE语句后留下。

    Impala不应该以root身份运行。使用直接读取可以获得最佳的Impala性能,但root是不允许使用直接读取的。因此,以root身份运行Impala会对性能产生负面影响。

    默认情况下,任何用户都可以连接到Impala并访问所有相关的数据库和表。您可以根据连接到Impala服务器的Linux操作系统用户以及该用户的相关组来启用授权和认证。详情请参见Impala安全性。这些安全功能不会改变底层的文件权限要求,impala用户仍然需要能够访问数据文件。

  • 相关阅读:
    重磅!阿里发布《Java开发手册(泰山版)》
    IntelliJ IDEA 快捷键终极大全,速度收藏!
    Java多态的实现机制是什么,写得非常好!
    Intellij IDEA 非常 6 的 10 个姿势!
    深入浅出Java中的clone克隆方法,写得太棒了!
    Java集合类,一张图说清楚!
    在 IntelliJ IDEA 中使用 Git,太方便了!.md
    Http(get,post)及HttpClient(get,post)的简单使用
    java servlet+jquery+json学习小例子
    JAVA中使用JSON进行数据传递
  • 原文地址:https://www.cnblogs.com/lukairui/p/14376953.html
Copyright © 2020-2023  润新知