我想做一个项目,在Hive中流式传输一些推文来分析它们,所有这些过程都必须在HDF/NiFi中完成。项目必须具有可扩展性。我在Cloudera网站上看到,人们采用了两种不同的流量策略。
1.(获取推特--->将其放入HDFS--->使用Hive 进行分析
2.(获取推特--->使用Kafka流式传输(发布/消费者(--->放入HDFS--->使用Hive 分析
所以,我的问题是有什么区别?第一种策略不可扩展?你会采取哪种策略?非常感谢。
这一切都取决于您的维护负担。
Hadoop、YARN、Kafka和Nifi都是独立的服务,需要大量的调优和配置。除了Twitter接收之外,每个组件都是可独立扩展的。
您可以使用Kafka作为HDFS前面的一种缓冲区,用于在登录到任何文件系统之前对tweet进行批处理。此外,您可以稍后将推文流式传输到Elasticsearch或Solr中进行搜索,而不是在Hadoop 中进行批量分析
为了更快的查询,请使用Presto、Kudu、Spark或Impala,而不是Hive