我正在使用Apache Spark For Big数据处理。数据从Flat文件源或JDBC源加载到Data框架。作业是使用spark sql从数据框中搜索特定记录。
所以我必须一次又一次地运行这项工作以获得新的搜索条件。每次我必须使用spark submit提交Jar文件以获得结果。 由于数据大小为40.5 GB,因此每次将相同数据重新加载到数据框以获取不同查询的结果会变得很繁琐。
所以我需要的是,
- 一种方法,如果我可以在数据框中加载一次数据并多次查询而不多次提交jar?
- 如果我们可以使用spark作为搜索引擎/查询引擎?
- 如果我们可以将数据加载到数据框一次并使用RestAP远程查询数据框
> My Spark部署的当前配置是
- 5节点集群。
- 在纱线上运行。
我曾尝试使用spark-job服务器,但每次都会运行该作业。
答案 0 :(得分:3)
您可能对HiveThriftServer和Spark集成感兴趣。
基本上你启动一个Hive Thrift Server并从SparkContext注入你的HiveContext构建:
> links
list()
有几个客户端库和工具可以查询服务器: https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients
包括CLI工具 - beeline
参考: https://medium.com/@anicolaspp/apache-spark-as-a-distributed-sql-engine-4373e254e0f9#.3ntbhdxvr
答案 1 :(得分:0)
您还可以使用spark + kafka流式集成。只是你必须通过kafka发送你的查询以获取流式API。如果它的简单性,一种设计模式在市场中快速增长。
在查找数据上创建数据集。
通过Kafka启动Spark流式查询。
从您的Kafka主题获取sql
对已创建的数据集执行查询
这应该照顾你的用例。
希望这有帮助!