Hiveserver2 не удалось открыть новую сессию в билайне

Я использую Hive 2.1.1, Hadoop 2.7.3 на Ubuntu 16.04.

ps aux | grep hive показывает, что hiveserver2 работает.

Я пытаюсь войти с пользователем [hive2] и паролем [password] в hiveever2 через beeline.

Вот мой вывод билайна:

beeline> !connect jdbc:hive2://localhost:10000
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: 
Enter password for jdbc:hive2://localhost:10000: 
17/02/14 13:51:41 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: server is not allowed to impersonate anonymous (state=08S01,code=0)

Я могу подключиться к встроенному режиму, введя !connect jdbc:hive2:// в beeline.

Вот мой файл hive-site.xml:

 <configuration>

     <property>
         <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
     </property>

     <property>
         <name>javax.jdo.option.ConnectionDriverName</name>
         <value>com.mysql.jdbc.Driver</value>
     </property>

     <property>
         <name>javax.jdo.option.ConnectionUserName</name>
         <value>hive</value>
     </property>

     <property>
         <name>javax.jdo.option.ConnectionPassword</name>
         <value>password</value>
     </property>

     <property>
         <name>beeline.hs2.connection.user</name>
         <value>hive2</value>
     </property>

     <property>
         <name>beeline.hs2.connection.password</name>
         <value>password</value>
     </property>

     <property>
         <name>beeline.hs2.connection.hosts</name>
         <value>localhost:10000</value>
     </property>

 </configuration>

Я удалил beeline-hs2-connection.xml на случай, если он перезапишет hive-site.xml.

Вот мой core-site.xml

 <configuration>
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:9000</value>
     </property>

     <property>
         <name>hadoop.proxyuser.centos.groups</name>
         <value>*</value>
     </property>

     <property>
         <name>hadoop.proxyuser.centos.hosts</name>
         <value>*</value>
     </property>

 </configuration>

Как исправить ошибку и подключиться к jdbc:hive2://localhost:10000?

Спасибо!


person Top.Deck    schedule 14.02.2017    source источник
comment
У вас есть proxyuser записи в core-site.xml?   -  person franklinsijo    schedule 14.02.2017
comment
Эй, franklinsijo, я оставляю * в качестве значения. Я добавляю core-site.xml в вопрос.   -  person Top.Deck    schedule 14.02.2017
comment
Под каким пользователем вы пытаетесь войти в билайн? server?   -  person franklinsijo    schedule 14.02.2017
comment
пользователь: hive2, пароль: пароль.   -  person Top.Deck    schedule 14.02.2017
comment
Добавьте этого пользователя как proxyuser в свойствах core-site.xml, hadoop.proxyuser.hive2.groups, hadoop.proxyuser.hive2.hosts и посмотрите, решит ли это проблему. Добавьте эти свойства в дополнение к уже существующим.   -  person franklinsijo    schedule 14.02.2017
comment
Могу ли я просто использовать * в качестве значения для hadoop.proxyuser.hive2.groups и hadoop.proxyuser.hive2.hosts?   -  person Top.Deck    schedule 14.02.2017
comment
да. * в качестве значения подходит, так как это локальная среда.   -  person franklinsijo    schedule 14.02.2017
comment
Я добавил эти свойства в core-site.xml и перезапустил hadoop, hiveserver2. Та же ошибка возникает и в билайне.   -  person Top.Deck    schedule 14.02.2017
comment
Давайте продолжим обсуждение в чате.   -  person franklinsijo    schedule 14.02.2017


Ответы (1)


Пользователь: серверу не разрешено выдавать себя за анонимного

Здесь server — это пользователь, который пытается выдать себя за anonymous пользователя.

Добавьте эти свойства в core-site.xml и перезапустите службы.

<property>
     <name>hadoop.proxyuser.server.hosts</name> 
     <value>*</value> 
</property> 
<property>
     <name>hadoop.proxyuser.server.groups</name>
     <value>*</value>
</property>
person franklinsijo    schedule 14.02.2017
comment
Франклинсио, ты на самом деле тратишь почти 2 часа на то, чтобы помочь мне! Очень ценю! - person Top.Deck; 15.02.2017