使用Apache NiFi和Apache Kafka实现从REST到Hive的流式使用案例
第1部分
使用Apache Kafka 2.0和Apache NiFi 1.8,有许多新功能和新功能即将推出。是时候对它们进行测试了。
因此,为了规划我们将要做的事情,我有一个高级架构图。我们将提取许多来源,包括REST提要,社交资源,消息,图像,文档和关系数据。
我们将使用NiFi进行摄取,然后对其进行过滤,处理并将其细分为Kafka主题。Kafka数据将采用Apache Avro格式,并在Hortonworks Schema Registry中指定模式。Spark和NiFi将进行额外的事件处理以及机器学习和深度学习。这将存储在Druid中,用于实时分析和摘要。Hive,HDFS和S3将存储数据以进行永久存储。我们将使用Superset和Spark SQL + Zeppelin执行仪表板。
我们还将通过Kafka和NiFi向用户推送清理和汇总的数据。我们将推送到Dockerized应用程序,消息监听器,Web客户端,Slack通道和电子邮件列表。
为了在我们的企业中发挥作用,我们将通过Apache Ranger,Apache Atlas和Apache NiFi进行完全授权,身份验证,审计,数据加密和数据沿袭。NiFi Registry和GitHub将用于源代码控制。
我们将通过Apache Ambari提供管理功能。
示例服务器布局:
NiFi流量
IEX提供实时免费库存数据,无需许可证密钥。数据流速度非常快,幸好Apache NiFi和Kafka没有问题。
从主题中获取不同的记录并在单独的目录和表中存储到HDFS。
让我们将一个大的REST文件拆分成感兴趣的单个记录。我们的REST源包含引号,图表和新闻数组。
让我们把一些消息推到Slack
我们可以轻松地使用Apache NiFi中的多个主题。
由于我们有模式,因此在运动时查询数据很容易
我们为每个Kafka主题创建模式。
我们可以监控在Ambari中通过Kafka传递的所有这些消息(以及在Hortonworks SMM中更详细的信息)。
我读入数据然后可以将它推送到Kafka 1.0和2.0经纪人。
一旦发送数据,NiFi就会让我们知道。
使用的项目
- Apache Kafka
- Apache NiFi
- 阿帕奇德鲁伊
- Kafka上的Apache Hive
- Apache Hive on Druid
- JDBC上的Apache Hive
- Apache Zeppelin
- NLP - Apache OpenNLP和Stanford CoreNLP
- Horotnworks Schema Registry
- NiFi注册表
- Apache Ambari
- 日志搜索
- Hortonworks SMM
- Hortonworks数据平面服务(DPS)
来源
休息
水槽
- Apache Hadoop HDFS
- Apache Kafka
- Apache Hive
- 松弛
- S3
- 阿帕奇德鲁伊
- Apache HBase
话题
- iextradingnews
- iextradingquote
- iextradingchart
- 个股
- 网络
HDFS目录
hdfs dfs -mkdir -p / iextradingnews
hdfs dfs -mkdir -p / iextradingquote
hdfs dfs -mkdir -p / iextradingchart
hdfs dfs -mkdir -p / stocks