我目前正在尝试进入数据工程,我认为最好的方法是获得对Hadoop堆栈的基本了解(使用Cloudera快速入门VM /参加教程),然后尝试构建自己的项目。我想构建一个数据管道,用于提取twitter数据,将其存储在HDFS或HBASE中,然后对存储的数据运行某种分析。我也希望我使用实时流数据,而不是历史/批量数据。我的数据流看起来像这样:
Twitter Stream API --> Flume --> HDFS --> Spark/MapReduce --> Some DB
这看起来像是引入我的数据并进行分析的好方法吗?
另外,你们怎么建议我主持/存储所有这些?
在AWS ec2上有一个实例可以让hadoop运行吗?或者我应该在桌面上的本地虚拟机中运行它?
我计划只启动一个节点集群。
答案 0 :(得分:1)
首先,Spark Streaming可以从Twitter读取,而在CDH中,我相信这是首选的流媒体框架。
你的管道是合理的,虽然我可能建议使用Apache NiFi(在Hortonworks HDF发行版中),或者根据我的理解,可以轻松安装在CDH中的Streamsets。
请注意,这些操作完全独立于Hadoop。提示:Docker与它们配合得很好。 HDFS和YARN实际上是我依赖预先配置的VM的唯一复杂组件。
Nifi和Streamsets都为您提供了一个用于将Twitter连接到HDFS和其他数据库的下拉UI。
Flume可以工作,一个管道很容易,但它在其他流媒体平台的水平上还没有成熟。就个人而言,我喜欢Logstash - >卡夫卡 - > Spark Streaming管道更好,例如因为Logstash配置文件更好用(Twitter插件内置)。卡夫卡使用了大量工具。
您也可以尝试使用Kafka Connect进行Kafka,或者使用Apache Flink进行整个管道。
主要内容,你可以在这里绕过Hadoop,或至少有这样的东西
created_at
关于在本地运行与否,只要您在云提供商处支付空闲时间就可以了,请继续。