我的环境是spark独立群集。我需要启用hive thrift服务器以允许JDBC访问镶木地板文件。同时我需要启动一个java应用程序(即使用HiveContext),而thrift服务器正在运行,以在同一镶木地板文件中加载一些数据。我已经基于DERBY(默认)和由mysql数据库管理的Metastore进行了我的实验。我遇到的问题几乎是一样的。如果thrift服务器正在运行,java应用程序将获得0个内核,因此它正在等待thrift服务器关闭(然后java应用程序关闭它正确处理),而如果应用程序正在运行,则thrift服务器甚至无法启动。事实上,thrift服务器获得尽可能多的内核,并尽可能多地引用尽可能多的工作线程,而不是让其他应用程序获取资源。是否可以减少分配给thrift服务器的nr工作进程?显然,没有特定的配置来管理此参数。
我认为这不是一个问题。因为我可以添加更多内核,结果是相同的。
你能就这个话题向我提出建议吗? 非常感谢。
答案 0 :(得分:4)
将这两个参数放在spark-conf文件夹中的spark-defaults.sh中,这些参数用于为1个应用程序提供最大资源。
spark.cores.max=max number of cores(ex. 2)
spark.executor.memory=max memory allowed(ex. 2024M)
或者您可以尝试在纱线模式下运行火花。