【发布时间】:2018-04-08 05:43:27
【问题描述】:
我正在尝试在 hadoop 集群(BigInsight 4.1 发行版)上创建 hive 表作为我的 spark(1.5.1 版本)作业的输出,并且面临权限问题。我的猜测是 spark 使用默认用户(在本例中为“yarn”而不是作业提交者的用户名)来创建表,因此无法这样做。
我尝试自定义 hive-site.xml 文件以设置一个经过身份验证的用户,该用户有权创建 hive 表,但这不起作用。
我也尝试将 Hadoop 用户变量设置为经过身份验证的用户,但它也不起作用。
我想避免保存 txt 文件,然后创建 hive 表来优化性能并通过 orc 压缩减小输出的大小。
我的问题是:
- 有没有办法调用spark dataframe api的write函数 与指定用户?
- 是否可以使用 oozie 的工作流文件选择用户名?
- 有没有人有其他想法或曾经遇到过这个问题?
谢谢。 哈塔克!
【问题讨论】:
-
是的,oozie 允许您设置用户名,但是,hive-site 应设置为支持用户模拟。
-
非常感谢。根据您的回答,我发现必须在 hive-site.xml 中将属性“hive.server2.enable.doAs”设置为 true。但我认为这必须在位于集群上的 xml 上完成,而不是嵌入在我的 java 类路径中的那个,对吧?
-
据我所知,两个地方都需要设置。一个告诉服务器将用户信息传递给磁盘。另一个告诉客户端将其传递给服务器。顺便说一句,默认值为true
标签: hadoop apache-spark hive hivecontext