incubator-drill-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Taylor Jones <monitor...@gmail.com>
Subject Re: Drillbit hostname configuration error
Date Sun, 19 Oct 2014 23:12:34 GMT
For posterity, I found that putting a line in /etc/hosts like this did the
trick:

   <internal-ip>   <external-domain-name>

I think the Drillbit is defaulting to doing an nslookup on the host's IP if
it doesn't have some record of it locally. Is that accurate?

On Sun, Oct 19, 2014 at 6:41 PM, Taylor Jones <monitorjbl@gmail.com> wrote:

> Thanks for the advice, that certainly moved things along. Unfortunately
> I'm stuck again; I'm doing this on EC2, and now its using the
> internally-accessible hostname instead of the external one. The VM's
> hostname is set to the externally reachable one, could you explain how the
> Drillbit acquires its hostname? Also, is there any way to simply specify a
> hostname to use in the Drillbit config? I think in Hadoop a lot of this
> stuff is just automagically taken care of, but I'd like to understand more
> about how Drill works
>
> On Sun, Oct 19, 2014 at 5:20 PM, Aditya <adityakishore@gmail.com> wrote:
>
>> Could you check the "/etc/hosts" on the machine B and make sure that the
>> IP
>> "127.0.0.1" does not map to the hostname or the fqdn? It should look like
>>
>> 127.0.0.1    localhost.localdomain   localhost
>>
>> and not
>>
>> 127.0.0.1    <host-b>.<domain>   <host-b>
>>
>>
>> On Sun, Oct 19, 2014 at 1:27 PM, Taylor Jones <monitorjbl@gmail.com>
>> wrote:
>>
>> > Hi all,
>> >
>> > I'm new to Drill, and I'm still trying to get a handle on how all of the
>> > configuration options work. I was able to successfully follow the
>> tutorial
>> > for the embedded setup and I'm trying to get a distributed system set up
>> > now. I thought I should take baby steps, so my environment is very
>> simple:
>> >
>> >    - Host A: Zookeeper
>> >    - Host B: Drill
>> >    - Host C: Squirrel SQL + JDBC driver
>> >
>> > I'm not using Hadoop yet, since there's only one Drill service running.
>> I
>> > followed all of the instructions, and I was able to successfully
>> connect to
>> > the Drill server using sqlline from Host B. However, when I try to
>> connect
>> > using Squirrel SQL from a remote server (Host C), I get an error.
>> >
>> > Using connection URL "jdbc:drill:zk=HostA:2181/drill/drill-cluster" (my
>> > cluster id is "drill-cluster") I get a large stacktrace, the root cause
>> of
>> > which is this:
>> >
>> > Caused by: java.util.concurrent.ExecutionException:
>> > java.net.ConnectException: Connection refused: localhost/
>> 127.0.0.1:31010
>> > at io.netty.util.concurrent.AbstractFuture.get(AbstractFuture.java:37)
>> > at
>> >
>> >
>> org.apache.drill.exec.rpc.BasicClient$ConnectionMultiListener$ConnectionHandler.operationComplete(BasicClient.java:154)
>> > ... 13 more
>> > Caused by: java.net.ConnectException: Connection refused: localhost/
>> > 127.0.0.1:31010
>> > at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
>> > at
>> sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>> > at
>> >
>> >
>> io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:208)
>> > at
>> >
>> >
>> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:287)
>> > ... 6 more
>> >
>> > Judging from the stacktrace, the JDBC driver is getting told to try to
>> > connect to "localhost" instead of Host B. Thinking this odd, I went into
>> > Zookeeper using zkCli.sh to look at the persisted config. Lo and behold,
>> > "get /drill/drill-cluster/<HostB_znode>" is showing "localhost" as well:
>> >
>> > [zk: localhost:2181(CONNECTED) 0] get
>> > /drill/drill-cluster/48cc0eac-9be5-41a7-a530-ff0626dfce75
>> >
>> > $48cc0eac-9be5-41a7-a530-ff0626dfce75���ϒ)
>> > localhost���� ��
>> > cZxid = 0x7f
>> > ctime = Sun Oct 19 19:50:28 UTC 2014
>> > mZxid = 0x7f
>> > mtime = Sun Oct 19 19:50:28 UTC 2014
>> > pZxid = 0x7f
>> > cversion = 0
>> > dataVersion = 0
>> > aclVersion = 0
>> > ephemeralOwner = 0x14929cfe9210023
>> > dataLength = 70
>> > numChildren = 0
>> >
>> > At this point, I'm fairly sure I this is my problem. It explains why
>> Host B
>> > can connect over sqlline (drillbit is available at localhost) and why I
>> > can't connect from Host C (no drillbit at localhost). I'm still a little
>> > unclear on how the client connection to Drillbits actually works, but I
>> > assume that at some point an external client can connect to it. Judging
>> > from the architecture diagrams, I believe Zookeeper returns the
>> hostname/IP
>> > address of one of the Drillbits to the JDBC driver.
>> >
>> > So then, here's my question: How do I go about making the drillbit
>> running
>> > on Host B register itself in Zookeeper with its proper hostname instead
>> of
>> > "localhost"? Please keep in mind I'm new to Drill, so if I've grossly
>> > misunderstood something please enlighten me :)
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message