Hadoop 2.7、Spark、Hive、JasperReports、Sqoop - 架构
Hadoop 2.7, Spark, Hive, JasperReports, Scoop - Architecuture
首先,这不是一个寻求帮助逐步部署以下组件的问题。我要问的是关于应该如何设计架构的建议。我打算做的是使用现有数据开发一个报告平台。以下是我通过研究收集到的数据。
我有一个包含大量记录的现有 RDBMS。所以我正在使用
- Scoop - 将数据从 RDBMS 提取到 Hadoop
- Hadoop - 存储平台
- Hive - 数据仓库
- Spark - 因为 Hive 更像是批处理 Hive 上的 Spark 会加快速度
- JasperReports - 生成报告。
我所知道的是部署一个Hadoop 2集群如下
- 192.168.X.A - 名称节点
- 192.168.X.B - 第二个名称节点
- 192.168.X.C - 从机 1
- 192.168.X.D - 从机 2
- 192.168.X.E - 从机 3
我的问题是
- 我应该在哪个节点部署Spark? A 或 B,鉴于我想支持故障转移。这就是为什么我在 B 上配置了一个单独的名称节点。
- 我应该在每个实例上部署 Spark 吗?谁是工作节点?
- 我应该在哪个节点部署Hive?有没有比 Hive 更好的替代品?
- 我应该如何连接 JasperReports?去哪里?要 Hive 还是 Spark?
请告诉我一个合适的架构设计方式?请提供详细的答案。
请注意,如果您能提供任何类似性质的技术指南或案例研究,那将非常有帮助。
你已经想通了!我所有的回答都只是一般性意见,可能会根据数据、要执行的操作风格而发生巨大变化。另外,问题暗示此类操作的数据和结果对任务至关重要,我是这么认为的。
Spark on Hive will speed up things
不一定正确。轶事证据,this post (by cloudera), proves the quite opposite. There is actually a move towards the vice-versa, i.e. Hive on Spark。
In which node should I deploy Spark? A or B, Given that I want to support fail-over. That's why I have a separate namenode configured on B.
Should I deploy Spark on each and every instances? Who are the worker nodes should be?
当然 - 在大多数情况下。设A或B为master,其余皆为worker节点。如果您不想在您的体系结构中出现 SPOF,请参阅 high availability section of spark documentation,需要一些额外的工作。
Is there a better alternative to Hive?
这个既是主观的又是针对特定任务的。如果 SQL 查询感觉很自然并且适合任务,还有 Cloudera 推广的 Impala,它声称执行速度和数量级比 Hive 快。但在 Apache Hadoop 生态系统中有点陌生。使用 Spark - 如果您可以很好地输入一些 python 或 scala - 您可以进行 SQL 之类的查询,同时仍然享受这些语言提供的表达能力。
How should I connect JasperReports? And to where? To Hive or Spark?
不知道这个。
首先,这不是一个寻求帮助逐步部署以下组件的问题。我要问的是关于应该如何设计架构的建议。我打算做的是使用现有数据开发一个报告平台。以下是我通过研究收集到的数据。
我有一个包含大量记录的现有 RDBMS。所以我正在使用
- Scoop - 将数据从 RDBMS 提取到 Hadoop
- Hadoop - 存储平台
- Hive - 数据仓库
- Spark - 因为 Hive 更像是批处理 Hive 上的 Spark 会加快速度
- JasperReports - 生成报告。
我所知道的是部署一个Hadoop 2集群如下
- 192.168.X.A - 名称节点
- 192.168.X.B - 第二个名称节点
- 192.168.X.C - 从机 1
- 192.168.X.D - 从机 2
- 192.168.X.E - 从机 3
我的问题是
- 我应该在哪个节点部署Spark? A 或 B,鉴于我想支持故障转移。这就是为什么我在 B 上配置了一个单独的名称节点。
- 我应该在每个实例上部署 Spark 吗?谁是工作节点?
- 我应该在哪个节点部署Hive?有没有比 Hive 更好的替代品?
- 我应该如何连接 JasperReports?去哪里?要 Hive 还是 Spark?
请告诉我一个合适的架构设计方式?请提供详细的答案。
请注意,如果您能提供任何类似性质的技术指南或案例研究,那将非常有帮助。
你已经想通了!我所有的回答都只是一般性意见,可能会根据数据、要执行的操作风格而发生巨大变化。另外,问题暗示此类操作的数据和结果对任务至关重要,我是这么认为的。
Spark on Hive will speed up things
不一定正确。轶事证据,this post (by cloudera), proves the quite opposite. There is actually a move towards the vice-versa, i.e. Hive on Spark。
In which node should I deploy Spark? A or B, Given that I want to support fail-over. That's why I have a separate namenode configured on B. Should I deploy Spark on each and every instances? Who are the worker nodes should be?
当然 - 在大多数情况下。设A或B为master,其余皆为worker节点。如果您不想在您的体系结构中出现 SPOF,请参阅 high availability section of spark documentation,需要一些额外的工作。
Is there a better alternative to Hive?
这个既是主观的又是针对特定任务的。如果 SQL 查询感觉很自然并且适合任务,还有 Cloudera 推广的 Impala,它声称执行速度和数量级比 Hive 快。但在 Apache Hadoop 生态系统中有点陌生。使用 Spark - 如果您可以很好地输入一些 python 或 scala - 您可以进行 SQL 之类的查询,同时仍然享受这些语言提供的表达能力。
How should I connect JasperReports? And to where? To Hive or Spark?
不知道这个。