Nifi是什么
内容介绍
一、NIFI的概念
二、总结
本课题讲解内容是学习Nifi工具软件。在学习工具软件之前。都了解了Uzi、scoop等等,这些软件工具在做数据仓库、大数据系统时经常会使用。如果掌握了NIFI以后,这些工具可以不使用。目前NIFI在国内基本没有任何资料,整理这个课程是通过翻墙,在国外的网站上去进行NIFI的学习和知识的搜集。
本课程是国内第一个NIFI课程。目前国内的一些大公司都在使用NIFI,但是因为NIFI资源的问题,获取难度比较大,所以在小公司中掌握的比较少。学习NIFI之后,就可以将NIFI应用在实际工作过程中,提高工作效率,减少服务器以及工作流程不稳定性。
一、NIFI的概念
阿帕奇NIFI是一个容易使用,而且功能强大、稳定性很高的系统,主要用来处理和分发数据,可以自动化管理不同系统之间的数据流,而且拥有高度可配置的图形化管理界面,用来实现数据路由、数据转换以及系统中介,而且Nifi支持从多种不同的数据,来动态的抓取数据,这些数据源包含了MySql、oracle、SQL server等。NIFI本来是nsa的项目,目前已经代码开元,属于阿帕奇基金会的顶级项目之一。
NIFI是基于Java开发的,所以对于Java开发人员来说比较友好,也能使用maven做构建管理等常用技术。NIFI是基于外部方式来工作的,是bs结构,不需要单独再去安装客户端后台,在服务器上进行调度,类似于加入web,用户可以将数据处理它定义成完整的流程,执行这个流程,就可以实现数据引擎的调度以及整个任务链的处理, NIFI是为了解决不同系统之间,数据的自动流通问题而建立的,涉及到术语概念:dataflow数据流。在很多场景都会被使用。在NIFI当中主要是用来表示不同系统之间的自动化的可管理的信息流。
自从数据企业拥有了很多个系统以后,会有数据的生成系统,也会有系统要去消费这些数据,不同系统之间数据的流吞,就会产生问题。解决方案已经有很多。例如,企业集成eip系统全面的解决数据集成问题。而且也有很多软件实现专门处理数据的抽取,路由以及数据的转换等功能,但是这些软件都会存在各种各样的问题,或者对大数据量的支持不够,不方便使用。或者功能不够灵活、不够强大,大部分软件都不支持扩展,但是NIFI却可以很好的解决遇到的问题。对俘虏数据流,具体面临了以下挑战:
1.Systems fail
系统调用失败。数据集成会面临着各种各样的问题,例如网络故障,或者硬件磁盘故障,软件故障,软件崩溃或人为事故,因为以上原因而导致系统集成调用的失败。
2.Data access exceeds capacity to consume
数据访问超出系统的消耗能力。给数据包括抽取的数据较大时,支撑不了数据转换。
3.Boundary conditions are mere suggestions
数据超出边界。例如数据对象太大或太小,抽取太快或太慢以及有数据损失,格式不正确等。灵活控制以及功能性的方面的问题。
4.What is noise one day becomes signal the naxt
实际的业务变更很快,如果使用起来不方便,或者需要重新书写代码,就会导致响应不够迅速。NIFI可以很好的解决这个问题5.Systems evolve at different rates
另外系统使用协议和数据格式,可能会经常变化,格式每个系统都是不一样的。如何处理不同系统之间数据格式的问题以及交互协议的问题,也是面临的挑战。
6.Compllance and securlty
数据的安全性问题,系统和软件的安全性问题,个别软件和系统可能没有权限管理这方面的管理。
7.Continuous improvement occurs in production
数据迁移性的问题,例如在开发环境运行之后,完成数据抽取以及转换统计分析等过程,到测试环境时,还需要重新完整的部署一遍。测试环境到生产环境的改变就会很大,工作量也会很大。此时使用NIFI会更方便,使整个完整流程快速迁移。对于面临的挑战,dataflow是引起问题的核心,现在有很多活跃的技术来解决这些问题,包括工具软件、SPA代码。如何选择所使用的技术,例如soa或API接口以及iot、大数据。如果只能在内网使用,一旦公开到外网以后,是否涉及到数据包的抓取。虽然新应用软件有很多,但是对数据流处理所面临这些挑战,一直都没有很好解决。Nifi可以完美的解决所面临的这些挑战。
二、总结
NIFI 是用来处理数据集成场景的数据分发的工具,是bs结构的图形化工具。解决的问题以下方面:
1.可以解决系统故障导致调度失败的问题,也是高可用
2.可以解决高并发而导致的流程问题,也是高性能、高并发
3.对于错误类型过大、过慢、过快等以及错误数据,可以方便的提示错误数据,相当于错误纠缠
4.对于现实业务需求的变更,能够快速的响应
5.不同系统之间的数据格式可以进行兼容,兼容各种数据格式
6.安全性比较高
7.方便的在测试环境和生产环境当中进行迁移
以上是NIFI的核心概念。