Вопрос
Почему я не могу подключиться к HiverServer2 с пользователем ubuntu
, хотя с пользователем hadoop
все в порядке?
Краткий
Я создал пользователя hadoop
на машине в качестве namenode, где его ОС — Ubuntu 18.04.5 LTS, и создал кластер Hadoop с 4 работниками.
Hadoop 3.3.0
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r aa96f1871bfd858f9bac59cf2a81ec470da649af
Compiled by brahma on 2020-07-06T18:44Z
Compiled with protoc 3.7.1
From source with checksum 5dc29b802d6ccd77b262ef9d04d19c4
This command was run using /opt/hadoop-3.3.0/share/hadoop/common/hadoop-common-3.3.0.jar
Затем я создал Hive с Derby в режиме сервера на кластере.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apache-hive-3.1.2-bin/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop-3.3.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive 3.1.2
Git git://HW13934/Users/gates/tmp/hive-branch-3.1/hive -r 8190d2be7b7165effa62bd21b7d60ef81fb0e4af
Compiled by gates on Thu Aug 22 15:01:18 PDT 2019
From source with checksum 0492c08f784b188c349f6afb1d8d9847
Вот что я пытался выполнить.
$ beeline
beeline> !connect jdbc:hive2://master:10000 APP ${password}
Когда я выполнил hadoop
, я получил успешное сообщение.
Connecting to jdbc:hive2://master:10000
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Когда я выполнил ubuntu
, я получил сообщение об ошибке.
WARN jdbc.HiveConnection: Failed to connect to master:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000:
Failed to open new session: java.lang.RuntimeException:
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
User: hadoop is not allowed to impersonate APP (state=08S01,code=0)
Я пытался изменить core-site.xml
и hive-site.xml
, как указано в neeraj в AuthorizationException: пользователь не разрешен чтобы выдать себя за пользователя, но я все еще получаю то же сообщение об ошибке.
Это то, что я добавил к core-site.xml
и hive-site.xml
.
<!--core-site.xml-->
<!--This addition is done in the master node and every worker-->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<!--hive-stie.xml-->
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
<description>Impersonate the connected user, default true.</description>
</property>