Impala 使用Isilon存储


您可以使用Impala查询驻留在EMCIsilon存储设备而不是HDFS中的数据文件。此功能允许对您可能已经在管理大量数据的存储系统进行方便的查询访问。Impala查询引擎和Isilon存储的组合已在Impala2.2.4或更高版本上进行了认证。

由于EMCIsilon存储设备使用块大小的全局值而不是每个文件的可配置值,因此PARQUET_FILE_SIZE当Impala将数据插入驻留在Isilon存储上的表或分区时,查询选项不起作用。使用该isi命令在Isilon设备上全局设置默认块大小。例如,要将Isilon默认块大小设置为256MB,即Impala的Parquet数据文件的推荐大小,请发出以下命令:

isi hdfs settings modify --default-block-size=256MB

Impala和Isilon一起使用的典型用例是将Isilon用于默认文件系统,完全取代HDFS。在此配置中,当您创建数据库、表或分区时,数据始终驻留在Isilon存储上,您无需指定任何特殊LOCATION属性。如果您确实指定了LOCATION属性,则其值是指Isilon文件系统中的路径。例如:

-- If the default filesystem is Isilon, all Impala data resides there
-- and all Impala databases and tables are located there.
CREATE TABLE t1 (x INT, s STRING);
-- You can specify LOCATION for database, table, or partition,
-- using values from the Isilon filesystem.
CREATE DATABASE d1 LOCATION '/some/path/on/isilon/server/d1.db';
CREATE TABLE d1.t2 (a TINYINT, b BOOLEAN);

Impala可以写入、删除和重命名Isilon存储上的数据文件和数据库、表和分区目录。因此,黑斑羚等语句CREATETABLEDROPTABLECREATEDATABASEDROPDATABASEALTERTABLE,和INSERT工作一样与Isilon存储与HDFS。

当Impala溢出到磁盘功能被接近内存限制的查询激活时,Impala将所有临时数据写入本地(而非Isilon)存储设备。由于临时数据的I/O带宽取决于本地磁盘的数量,并且使用Isilon存储的集群可能没有连接那么多本地磁盘,因此请特别注意启用Isilon的集群对使用溢出到-磁盘功能。在可行的情况下,调整查询或为Impala分配额外的内存以避免溢出。尽管您可以将Isilon存储设备指定为溢出到磁盘功能的临时数据的目标,但由于需要使用远程I/O双向传输数据,因此不建议使用该配置。

在HDFS上调整Impala查询时,您通常会尝试避免任何远程读取。当数据驻留在Isilon存储上时,所有I/O都由远程读取组成。当您在查询配置文件输出中看到远程读取测量的非零数字时,请不要惊慌。Impala和Isilon集成的好处主要是不必将大量数据移动或复制到HDFS的便利性,而不是原始查询性能。您可以通过增加impalad守护程序的‑‑num_remote_hdfs_io_threads启动选项的值来提高Isilon系统的ImpalaI/O的性能。