Hi all,
Sorry about the commotion. This turned out to be an environment issue; I
was trying to run Drill with the latest Java (9) and when I switched to
8, all seems to work just fine.
Teemu
On 2018-02-01 21:45, Sorabh Hamirwasia wrote:
Hi Paul,
The reason we are picking *org.apache* instead of *oadd.org.apache *is
because using Sqlline when we search for Drilver class, it finds it
first
inside *jars/drill-jdbc-1.12.0.jar* instead of
*jars/jdbc-driver/drill-jdbc-all-1.12.0.jar* hence it loads all the
classes
inside the org.apache namespace. I have already tried drill-embedded
and
single node running in distributed mode on osx and it works fine for me
in
both cases. It looks to be a setup specific issue on Teemu's
environment.
Thanks,
Sorabh
On Wed, Jan 31, 2018 at 9:26 PM, Paul Rogers
wrote:
Resending this since the original response went only to Teemu.
Developers
may want to look into the potential bug discussed below.
- Paul
Hi Teemu,
Thanks for posting the detailed information. Very helpful.
You are running Sqlline with an embedded Drillbit (that's what
drill-embedded) does. I suspect that you are hitting an issue due to
the
way that Drill builds the JDBC driver. I'll explain the issue (for the
benefit of the Drill folks) then suggest a solution for you.
Drill builds a JDBC driver that includes all of Drill. But, Drill is
huge
(200+ MB), we try to create a dependency-reduced jar. It seems that we
are
not removing so much from the jar that it can no longer run an
embedded
server. The problem in this case is that the jar relocates the package
with
DrillConfig, but it looks like some other part of the code is not
adjusted.
From the dependency-reduced-pom.xml file:
...
org.apache.drill.common.
oadd.org.apache.drill.common.
The stack trace you provided shows that the code tries to reference
DrillConfig in its original location:
org.apache.drill.common.config.DrillConfig.
But, because of the relocation, it should be referenced
as add.org.apache.drill.common.config.DrillConfig.
This is clearly a bug. Would be great if someone (Kunal?) could verify
this and file a bug.
In the mean time, I'd suggest you simply run an actual Drill server,
then
connect Sqlline to that server. You'll want to run as a server anyway
to
use the Web UI, to see query profiles, to change your storage
profiles, and
so on.
A quick check of the documentation suggests we don't actually write up
this use case. (Suggestion to Bridget: we should.) Here is what to do:
1. Ensure you have a Zookeeper running on your machine. See [1] for
hints.
You only need one ZK on your laptop.2. Start Drill with drillbit.sh
start.
(See the distributed mode docs for the other commands.)3. Start
Sqlline as
explained in [2]
The "out of the box" Drill config uses the "out of the box" ZK config,
so
you should not have to do any setup. Seen the docs for how to use the
web
console and how to stop your Drill server.
Another key advantage of this mode is that you can better control
memory,
which is important as you run larger or more complex queries.
Thanks,
- Paul
[1] http://drill.apache.org/docs/distributed-mode-prerequisites/[2]
http://drill.apache.org/docs/starting-drill-in-distributed-mode/
On Friday, January 26, 2018, 12:32:13 AM PST, te...@pentinsaari.fi
<
te...@pentinsaari.fi> wrote:
Hi all,
I'm trying to follow the 10 minutes tutorial and I get stuck right
away...
https://drill.apache.org/docs/drill-in-10-minutes/
Everything works just fine with my ubuntu box, but with osx, this is
all
I get
$ bin/drill-embedded
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option
MaxPermSize;
support was removed in 8.0
sun/misc/VM
apache drill 1.12.0
"just drill it"
0: jdbc:drill:zk=local> SELECT * FROM cp.`employee.json` LIMIT 3;
No current connection
0: jdbc:drill:zk=local> !list
1 active connection:
#0 closed jdbc:drill:zk=local
0: jdbc:drill:zk=local> !quit
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.drill.common.config.DrillConfig
at
org.apache.drill.jdbc.impl.DrillConnectionImpl.(
DrillConnectionImpl.java:124)
at
org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(
DrillJdbc41Factory.java:72)
at
org.apache.drill.jdbc.impl.DrillFactory.newConnection(
DrillFactory.java:69)
at
org.apache.calcite.avatica.UnregisteredDriver.connect(
UnregisteredDriver.java:144)
at org.apache.drill.jdbc.Driver.connect(Driver.java:72)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:167)
at
sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:213)
at sqlline.Commands.close(Commands.java:925)
at sqlline.Commands.quit(Commands.java:889)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at
java.base/jdk.internal.r