任何一个大数据分析的软件,都需要一个强大的数据拉取组件、数据仓储系统、数据处理引擎、任务调度引擎和流程设计界面。Hadoop和Spark的重点是在数据的存储和任务调度,R的重点是数据分析引擎。数据拉取组件和流程则是NiFi的主要强项。
一、NiFi是什么?
Apache NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统。Apache NiFi 是为数据流设计。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。NiFi原来是NSA的一个项目,现在开源出来,由Apache基金会进行管理。
NiFi是基于Java的,使用Maven支持包的构建管理。 NiFi基于Web方式工作,后台在服务器上进行调度。可以为数据处理定义一个流程,然后进行处理,后台具有数据处理引擎、任务调度等组件。
二、NiFi的安装
首先需要安装maven和java的最新版,在Ubuntu上的OpenJDK会遇到遇到一些问题,因此建议从Oracle的官网http://java.com去下载,而且要SDK而不是jre。解压后到/etc/profile文件中设置JAVA_HOME的路径,以便让其它的程序能访问到。然后安装maven,ubuntu15.04的maven版本也都太久了,到http://maven.apache.org/去下载一个最新的版本,然后设置MAVEN_HOME的路径,并加到PATH环境变量中。设置完了后,看起来是这个样子:
export JAVA_HOME=/home/supermap/jdk1.8.0_51 export MAVEN_HOME=/home/supermap/GIScript/apache-maven-3.3.3 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
现在,到http://nifi.apache.org/去下载NiFi的安装程序。由于NiFi采用maven进行包管理,因此编译过程中会自动下载大量的支持库,需要保持网络畅通。如果中间出错,一般是网络连接中断引起的,重新运行编译即可。
三、NiFi的使用
运行(为了让环境变量有效,最好重启一下系统):
mvn clean install
然后,等待...等结束后,进/home/supermap/GIScript/nifi-0.2.1/nifi-assembly/target,找到nifi-XXX-bin.zip这个文件,拷贝到自己的运行目录,解压,进去,执行:
./bin/nifi.sh start
然后,通过浏览器访问地址:http://localhost:8080/nifi/,正常情况下,就能看到NiFi的主界面了。
停止服务使用:./bin/nifi.sh stop
目前的版本是0.2.X,还不算很成熟,但是考虑到在NSA已经使用,应该还是有一定的可用性的,只是目前的文档和教程都还很少,主要通过阅读源代码来理解程序的逻辑。