我在玩Livy / Spark,对如何使用其中的一些东西有些困惑。在livy examples文件夹中有一个示例,该示例显示建筑作业被上传到spark。我喜欢正在使用的接口,但是我想通过http接口到livy / spark,因为我没有Java客户端。这样看来,如果我使用livyclient上传jar,它仅存在于该spark会话中。有没有一种方法可以将livyjobs上传到spark,然后在所有spark中都保持不变?改而使这些工作/应用程序发光起来会更好吗?
老实说,我正在尝试找出最好的方法。我希望能够通过Shell进行交互操作,但是我也想为那些我经常使用的火花中不可用的算法进行自定义作业。我不确定应该采取什么方式解决这个问题。有什么想法吗?我应该如何使用Livy?就像其他服务可以触发,然后处理在火花中构建自定义应用程序/方法一样吗?
例如:
假设我有一些javascript应用程序,并且有一些数据可以加载,并且我想在上面运行算法x。算法x是在Spark中实现的还是未实现的,但是通过按下该按钮,我希望将数据导入spark,无论是将其放入hdfs还是从elasticsearch或其他方法中提取。如果我有livy,我想在livy中调用一些rest命令来执行此操作,然后它运行该特定算法。这样做的标准方法是什么?
谢谢
最佳答案
Livy目前不支持文件上传。您必须为会话或批处理作业提供有效的文件路径。这些文件必须在HDFS中。
因此,主要是,您可以将脚本或文件保留在HDFS中,然后使用Livy启动引用这些文件的批处理/交互式作业。
Livy-Cloudera
Livy-Apache
编辑:Apache正在孵化Livy,他们正计划添加新的API以支持资源上传。检查this。
关于java - 通过http运行livy作业,而无需每次都上传jar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50300349/