2016-09-20 124 views
3

我已经开发了PHP中的报告应用程序。该应用程序是用HTML,CSS,JavaScript库,图表库(Highcharts)& MySQL来存储数据。用户在前端选择一些选项&点击“提交按钮”。然后PHP层执行一堆所需的SQL &将json结果发送回绘制数据表的图表&的UI。Apache Spark - 后端服务器

现在的需求是,能够将Apache Spark的大数据解决方案插入到现有应用程序中。我一直在研究最近2周,如果我可以在某种程度上使用REST API或某种Spark SQL驱动程序插入PHP应用程序来连接到Spark SQL服务器&执行我现在拥有的同一组SQL Spark SQL。我还没有找到解决方案。我现在已经开始研究基于Java的技术,比如Spring,其他的如Angularjs,Nodejs的其他MVC框架从头开始重写项目。我并不是Java开发人员的粉丝,因为我不是一名核心开发人员(我创建了一些方便的工具来完成任务)。

我的确看过这个 - https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-PHP,但看起来像是独立的火花安装。我在处理一个庞大的群集。

我非常感谢这里的任何方向。

回答

3

是的,它可以通过使用蜂巢背景下,引发火花应用程序SQL节俭服务器来完成。

你可以运行你的应用程序的火花,并完成所有的处理。处理完后,如果您使用的是数据框,则必须将其注册为临时表。

现在你可以开始从火花应用旧货服务器。

开始节俭服务器后,您可以查询临时表,并得到使用PHP正确的JDBC潜水员结果和见解。

参考更多详细信息 https://medium.com/@anicolaspp/apache-spark-as-a-distributed-sql-engine-4373e254e0f9#.ekc3cs28u

+0

我不认为您可以使用Spark Thrift Server(STS)查询在另一个Spark应用程序中创建的临时表。您需要保存数据以供其他人查看。 –

+0

它的工作原理你只需要注册数据帧到临时表,而不是使用spark sql上下文,你需要使用配置单元上下文。我一直在使用它来整合Spark到Web服务。 –

+0

谢谢卡迈勒。非常感谢您的帮助。 – usert4jju7

1

您是否在使用任何特定群集,如cloudera或hortonworks?

对于Cloudera,您应该使用Impala和相应的JDBC驱动程序。 在HDP中,您应该使用Spark Thrift Server和相应的JDBC驱动程序。

+0

感谢阿燕下面的链接。感谢您在 – usert4jju7

2

这可能不是你想要的。但是如果你考虑使用Scala来构建它。这是一个可能的解决方案。

  • 拥有一个使用Spark standalone或连接到群集的Web服务器。
  • 使用spark-highcharts以高位图绘制Spark DataFrame
  • 编写一些代码,它接受来自web的某些选项并让它在后端Web服务器中执行。
+0

的投资感谢Rockie。感谢您的努力 – usert4jju7