我们处理的数据主要存储在文件系统和数据库中。本书的第3章将专门介绍文件系统,第4章会详细介绍与数据库、数据表相关的操作。Alink采用插件的方式来管理各种文件系统、数据库以及各个版本所需的函数库。本节还会专门介绍如何利用Alink的插件(Plugin)工具自动下载相关的函数库。
下图为Alink文件系统(File System)与数据库(Catalog)的架构图,具体说明如下:
Alink能够支持不同第三方库(例如OSS、Hive、Derby、MySQL等)的不同版本(例如Hive的2.3.4版本、2.3.6版本等)。为了更好地管理插件(外部的第三方库),我们提供了插件下载器(PluginDownloader)来管理不同插件的多个版本。
插件下载器封装了插件的常见功能,如下所示:
在Java代码中可以这样使用插件下载器:
// 设置插件下载的位置。当路径不存在时,会自行创建路径 AlinkGlobalConfiguration.setPluginDir("/Users/xxx/alink_plugins/"); // 获得Alink插件下载器 PluginDownloader pluginDownloader = AlinkGlobalConfiguration.getPluginDownloader(); // 从远程加载插件的配置项 pluginDownloader.loadConfig(); // 展示所有可用的插件名称 List<String> plugins = pluginDownloader.listAvailablePlugins(); // 输出结果:[oss, hive, derby, mysql, hadoop, sqlite] // 显示第0个插件的所有版本 String pluginName = plugins.get(0); // oss List<String> availableVersions = pluginDownloader.listAvailablePluginVersions(pluginName); // 输出结果:[3.4.1] // 下载某个插件的特定版本 String pluginVersion = availableVersions.get(0); pluginDownloader.downloadPlugin(pluginName, pluginVersion); // 运行结束后,插件会被下载到“/Users/xxx/alink_plugins/”目录中 // 下载某个插件的默认版本 pluginDownloader.downloadPlugin(pluginName); // 运行结束后,插件会被下载到“/Users/xxx/alink_plugins/”目录中 // 下载配置文件中所有插件的默认版本 pluginDownloader.downloadAll(); // 插件升级 // 在升级的过程中,会先对旧的插件进行备份,备份文件名称的后缀为.old。等到插件更新完毕后, // 会统一删除旧的插件包 // 若插件更新中断,则用户可以从.old文件中恢复旧版插件 pluginDownloader.upgrade();