Apache Tajo OpenStack Swift 集成


Swift 是一个分布式且一致的对象/blob 存储。 Swift 提供云存储软件,因此你可以使用简单的 API 存储和检索大量数据。 Tajo 支持 Swift 集成。

以下是 Swift 集成的学习前提:

  • Swift
  • Hadoop

核心站点.xml


在 hadoop “core-site.xml” 文件中添加以下更改:

<property> 
    <name>fs.swift.impl</name>
    <value>org.apache.hadoop.fs.swift.snative.SwiftNativeFileSystem</value>
    <description>File system implementation for Swift</description>
</property>  

<property> 
    <name>fs.swift.blocksize</name>
    <value>131072</value>
    <description>Split size in KB</description>
</property> 

这将用于 Hadoop 访问 Swift 对象。完成所有更改后,移动到 Tajo 目录以设置 Swift 环境变量。

conf/tajo-env.h


打开Tajo配置文件,添加设置环境变量如下:

$ vi conf/tajo-env.h  
export TAJO_CLASSPATH = $HADOOP_HOME/share/hadoop/tools/lib/hadoop-openstack-x.x.x.jar 

现在,Tajo 将能够使用 Swift 查询数据。

创建表


让我们创建一个外部表来访问 Tajo 中的 Swift 对象,如下所示:

default> create external table swift(num1 int, num2 text, num3 float) 
    using text with ('text.delimiter' = '|') location 'swift:// 存储桶名称/table1';

创建表后,你可以运行 SQL 查询。