如何通过蜂巢编码模拟用户
How to impersonate user through coding for hive
我们正在研究 storm 和 hive 集成,其中 strom 将通过 hive 将数据写入 HDFS。但是,由于我们部署的拓扑是由 strom 运行(用户在 运行 storm 拓扑的集群上创建的)。然而,蜂巢没有像 storm 这样的用户,我们不想创建它(出于某些原因)。它失败并出现以下异常
org.apache.hadoop.security.AccessControlException: Permission denied: user=strom, access=WRITE, inode="/user/tales/table":hdfs:hdfs:drwxr-xr-x
用户 X 已创建 table。
我知道这种情况可以通过
解决
http://doc.mapr.com/display/MapR/Hive+User+Impersonation - 使用这个我们可以从配置单元配置中模拟用户
或
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
禁用用户授权。
您是否知道任何方式,我们可以在写入 Hive 时通过 java 代码模拟用户 X table?
MapR post 是关于一个不同的问题:HiveServer2 (JDBC 服务) 代表远程客户端运行查询,这是真实的 client/server 模仿(如 runAs
)。
在你的情况下,这更像是伪造另一个身份。或者使用头像。 [在这里插入你喜欢的类比]无论如何:
- 在安全集群上,您将为用户 X 创建 Kerberos 票证
- 否则
HADOOP_USER_NAME
是要走的路,作为 Java 属性 或环境变量;例如参见 [=12=]
我们正在研究 storm 和 hive 集成,其中 strom 将通过 hive 将数据写入 HDFS。但是,由于我们部署的拓扑是由 strom 运行(用户在 运行 storm 拓扑的集群上创建的)。然而,蜂巢没有像 storm 这样的用户,我们不想创建它(出于某些原因)。它失败并出现以下异常
org.apache.hadoop.security.AccessControlException: Permission denied: user=strom, access=WRITE, inode="/user/tales/table":hdfs:hdfs:drwxr-xr-x
用户 X 已创建 table。 我知道这种情况可以通过
解决http://doc.mapr.com/display/MapR/Hive+User+Impersonation - 使用这个我们可以从配置单元配置中模拟用户
或
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
禁用用户授权。
您是否知道任何方式,我们可以在写入 Hive 时通过 java 代码模拟用户 X table?
MapR post 是关于一个不同的问题:HiveServer2 (JDBC 服务) 代表远程客户端运行查询,这是真实的 client/server 模仿(如 runAs
)。
在你的情况下,这更像是伪造另一个身份。或者使用头像。 [在这里插入你喜欢的类比]无论如何:
- 在安全集群上,您将为用户 X 创建 Kerberos 票证
- 否则
HADOOP_USER_NAME
是要走的路,作为 Java 属性 或环境变量;例如参见 [=12=]