需要建议,将消息从JMS Queue保存到Hadoop Hbase是一个很好的解决方案吗?

时间:2016-10-12 23:59:46

标签: java hadoop architecture hbase message-queue

我是Hadoop世界的新手,我的任务是研究解决方案,将我们当前的JMS队列中的数据提取到我们的Hadoop集群中。

到目前为止,我一直希望成为一名数据摄取专家......我已经在网上浏览了几周的书籍和教程。我设法编写了一个简单的Java服务,它可以监听我们的一个队列,并简单地将传入的消息写入HBase HTable。

完成此概念验证后,我有几个问题,我想问社区/ Hadoop / Hbase /数据提取专家。在我问之前让我先描述一下我的场景/范围。

  • 我们每天从JMS Queue
  • 收到大约30,000封邮件
  • 这些消息是JSON对象,每个对象的范围可以从1 MB到20 MB
  • 需要接近实时
  • 我们希望不断将这些消息保存到Hadoop中,以便将来的分析和历史参考
  • 我们不需要解析收到的消息,只需存储它们即可。 (目前的思路是编写另一个服务,它将解析这些消息,并在以后将它们保存到正确的模式中。原因=在消息摄取过程中没有瓶颈)

用我的"概念证明" Java服务,它可以工作,但我不知道这个解决方案是否适用于我的情况,特别是在生产环境中。

  1. 对于我的案例场景,这是一个很好的方法/解决方案吗?
  2. 如果没有,其他什么技术都适合我尝试做的事情?
  3. 是否使用HBase进行过度杀伤?
  4. 在一个单元格中节省高达20 MB的好主意?特别是如果我们计划在没有清除的情况下连续向此表附加消息?
  5. 感谢任何意见,谢谢!

1 个答案:

答案 0 :(得分:0)

  

对于我的案例场景,这是一个很好的方法/解决方案吗?   如果没有,那么其他什么技术将非常适合我尝试做的事情?

Flume可以是另一种选择。它提供了jms源和HBase / Hive接收器。

  

是否使用HBase进行过度杀伤?

如果根据您的日常输入,在一段时间内消息的数量很多,则可能不是。 如果您计划再将其解析到另一个商店,那么在HBase中存储邮件的目的是什么 根据您的需要,另一个服务(例如,mapreduce)可以使用jms消息,处理它并输出到您正在考虑的最终目的地而不是HBase。除非您需要长期存储原始邮件。