NiFi-面向流程的大数据处理框架

转载:https://my.oschina.net/u/2306127/blog/491176

任何一个大数据分析的软件,都需要一个强大的数据拉取组件、数据仓储系统、数据处理引擎、任务调度引擎和流程设计界面。Hadoop和Spark的重点是在数据的存储和任务调度,R的重点是数据分析引擎。数据拉取组件和流程则是NiFi的主要强项。

 

一、NiFi是什么?

Apache NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统。Apache NiFi 是为数据流设计。它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。NiFi原来是NSA的一个项目,现在开源出来,由Apache基金会进行管理。

 

NiFi flow

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

或者:mvn install -Dmaven.test.skip=true

如果使用代理:

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

然后,等待...等结束后,进/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

目前的版本已经到1.1.X了,功能已经相当强大,但是目前的中文文档和教程都还很少,主要通过阅读源代码来理解程序的逻辑。英文还可以的,看这里:

 

 

官网:http://nifi.apache.org/docs.html

什么是Apache NiFi?

简而言之,NiFi旨在自动执行系统之间的数据流。虽然“数据流”一词在多种情况下使用,但我们在这里使用它来表示系统之间的自动化和托管信息流。自从企业拥有多个系统以来,就一直存在这个问题空间,其中一些系统创建了数据,而某些系统使用了数据。出现的问题和解决方案已被广泛讨论和阐明。在企业集成模式 [eip]中找到了一种全面且易于使用的形式。

数据流的一些高级挑战包括:

系统故障

网络故障,磁盘故障,软件崩溃,人为失误。

数据访问超出了消耗能力

有时,给定的数据源可能会超过处理或交付链的某些部分-只需一个弱链接即可解决问题。

边界条件仅是建议

您将始终获得太大,太小,太快,太慢,损坏,错误或格式错误的数据。

一天是什么噪音,第二天成为信号

组织的优先级快速变化。启用新流程和更改现有流程必须很快。

系统以不同的速度发展

给定系统使用的协议和格式可以随时更改,并且通常与周围的系统无关。存在数据流来连接本质上是大规模分布的组件系统,这些组件是松散的或根本不是一起工作的。

合规性与安全性

法律,法规和政策会发生变化。企业对企业协议会发生变化。系统到系统以及系统到用户的交互必须是安全的,可信任的,负责的。

生产中不断改进

通常不可能接近实验室中的复制生产环境。

多年来,数据流一直是架构中的那些必不可少的弊端之一。现在,尽管有许多活跃且迅速发展的运动使数据流变得更加有趣,并且对给定企业的成功也至关重要。这些包括:面向服务的体系结构[soa],API [api] [api2]的兴起,物联网[iot]和大数据[bigdata]。此外,合规性,隐私性和安全性所必需的严格程度也在不断提高。即使所有这些新概念都应运而生,数据流的模式和需求仍然大致相同。那么主要的区别是复杂性的范围,适应所必需的变化率以及在规模上边缘情况变得普遍。NiFi旨在帮助解决这些现代数据流挑战。

 

NiFi架构

NiFi架构图

 

NiFi还可以在集群中运行。

NiFi群集架构图

从NiFi 1.0版本开始,采用了零主群集的范例。NiFi群集中的每个节点都对数据执行相同的任务,但是每个节点都对不同的数据集进行操作。Apache ZooKeeper选择一个节点作为集群协调器,并且故障转移由ZooKeeper自动处理。所有群集节点均向群集协调器报告心跳和状态信息。群集协调器负责断开和连接节点。此外,每个群集都有一个主节点,该节点也由ZooKeeper选择。作为DataFlow管理器,您可以通过任何节点的用户界面(UI)与NiFi群集进行交互。您所做的任何更改都将复制到群集中的所有节点,从而允许多个入口点。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值