我正在使用 Livy 通过创建运行良好的 jar 文件并在 HDFS 中写入输出来运行 wordcount 示例。现在我想将结果返回到我的 HTML 页面。我正在使用 Spark scala、sbt、HDFS 和 Livy。
GET/batches REST API 仅显示日志和状态。
如何获得输出结果?
或者如何在 Livy 中使用 REST API 读取 HDFS 中的文件?这个你能帮我吗。
提前致谢。
我正在使用 Livy 通过创建运行良好的 jar 文件并在 HDFS 中写入输出来运行 wordcount 示例。现在我想将结果返回到我的 HTML 页面。我正在使用 Spark scala、sbt、HDFS 和 Livy。
GET/batches REST API 仅显示日志和状态。
如何获得输出结果?
或者如何在 Livy 中使用 REST API 读取 HDFS 中的文件?这个你能帮我吗。
提前致谢。
您可以在 REST 调用中使用 WebHDFS。首先由您的管理员启用 WebHDFS。
然后使用缓冲区阅读器获取输入流。
如果您使用 curl 检查批次的状态,您将获得 Livy 批处理作业的状态,该状态将显示为已完成(如果 spark 驱动程序已成功启动)。
要读取输出: 1. 您可以使用 paramiko 对运行 hdfs 的机器进行 SSH,然后运行 hdfs dfs -ls / 来检查输出并执行您想要的任务。
curl -vvv -u : :/batches -X POST --data '{"file": "http://"}' -H "Content-Type: application/json"
第一个是获得输出的可靠方法,尽管我不能 100% 确定第二种方法的行为。