I am lil late to the party, but I was able to run both HS2 and STS on the same machine on a kerberized cluster using:
HS2 => hive.server2.thrift.http.port: 10001, transportmode: http,
STS => hive.server2.thrift.port:10015, hive.server2.transport.mode: binary
STS does not start and throws the bind exception when I use:
STS => hive.server2.thrift.port:10015, hive.server2.transport.mode: http
So changing transport mode for STS to binary works for me.
Tested on HDP 22.214.171.124-4
And guessing from what is happening here I thought I should try starting up the thrift server in http mode on an http port.
but http port for thrift server is not defined anywhere by Ambari, so created an custom propery for thrift server: 'hive.server2.thrift.http.port: 10013'
and defined 'hive.server2.transport.mode: http'
And it started thrift server on a different port (10013) in http mode!