Support Questions

Find answers, ask questions, and share your expertise

Spark Thrift Server connection to Tableau on Sandbox HDP2.5

avatar
Contributor

I had zero issues connecting Tableau to Sandbox HDP2.4 using the simba spark SQL ODBC driver, but I'm having issues with Sandbox HDP2.5. I can connect to Hive no problem on port 10000 but trying to connect to Spark on 10015 provides a connection failed message. Telnet to port 10000 works just fine, but telnet cannot open the connection to the server on port 10015. I ran: root@sandbox sbin]# netstat -nltup | grep 100 with the following results:

tcp 0 0 0.0.0.0:10020 0.0.0.0:* LISTEN 2533/java tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1703/java tcp 0 0 0.0.0.0:10033 0.0.0.0:* LISTEN 2533/java tcp 0 0 :::10015 :::* LISTEN 4212/java

Process 4212 corresponds to the process that is running thrift server.

I'm seeing this at the end of /var/log/spark thrift-server log:

6/10/21 19:55:53 INFO ThriftCLIService: Starting ThriftBinaryCLIService on port 10015 with 5...500 worker threads

and there was nothing after that. Any help getting thrift-server up for Tableau would be greatly appreciated.

1 ACCEPTED SOLUTION

avatar
Contributor

@Timothy Spann @Vedant Jain

ISSUE RESOLVED!! It was indeed an issue with the Docker configuration.

First, from the host (port 22) I went to /var/lib/docker/containers/ and then cd'd into the container/

From there, I opened config.v2.json and hostconfig.json and added an entry for port 10015. (There was an entry for port 10000, but not one for 10015)

Then I restarted the host. (shutdown -r now)

After restart, from the host (port 22) I could see that there was now a route to 10015:

[root@sandbox ~]# iptables -t nat -L -n | grep 10015

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:10015

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10015 to:172.17.0.2:10015

I then logged into Ambari, started the Thrift Server and was able to connect via Tableau and the Spark SQL ODBC to port 10015.

To expose other ports that are not in the default docker image, you'll probably have to follow the same process.

View solution in original post

6 REPLIES 6

avatar
Guru

What version of Tableau are you using? Spark connection only works with Tableau 9.2 and later.

avatar
Contributor

I'm on Tableau 9.3. It was working as expected with Sandbox HDP 2.4.

avatar
Master Guru

Did you open that port on the sandbox through VirtualBox?

That needs to be available from your Mac/PC to the Sandbox.

It is probably not open.

https://community.hortonworks.com/questions/17168/lab-0-setup-start-the-sandbox-vm-and-open-ambari.h...

avatar
Contributor

I'm using VMWare instead of VirtualBox, but I did go into Virtual Network Editor, selected NAT, then for Host Port, put in 10015, the VM IP Address and the Virtual machine port to 10015. It is still erroring out when I try to Telnet to the IP and the port.

avatar
Contributor

I think I'm getting warmer.... When I go to sandbox port 22 (outside of the docker container) and run iptables, I'm seeing an entry for port 10000 but there isn't one for 10015. Next step, I'll need to figure out how to add these entries to the iptables of the actual VM.

[root@sandbox ~]# iptables -t nat -L -n | grep 10000

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:10000

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10000 to:172.17.0.2:10000.

[root@sandbox ~]# iptables -t nat -L -n | grep 10015

[root@sandbox ~]#

avatar
Contributor

@Timothy Spann @Vedant Jain

ISSUE RESOLVED!! It was indeed an issue with the Docker configuration.

First, from the host (port 22) I went to /var/lib/docker/containers/ and then cd'd into the container/

From there, I opened config.v2.json and hostconfig.json and added an entry for port 10015. (There was an entry for port 10000, but not one for 10015)

Then I restarted the host. (shutdown -r now)

After restart, from the host (port 22) I could see that there was now a route to 10015:

[root@sandbox ~]# iptables -t nat -L -n | grep 10015

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:10015

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:10015 to:172.17.0.2:10015

I then logged into Ambari, started the Thrift Server and was able to connect via Tableau and the Spark SQL ODBC to port 10015.

To expose other ports that are not in the default docker image, you'll probably have to follow the same process.