大家好,我是明哥!
本片博文是 “基于 FTP 状态文件检测结果触发 JENKINS 数据同步作业” 系列文章的最后一篇,我们来看下 FTP 和本地文件系统的桥梁 - CurlFtpFS.
1 背景回顾
某客户现场,每天都会批量生成大量 CSV 文件存放到 FTP 系统,这些 CSV 文件需要导入到大数据平台 HIVE 数仓中做后续离线分析,且 HIVE 数仓中的离线分析作业目前是使用 JENKINS 来调度的。
由于这些 CSV 文件是每天都会生成,且文件数比较多数据量也比较大,初步计划使用 DATAX 来导入 FTP 上的 CSV 文件。
但在调度系统 JENKINS 中,如何检测 ftp 上的 csv 文件是否 ready,并及时触发 DATAX 导入作业,成为了一个问题。
为探索和验证 JENKINS 中 FTP 文件的检测和触发机制,笔者基于 vsftpd 搭建了 FTP 服务器,并通过 CurlFtpFS 挂载了远程 FTP 目录到本地文件系统。
本片文章是系列文章的最后一篇,介绍下 FTP 和本地文件系统的桥梁 - CurlFtpFS。关于 vsftpd 和 ftp 的 ACTIVE/PASSIVE 模式,请参见前期的博文:
一篇文章了解开源 FTP 服务器 vsftpd
一篇文章掌握彻底掌握 FTP 服务器的 ACTIVE 与 PASSIVE 工作模式
一篇文章彻底掌握 FTP 服务器的 ACTIVE 与 PASSIVE 工作模式
以下是正文。
2 curlftpfs 与 FUSE 简介
CurlFtpFS 是一个基于 libcurl 提供对远程 FTP 节点上文件系统的访问功能的用户态文件系统,可以让用户像访问本地文件系统一样去访问远程 ftp 节点的文件系统。
CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE and libcurl.
It features SSL support, connecting through tunneling HTTP proxies, and automatically reconnecting if the server times out.
所谓 FUSE (Filesystem in Userspace),即用户态