Hiveserver2/beeswax TSocket read 0 bytes

I installed Hue 4.7.0 and HDP 3.1 using Ambari 2.4.7.

I have tried many days to connect to hive, but I couldn’t solve it.
I guess it is authentication problem… but I didn’t any authentication methods. Furthermore, I can access hiveserver2 via beeswax.

Isn’t it necessary to configure the metastore user and password when accessing Hive from Hue? I can’t find the property.

Can anyone help me?

Hear is Hue log:
[28/Apr/2020 01:48:55 +0000] dbms DEBUG Query via ini beeswax
[28/Apr/2020 01:48:55 +0000] dbms DEBUG Query Server: {‘dialect’: ‘beeswax’, ‘has_session_pool’: False, ‘server_name’: ‘beeswax’, ‘transport_mode’: ‘socket’, ‘auth_username’: ‘hue’, ‘server_host’: u’centos0.xis.edu’, ‘server_port’: 10000, ‘use_sasl’: False, ‘auth_password_used’: False, ‘http_url’: u’http://centos0.xis.edu:10001/cliservice’, ‘max_number_of_sessions’: 1, ‘close_sessions’: False, ‘principal’: None}
[28/Apr/2020 01:48:55 +0000] thrift_util DEBUG Thrift client <desktop.lib.thrift_util.ConnectionPooler object at 0x7f231eb458d0> got connection 49 after 0.00 seconds
[28/Apr/2020 01:48:55 +0000] hive_server2_lib INFO Opening beeswax thrift session for user hue
[28/Apr/2020 01:48:55 +0000] thrift_util DEBUG Thrift client <desktop.lib.thrift_util.ConnectionPooler object at 0x7f231eb458d0> got connection 49 after 0.00 seconds
[28/Apr/2020 01:48:55 +0000] thrift_util DEBUG Thrift client <desktop.lib.thrift_util.ConnectionPooler object at 0x7f231eb458d0> got connection 49 after 0.00 seconds
[28/Apr/2020 01:48:55 +0000] thrift_util DEBUG Thrift call: <class ‘TCLIService.TCLIService.Client’>.OpenSession(args=(TOpenSessionReq(username=‘hue’, password=None, client_protocol=10, configuration={‘hive.server2.proxy.user’: u’hue’}),), kwargs={})
[28/Apr/2020 01:48:55 +0000] thrift_util INFO Thrift exception; retrying: TSocket read 0 bytes
[28/Apr/2020 01:48:55 +0000] thrift_util DEBUG Thrift call: <class ‘TCLIService.TCLIService.Client’>.OpenSession(args=(TOpenSessionReq(username=‘hue’, password=None, client_protocol=10, configuration={‘hive.server2.proxy.user’: u’hue’}),), kwargs={})
[28/Apr/2020 01:48:55 +0000] thrift_util INFO Thrift exception; retrying: TSocket read 0 bytes
[28/Apr/2020 01:48:55 +0000] thrift_util DEBUG Thrift call: <class ‘TCLIService.TCLIService.Client’>.OpenSession(args=(TOpenSessionReq(username=‘hue’, password=None, client_protocol=10, configuration={‘hive.server2.proxy.user’: u’hue’}),), kwargs={})
[28/Apr/2020 01:48:55 +0000] thrift_util INFO Thrift saw a transport exception: TSocket read 0 bytes

Hear is Hiveserver2 log:
2020-04-28T01:48:55,728 ERROR [HiveServer2-Handler-Pool: Thread-97]: server.TThreadPoolServer (:()) - Error occurred during processing of message.
java.lang.RuntimeException: org.apache.thrift.transport.TTransportException: Invalid status -128
at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:219) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:269) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_112]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_112]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112]
Caused by: org.apache.thrift.transport.TTransportException: Invalid status -128
at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:184) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at org.apache.thrift.transport.TSaslServerTransport.handleSaslStartMessage(TSaslServerTransport.java:125) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:271) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
at org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
… 4 more

pseudo-distributed.ini:

[beeswax]

  # Host where HiveServer2 is running.
  # If Kerberos security is enabled, use fully-qualified domain name (FQDN).
  hive_server_host=centos0.xis.edu

  # Port where HiveServer2 Thrift server runs on.
  hive_server_port=10000

  # Http thrift port for HiveServer2.
  hive_server_http_port=10001

  # Host where LLAP is running
  ## llap_server_host = localhost

  # LLAP binary thrift port
  ## llap_server_port = 10500

  # LLAP HTTP Thrift port
  ## llap_server_thrift_port = 10501

  # Alternatively, use Service Discovery for LLAP (Hive Server Interactive) and/or Hiveserver2, t$

  # Whether to use Service Discovery for LLAP
  ## hive_discovery_llap = true

  # is llap (hive server interactive) running in an HA configuration (more than 1)
  # important as the zookeeper structure is different
  ## hive_discovery_llap_ha = false

  # Shortcuts to finding LLAP znode Key
  # Non-HA - hiveserver-interactive-site - hive.server2.zookeeper.namespace ex hive2 = /hive2
  # HA-NonKerberized - <llap_app_name>_llap ex app name llap0 = /llap0_llap
  # HA-Kerberized - <llap_app_name>_llap-sasl ex app name llap0 = /llap0_llap-sasl
  ## hive_discovery_llap_znode = /hiveserver2-hive2

  # Whether to use Service Discovery for HiveServer2
  ## hive_discovery_hs2 = true

  # Hiveserver2 is hive-site hive.server2.zookeeper.namespace ex hiveserver2 = /hiverserver2
  ## hive_discovery_hiveserver2_znode = /hiveserver2

  # Applicable only for LLAP HA
  # To keep the load on zookeeper to a minimum
  # ---- we cache the LLAP activeEndpoint for the cache_timeout period
  # ---- we cache the hiveserver2 endpoint for the length of session
  # configurations to set the time between zookeeper checks
  ## cache_timeout = 60
# Host where Hive Metastore Server (HMS) is running.
  # If Kerberos security is enabled, the fully-qualified domain name (FQDN) is required.
  ## hive_metastore_host=localhost

  # Configure the port the Hive Metastore Server runs on.
  ## hive_metastore_port=9083

  # Hive configuration directory, where hive-site.xml is located
  hive_conf_dir=/etc/hive/conf

  # Timeout in seconds for thrift calls to Hive service
  ## server_conn_timeout=120

  # Choose whether to use the old GetLog() thrift call from before Hive 0.14 to retrieve the logs.
  # If false, use the FetchResults() thrift call from Hive 1.0 or more instead.
  ## use_get_log_api=false

  # Limit the number of partitions that can be listed.
  ## list_partitions_limit=10000

  # The maximum number of partitions that will be included in the SELECT * LIMIT sample query for$
  ## query_partitions_limit=10

  # A limit to the number of rows that can be downloaded from a query before it is truncated.
  # A value of -1 means there will be no limit.
  ## download_row_limit=100000

  # A limit to the number of bytes that can be downloaded from a query before it is truncated.
  # A value of -1 means there will be no limit.
  ## download_bytes_limit=-1

  # Hue will try to close the Hive query when the user leaves the editor page.
  # This will free all the query resources in HiveServer2, but also make its results inaccessible.

# Hue will use at most this many HiveServer2 sessions per user at a time.
  # For Tez, increase the number to more if you need more than one query at the time, e.g. 2 or 3$
  # -1 is unlimited number of sessions.
  ## max_number_of_sessions=1

  # When set to True, Hue will close sessions created for background queries and open new ones as$
  # When set to False, Hue will keep sessions created for background queries opened and reuse the$
  # This flag is useful when max_number_of_sessions != 1
  ## close_sessions=max_number_of_sessions != 1

  # Thrift version to use when communicating with HiveServer2.
  # Version 11 comes with Hive 3.0. If issues, try 7.
  ## thrift_version=11

  # A comma-separated list of white-listed Hive configuration properties that users are authorize$
  ## config_whitelist=hive.map.aggr,hive.exec.compress.output,hive.exec.parallel,hive.execution.e$

  # Override the default desktop username and password of the hue user used for authentications w$
  # e.g. Used for LDAP/PAM pass-through authentication.
  #auth_username=hue
  #auth_password=

  # Use SASL framework to establish connection to host.

use_sasl=false

This is hive configuration. All are default by Ambari.

@gary324

Here is my hive beeswax config. Notice im only using the discovery method, thrift version 11, and SASL is true:

###########################################################################
# Settings to configure Beeswax with Hive
###########################################################################

[beeswax]

  # Host where HiveServer2 is running.
  # If Kerberos security is enabled, use fully-qualified domain name (FQDN).
  hive_server_host=hdp.cloudera.com

  # Binary thrift port for HiveServer2.
  #hive_server_port=10000

  # Http thrift port for HiveServer2.
  #hive_server_http_port=10001

  # Host where LLAP is running
  ## llap_server_host = localhost

  # LLAP binary thrift port
  ## llap_server_port = 10500

  # LLAP HTTP Thrift port
  ## llap_server_thrift_port = 10501

  # Alternatively, use Service Discovery for LLAP (Hive Server Interactive) and/or Hiveserver2, this will override server and thrift port

  # Whether to use Service Discovery for LLAP
  ## hive_discovery_llap = true

  # is llap (hive server interactive) running in an HA configuration (more than 1)
  # important as the zookeeper structure is different
  ## hive_discovery_llap_ha = false

  # Shortcuts to finding LLAP znode Key
  # Non-HA - hiveserver-interactive-site - hive.server2.zookeeper.namespace ex hive2 = /hive2
  # HA-NonKerberized - (llap_app_name)_llap ex app name llap0 = /llap0_llap
  # HA-Kerberized - (llap_app_name)_llap-sasl ex app name llap0 = /llap0_llap-sasl
  ## hive_discovery_llap_znode = /hiveserver2-hive2

  # Whether to use Service Discovery for HiveServer2
  hive_discovery_hs2 = true

  # Hiveserver2 is hive-site hive.server2.zookeeper.namespace ex hiveserver2 = /hiverserver2
  hive_discovery_hiveserver2_znode = /hiveserver2

  # Applicable only for LLAP HA
  # To keep the load on zookeeper to a minimum
  # ---- we cache the LLAP activeEndpoint for the cache_timeout period
  # ---- we cache the hiveserver2 endpoint for the length of session
  # configurations to set the time between zookeeper checks
  ## cache_timeout = 60

  # Host where Hive Metastore Server (HMS) is running.
  # If Kerberos security is enabled, the fully-qualified domain name (FQDN) is required.
  #hive_metastore_host=hdp.cloudera.com

  # Configure the port the Hive Metastore Server runs on.
  #hive_metastore_port=9083

  # Hive configuration directory, where hive-site.xml is located
  hive_conf_dir=/etc/hive/conf

  # Timeout in seconds for thrift calls to Hive service
  ## server_conn_timeout=120

  # Choose whether to use the old GetLog() thrift call from before Hive 0.14 to retrieve the logs.
  # If false, use the FetchResults() thrift call from Hive 1.0 or more instead.
  ## use_get_log_api=false

  # Limit the number of partitions that can be listed.
  ## list_partitions_limit=10000

  # The maximum number of partitions that will be included in the SELECT * LIMIT sample query for partitioned tables.
  ## query_partitions_limit=10

  # A limit to the number of rows that can be downloaded from a query before it is truncated.
  # A value of -1 means there will be no limit.
  ## download_row_limit=100000

  # A limit to the number of bytes that can be downloaded from a query before it is truncated.
  # A value of -1 means there will be no limit.
  ## download_bytes_limit=-1

  # Hue will try to close the Hive query when the user leaves the editor page.
  # This will free all the query resources in HiveServer2, but also make its results inaccessible.
  ## close_queries=false

  # Hue will use at most this many HiveServer2 sessions per user at a time.
  # For Tez, increase the number to more if you need more than one query at the time, e.g. 2 or 3 (Tez has a maximum of 1 query by session).
  ## max_number_of_sessions=1

  # Thrift version to use when communicating with HiveServer2.
  # Version 11 comes with Hive 3.0. If issues, try 7.
 thrift_version=11

  # A comma-separated list of white-listed Hive configuration properties that users are authorized to set.
  ## config_whitelist=hive.map.aggr,hive.exec.compress.output,hive.exec.parallel,hive.execution.engine,mapreduce.job.queuename

  # Override the default desktop username and password of the hue user used for authentications with other services.
  # e.g. Used for LDAP/PAM pass-through authentication.
  ## auth_username=hive
  ## auth_password=hive

  # Use SASL framework to establish connection to host.
  use_sasl=true

  [[ssl]]
    # Path to Certificate Authority certificates.
    ## cacerts=/etc/hue/cacerts.pem

    # Choose whether Hue should validate certificates received from the server.
    ## validate=true