elasticsearch,apache-flink,Scala,Apache Spark,elasticsearch,Apache Flink" /> elasticsearch,apache-flink,Scala,Apache Spark,elasticsearch,Apache Flink" />

Scala 我是否使用了正确的框架?

Scala 我是否使用了正确的框架?,scala,apache-spark,elasticsearch,apache-flink,Scala,Apache Spark,elasticsearch,Apache Flink,我是scala/flink/spark的新手,有几个问题要问。 现在scala和flink正在使用 数据流的总体思路如下: csv文件->flink->弹性->flink(流程数据)->MongoDB->表格 有大量以分号分隔的日志文件。 我想将这些文件写入elasticsearch作为我的数据库。(这已经起作用了) 现在需要各种分析(如一致性报告/生产率报告)。 对于这些报告,需要不同类型的列 其想法是使用flink从elasticsearch导入基础数据,编辑数据并将其保存到mongodb中

我是scala/flink/spark的新手,有几个问题要问。 现在scala和flink正在使用

数据流的总体思路如下:
csv文件->flink->弹性->flink(流程数据)->MongoDB->表格

有大量以分号分隔的日志文件。 我想将这些文件写入elasticsearch作为我的数据库。(这已经起作用了)
现在需要各种分析(如一致性报告/生产率报告)。 对于这些报告,需要不同类型的列

其想法是使用flink从elasticsearch导入基础数据,编辑数据并将其保存到mongodb中,以便使用tableau实现数据可视化

编辑将包括添加其他列,如工作日和不同状态的开始/结束时间

// +-------+-----+-----+  
// | status|date |time |  
// +-------+-----+-----+  
// | start | 1.1 |7:00 |  
// | run_a | 1.1 |7:20 |  
// | run_b | 1.1 |7:50 |  
// +-------+-----+-----+  


// +-------+-------+-------+----+  
// | status|s_time |e_time |day |  
// +-------+-------+-------+----|  
// | start | 7:00  |7:20   | MON|  
// | run_a | 7:20  |7:50   | MON|  
// | run_b | 7:50  |nextVal| MON|  
// +-------+-------+-------+----+  
经过一点研究,我发现flink没有提供使用elastic作为数据源的可能性。 有一个github项目,但已经有一年多没有更新了。这似乎不能正常工作,因为它给我的点击率比我在kibana用同样的查询得到的要少。 还有其他选择吗?为什么默认情况下不支持这一点

这些表格转换可以通过flink实现吗?和弗林克一起做有意义吗?(因为我很难实现这些目标)


我是否为这个项目使用了正确的框架?既然spark提供了更多的功能/社区项目,我是否应该改用它?

首先,如果你的目标仅仅是使用日志(强大的搜索、可视化、存储)进行处理,你就不能重新发明轮子并使用它 你将获得下一个技能-

  • 带有
    Logstash的数据收集和日志解析引擎
  • 使用Kibana进行分析和可视化
  • Elasticsearch
    类似搜索引擎
  • 与云无缝集成(AWS或)
但是这个软件是共享软件,你不能在免费版本中使用全部功能,我可以从我的个人经验中说,试用版适合在生产中使用,它确实让生活更轻松

如果您想制作自己的定制管道用于存储、转换和处理日志或其他文件,Apache Spark
是用于此目的的绝佳解决方案-您可以使用
Spark
ETL
这样的解决方案来处理您想要的一切-构建数据管道非常简单(
从elasticsearch读取
-->
处理它
-->
保存到mongo
从mongo获取
-->
发送到可视化
等)-您可以(与早期版本的Spark相比)利用Spark 2.0


此外,集成
Spark-Mongo-ES
已经准备就绪,或者您可以通过使用和的连接器来创建自己的。关于
Flink
,您可以使用它来代替
Spark
,但
Spark
是更成熟的技术,并且拥有更广泛的社区。与替代方案一样,您可以使用ETL解决方案来快速开发系统之间的设备/原型数据流(用鼠标拖动必要的组件)喜欢或。

Spark应该是一个不错的选择。Spark更稳定,库也更丰富。谢谢flink。谢谢你详尽的回答。我非常感谢。我将研究Spark并尝试执行我的任务。据我的理解,我不需要将elasticsearch hadoop作为一个依赖项添加。不应该导入Elastic如果我没有安装hadoop,ticsearch-spark-20就足够了吗@rukavitsya@user2811630当然,您可以在没有Hadoop的情况下使用Spark(例如,Spark在S3上运行良好,而Mesos在没有Hadoop的情况下运行良好),这取决于您使用什么连接器,是的,使用elasticsearch Spark就足够了