Saturday, June 7, 2014

Learning Apache Drill Basic

Today, we will take a look at Apache Drill. What is Apache Drill?

Apache Drill is an open-source software framework that supports data-intensive distributed applications for interactive analysis of large-scale datasets.

Below instruction building from source is obtain via apache drill wiki page. You must have java 7 and maven 3 installed. There is this one dependency you have to install as well, protocol buffer, with linux debian, you can install via apt.
sudo apt-get install protobuf-compiler

to get the source, you can git clone from https://github.com/apache/incubator-drill.git
git clone https://github.com/apache/incubator-drill.git

Once cloned, then we can start building the source. Below is my build log.
jason@localhost:~/drill/incubator-drill$ mvn clean install -DskipTests
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.apache.drill.exec:drill-java-exec:jar:1.0.0-m2-incubating-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: pentaho:mondrian-data-foodmart-json:jar -> duplicate declaration of version 0.3.2 @ line 108, column 17
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.codehaus.janino:janino:jar -> version 2.7.3 vs 2.6.1 @ line 241, column 17
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Apache Drill Root POM
[INFO] Drill Protocol
[INFO] Common (Logical Plan, Base expressions)
[INFO] contrib/Parent Pom
[INFO] contrib/data/Parent Pom
[INFO] contrib/data/tpch-sample-data
[INFO] contrib/storage-hive
[INFO] exec/Parent Pom
[INFO] exec/Netty Little Endian Buffers
[INFO] exec/Java Execution Engine
[INFO] contrib/hbase-storage-plugin
[INFO] exec/JDBC Driver using dependencies
[INFO] contrib/sqlline
[INFO] Packaging and Distribution Assembly
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Apache Drill Root POM 1.0.0-m2-incubating-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ drill-root ---
[INFO] Deleting /home/jason/drill/incubator-drill/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (no_commons_logging) @ drill-root ---
[INFO]
[INFO] --- git-commit-id-plugin:2.1.9:revision (default) @ drill-root ---
[info] dotGitDirectory /home/jason/drill/incubator-drill/.git
[info] git.build.user.name Jason Wee
[info] git.build.user.email peichieh@gmail.com
[info] git.branch master
[info] --always = false
[info] --dirty = -dirty
[info] --abbrev = 7
[info] --long = %s true
[info] --match =
[info] Tag refs [ [Ref[refs/tags/drill-1.0.0-m1=04020a8fca8b287874528d86dc7b8be0269ad788], Ref[refs/tags/drill-root-1.0.0-m1=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc], Ref[refs/tags/oscon_workshop=eaf95ed3c30d7bb147afe337e0e0477be6518d90], Ref[refs/tags/pre_exec_merge=a97a22b0a9547f8639e92258c0a3475b01742f15]] ]
[info] Resolved tag [ drill-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Sep 6 13:05:42 2013 -0700] ], points at [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ]
[info] Resolved tag [ drill-root-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Wed Sep 4 04:23:47 2013 -0700] ], points at [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ]
[info] Resolved tag [ pre_exec_merge ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Jul 19 18:33:56 2013 -0700] ], points at [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ]
[info] key [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ], tags => [ [DatedRevTag{id=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc, tagName='drill-root-1.0.0-m1', date=September 4, 2013 7:23:47 PM MYT}] ]
[info] key [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ], tags => [ [DatedRevTag{id=a97a22b0a9547f8639e92258c0a3475b01742f15, tagName='pre_exec_merge', date=July 20, 2013 9:33:56 AM MYT}] ]
[info] key [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ], tags => [ [DatedRevTag{id=04020a8fca8b287874528d86dc7b8be0269ad788, tagName='drill-1.0.0-m1', date=September 7, 2013 4:05:42 AM MYT}] ]
[info] Created map: [ {commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------=[drill-root-1.0.0-m1], commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------=[pre_exec_merge], commit a0d3c6977820516983142c96d7f9374681529968 0 ------=[drill-1.0.0-m1]} ]
[info] HEAD is [ e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249 ]
[info] Repo is in dirty state [ false ]
[info] git.commit.id.describe drill-1.0.0-m1-398-ge1e5ea0
[info] git.commit.id e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249
[info] git.commit.id.abbrev e1e5ea0
[info] git.commit.user.name Parth Chandra
[info] git.commit.user.email pchandra@maprtech.com
[info] git.commit.message.full DRILL-423: C++ Client. Initial implementation (reviewed)

[info] git.commit.message.short DRILL-423: C++ Client. Initial implementation (reviewed)
[info] git.commit.time 30.05.2014 @ 06:32:29 MYT
[info] git.remote.origin.url https://github.com/apache/incubator-drill.git
[info] git.build.time 31.05.2014 @ 16:51:51 MYT
[info] found property git.commit.id.abbrev
[info] found property git.commit.user.email
[info] found property git.commit.message.full
[info] found property git.commit.id
[info] found property git.commit.message.short
[info] found property git.commit.user.name
[info] found property git.build.user.name
[info] found property git.commit.id.describe
[info] found property git.build.user.email
[info] found property git.branch
[info] found property git.commit.time
[info] found property git.build.time
[info] found property git.remote.origin.url
[info] Writing properties file to [ /home/jason/drill/incubator-drill/target/classes/git.properties ] (for module Apache Drill Root POM1 )...
[info] Apache Drill Root POM ] project Apache Drill Root POM
[info] Drill Protocol ] project Drill Protocol
[info] Common (Logical Plan, Base expressions) ] project Common (Logical Plan, Base expressions)
[info] contrib/Parent Pom ] project contrib/Parent Pom
[info] contrib/data/Parent Pom ] project contrib/data/Parent Pom
[info] contrib/data/tpch-sample-data ] project contrib/data/tpch-sample-data
[info] contrib/storage-hive ] project contrib/storage-hive
[info] exec/Parent Pom ] project exec/Parent Pom
[info] exec/Netty Little Endian Buffers ] project exec/Netty Little Endian Buffers
[info] exec/Java Execution Engine ] project exec/Java Execution Engine
[info] contrib/hbase-storage-plugin ] project contrib/hbase-storage-plugin
[info] exec/JDBC Driver using dependencies ] project exec/JDBC Driver using dependencies
[info] contrib/sqlline ] project contrib/sqlline
[info] Packaging and Distribution Assembly ] project Packaging and Distribution Assembly
[INFO]
[INFO] --- maven-remote-resources-plugin:1.4:process (default) @ drill-root ---
[INFO]
[INFO] --- apache-rat-plugin:0.10:check (rat-checks) @ drill-root ---
[INFO] 56 implicit excludes (use -debug for more details).
[INFO] Exclude: **/*.log
[INFO] Exclude: **/*.md
[INFO] Exclude: sandbox/**
[INFO] Exclude: **/*.json
[INFO] Exclude: **/*.sql
[INFO] Exclude: **/git.properties
[INFO] Exclude: **/*.csv
[INFO] Exclude: **/drill-*.conf
[INFO] Exclude: **/.buildpath
[INFO] Exclude: **/*.proto
[INFO] Exclude: **/*.fmpp
[INFO] Exclude: **/target/**
[INFO] Exclude: **/*.iml
[INFO] Exclude: **/*.tdd
[INFO] Exclude: **/*.project
[INFO] Exclude: .*/**
[INFO] Exclude: *.patch
[INFO] Exclude: **/*.pb.cc
[INFO] Exclude: **/*.pb.h
[INFO] 16 resources included (use -debug for more details)
Warning: org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Compiler warnings:
WARNING: 'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'
Warning: org.apache.xerces.parsers.SAXParser: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
[INFO] Rat check: Summary of files. Unapproved: 0 unknown: 0 generated: 0 approved: 4 licence.
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ drill-root ---
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ drill-root ---
[INFO] Installing /home/jason/drill/incubator-drill/pom.xml to /home/jason/.m2/repository/org/apache/drill/drill-root/1.0.0-m2-incubating-SNAPSHOT/drill-root-1.0.0-m2-incubating-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Drill Protocol 1.0.0-m2-incubating-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ drill-protocol ---
[INFO] Deleting /home/jason/drill/incubator-drill/protocol/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (no_commons_logging) @ drill-protocol ---
[INFO]
[INFO] --- git-commit-id-plugin:2.1.9:revision (default) @ drill-protocol ---
[info] dotGitDirectory /home/jason/drill/incubator-drill/.git
[info] git.build.user.name Jason Wee
[info] git.build.user.email peichieh@gmail.com
[info] git.branch master
[info] --always = false
[info] --dirty = -dirty
[info] --abbrev = 7
[info] --long = %s true
[info] --match =
[info] Tag refs [ [Ref[refs/tags/drill-1.0.0-m1=04020a8fca8b287874528d86dc7b8be0269ad788], Ref[refs/tags/drill-root-1.0.0-m1=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc], Ref[refs/tags/oscon_workshop=eaf95ed3c30d7bb147afe337e0e0477be6518d90], Ref[refs/tags/pre_exec_merge=a97a22b0a9547f8639e92258c0a3475b01742f15]] ]
[info] Resolved tag [ drill-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Sep 6 13:05:42 2013 -0700] ], points at [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ]
[info] Resolved tag [ drill-root-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Wed Sep 4 04:23:47 2013 -0700] ], points at [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ]
[info] Resolved tag [ pre_exec_merge ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Jul 19 18:33:56 2013 -0700] ], points at [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ]
[info] key [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ], tags => [ [DatedRevTag{id=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc, tagName='drill-root-1.0.0-m1', date=September 4, 2013 7:23:47 PM MYT}] ]
[info] key [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ], tags => [ [DatedRevTag{id=a97a22b0a9547f8639e92258c0a3475b01742f15, tagName='pre_exec_merge', date=July 20, 2013 9:33:56 AM MYT}] ]
[info] key [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ], tags => [ [DatedRevTag{id=04020a8fca8b287874528d86dc7b8be0269ad788, tagName='drill-1.0.0-m1', date=September 7, 2013 4:05:42 AM MYT}] ]
[info] Created map: [ {commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------=[drill-root-1.0.0-m1], commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------=[pre_exec_merge], commit a0d3c6977820516983142c96d7f9374681529968 0 ------=[drill-1.0.0-m1]} ]
[info] HEAD is [ e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249 ]
[info] Repo is in dirty state [ false ]
[info] git.commit.id.describe drill-1.0.0-m1-398-ge1e5ea0
[info] git.commit.id e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249
[info] git.commit.id.abbrev e1e5ea0
[info] git.commit.user.name Parth Chandra
[info] git.commit.user.email pchandra@maprtech.com
[info] git.commit.message.full DRILL-423: C++ Client. Initial implementation (reviewed)

[info] git.commit.message.short DRILL-423: C++ Client. Initial implementation (reviewed)
[info] git.commit.time 30.05.2014 @ 06:32:29 MYT
[info] git.remote.origin.url https://github.com/apache/incubator-drill.git
[info] git.build.time 31.05.2014 @ 16:52:03 MYT
[info] found property git.commit.id.abbrev
[info] found property git.commit.user.email
[info] found property git.commit.message.full
[info] found property git.commit.id
[info] found property git.commit.message.short
[info] found property git.commit.user.name
[info] found property git.build.user.name
[info] found property git.commit.id.describe
[info] found property git.build.user.email
[info] found property git.branch
[info] found property git.commit.time
[info] found property git.build.time
[info] found property git.remote.origin.url
[info] Writing properties file to [ /home/jason/drill/incubator-drill/protocol/target/classes/git.properties ] (for module Drill Protocol2 )...
[info] Apache Drill Root POM ] project Apache Drill Root POM
[info] Drill Protocol ] project Drill Protocol
[info] Common (Logical Plan, Base expressions) ] project Common (Logical Plan, Base expressions)
[info] contrib/Parent Pom ] project contrib/Parent Pom
[info] contrib/data/Parent Pom ] project contrib/data/Parent Pom
[info] contrib/data/tpch-sample-data ] project contrib/data/tpch-sample-data
[info] contrib/storage-hive ] project contrib/storage-hive
[info] exec/Parent Pom ] project exec/Parent Pom
[info] exec/Netty Little Endian Buffers ] project exec/Netty Little Endian Buffers
[info] exec/Java Execution Engine ] project exec/Java Execution Engine
[info] contrib/hbase-storage-plugin ] project contrib/hbase-storage-plugin
[info] exec/JDBC Driver using dependencies ] project exec/JDBC Driver using dependencies
[info] contrib/sqlline ] project contrib/sqlline
[info] Packaging and Distribution Assembly ] project Packaging and Distribution Assembly
[INFO]
[INFO] --- maven-remote-resources-plugin:1.4:process (default) @ drill-protocol ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ drill-protocol ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jason/drill/incubator-drill/protocol/src/main/resources
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ drill-protocol ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 9 source files to /home/jason/drill/incubator-drill/protocol/target/classes
[INFO]
[INFO] --- apache-rat-plugin:0.10:check (rat-checks) @ drill-protocol ---
[INFO] 51 implicit excludes (use -debug for more details).
[INFO] Exclude: **/*.log
[INFO] Exclude: **/*.md
[INFO] Exclude: sandbox/**
[INFO] Exclude: **/*.json
[INFO] Exclude: **/*.sql
[INFO] Exclude: **/git.properties
[INFO] Exclude: **/*.csv
[INFO] Exclude: **/drill-*.conf
[INFO] Exclude: **/.buildpath
[INFO] Exclude: **/*.proto
[INFO] Exclude: **/*.fmpp
[INFO] Exclude: **/target/**
[INFO] Exclude: **/*.iml
[INFO] Exclude: **/*.tdd
[INFO] Exclude: **/*.project
[INFO] Exclude: .*/**
[INFO] Exclude: *.patch
[INFO] Exclude: **/*.pb.cc
[INFO] Exclude: **/*.pb.h
[INFO] 11 resources included (use -debug for more details)
Warning: org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Compiler warnings:
WARNING: 'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'
Warning: org.apache.xerces.parsers.SAXParser: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
[INFO] Rat check: Summary of files. Unapproved: 0 unknown: 0 generated: 0 approved: 10 licence.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ drill-protocol ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/jason/drill/incubator-drill/protocol/src/test/resources
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ drill-protocol ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.17:test (default-test) @ drill-protocol ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ drill-protocol ---
[INFO] Building jar: /home/jason/drill/incubator-drill/protocol/target/drill-protocol-1.0.0-m2-incubating-SNAPSHOT.jar
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ drill-protocol ---
[INFO]
[INFO] --- maven-shade-plugin:2.1:shade (default) @ drill-protocol ---
[INFO] Including com.google.protobuf:protobuf-java:jar:2.5.0 in the shaded jar.
[INFO] Excluding io.netty:netty-handler:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-buffer:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-common:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-transport:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-codec:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding com.google.guava:guava:jar:14.0.1 from the shaded jar.
[INFO] Excluding org.slf4j:slf4j-api:jar:1.7.5 from the shaded jar.
[INFO] Excluding org.slf4j:jul-to-slf4j:jar:1.7.5 from the shaded jar.
[INFO] Excluding org.slf4j:jcl-over-slf4j:jar:1.7.5 from the shaded jar.
[INFO] Excluding org.slf4j:log4j-over-slf4j:jar:1.7.5 from the shaded jar.
[INFO] Attaching shaded artifact.
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ drill-protocol ---
[INFO] Installing /home/jason/drill/incubator-drill/protocol/target/drill-protocol-1.0.0-m2-incubating-SNAPSHOT.jar to /home/jason/.m2/repository/org/apache/drill/drill-protocol/1.0.0-m2-incubating-SNAPSHOT/drill-protocol-1.0.0-m2-incubating-SNAPSHOT.jar
[INFO] Installing /home/jason/drill/incubator-drill/protocol/pom.xml to /home/jason/.m2/repository/org/apache/drill/drill-protocol/1.0.0-m2-incubating-SNAPSHOT/drill-protocol-1.0.0-m2-incubating-SNAPSHOT.pom
[INFO] Installing /home/jason/drill/incubator-drill/protocol/target/drill-protocol-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar to /home/jason/.m2/repository/org/apache/drill/drill-protocol/1.0.0-m2-incubating-SNAPSHOT/drill-protocol-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Common (Logical Plan, Base expressions) 1.0.0-m2-incubating-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ drill-common ---
[INFO] Deleting /home/jason/drill/incubator-drill/common/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (no_commons_logging) @ drill-common ---
[INFO]
[INFO] --- git-commit-id-plugin:2.1.9:revision (default) @ drill-common ---
[info] dotGitDirectory /home/jason/drill/incubator-drill/.git
[info] git.build.user.name Jason Wee
[info] git.build.user.email peichieh@gmail.com
[info] git.branch master
[info] --always = false
[info] --dirty = -dirty
[info] --abbrev = 7
[info] --long = %s true
[info] --match =
[info] Tag refs [ [Ref[refs/tags/drill-1.0.0-m1=04020a8fca8b287874528d86dc7b8be0269ad788], Ref[refs/tags/drill-root-1.0.0-m1=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc], Ref[refs/tags/oscon_workshop=eaf95ed3c30d7bb147afe337e0e0477be6518d90], Ref[refs/tags/pre_exec_merge=a97a22b0a9547f8639e92258c0a3475b01742f15]] ]
[info] Resolved tag [ drill-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Sep 6 13:05:42 2013 -0700] ], points at [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ]
[info] Resolved tag [ drill-root-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Wed Sep 4 04:23:47 2013 -0700] ], points at [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ]
[info] Resolved tag [ pre_exec_merge ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Jul 19 18:33:56 2013 -0700] ], points at [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ]
[info] key [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ], tags => [ [DatedRevTag{id=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc, tagName='drill-root-1.0.0-m1', date=September 4, 2013 7:23:47 PM MYT}] ]
[info] key [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ], tags => [ [DatedRevTag{id=a97a22b0a9547f8639e92258c0a3475b01742f15, tagName='pre_exec_merge', date=July 20, 2013 9:33:56 AM MYT}] ]
[info] key [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ], tags => [ [DatedRevTag{id=04020a8fca8b287874528d86dc7b8be0269ad788, tagName='drill-1.0.0-m1', date=September 7, 2013 4:05:42 AM MYT}] ]
[info] Created map: [ {commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------=[drill-root-1.0.0-m1], commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------=[pre_exec_merge], commit a0d3c6977820516983142c96d7f9374681529968 0 ------=[drill-1.0.0-m1]} ]
[info] HEAD is [ e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249 ]
[info] Repo is in dirty state [ false ]
[info] git.commit.id.describe drill-1.0.0-m1-398-ge1e5ea0
[info] git.commit.id e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249
[info] git.commit.id.abbrev e1e5ea0
[info] git.commit.user.name Parth Chandra
[info] git.commit.user.email pchandra@maprtech.com
[info] git.commit.message.full DRILL-423: C++ Client. Initial implementation (reviewed)

[info] git.commit.message.short DRILL-423: C++ Client. Initial implementation (reviewed)
[info] git.commit.time 30.05.2014 @ 06:32:29 MYT
[info] git.remote.origin.url https://github.com/apache/incubator-drill.git
[info] git.build.time 31.05.2014 @ 16:52:24 MYT
[info] found property git.commit.id.abbrev
[info] found property git.commit.user.email
[info] found property git.commit.message.full
[info] found property git.commit.id
[info] found property git.commit.message.short
[info] found property git.commit.user.name
[info] found property git.build.user.name
[info] found property git.commit.id.describe
[info] found property git.build.user.email
[info] found property git.branch
[info] found property git.commit.time
[info] found property git.build.time
[info] found property git.remote.origin.url
[info] Writing properties file to [ /home/jason/drill/incubator-drill/common/target/classes/git.properties ] (for module Common (Logical Plan, Base expressions)3 )...
[info] Apache Drill Root POM ] project Apache Drill Root POM
[info] Drill Protocol ] project Drill Protocol
[info] Common (Logical Plan, Base expressions) ] project Common (Logical Plan, Base expressions)
[info] contrib/Parent Pom ] project contrib/Parent Pom
[info] contrib/data/Parent Pom ] project contrib/data/Parent Pom
[info] contrib/data/tpch-sample-data ] project contrib/data/tpch-sample-data
[info] contrib/storage-hive ] project contrib/storage-hive
[info] exec/Parent Pom ] project exec/Parent Pom
[info] exec/Netty Little Endian Buffers ] project exec/Netty Little Endian Buffers
[info] exec/Java Execution Engine ] project exec/Java Execution Engine
[info] contrib/hbase-storage-plugin ] project contrib/hbase-storage-plugin
[info] exec/JDBC Driver using dependencies ] project exec/JDBC Driver using dependencies
[info] contrib/sqlline ] project contrib/sqlline
[info] Packaging and Distribution Assembly ] project Packaging and Distribution Assembly
[INFO]
[INFO] --- antlr3-maven-plugin:3.4:antlr (default) @ drill-common ---
[INFO] ANTLR: Processing source directory /home/jason/drill/incubator-drill/common/src/main/antlr3
ANTLR Parser Generator Version 3.4
org/apache/drill/common/expression/parser/ExprLexer.g
org/apache/drill/common/expression/parser/ExprParser.g
[INFO]
[INFO] --- maven-remote-resources-plugin:1.4:process (default) @ drill-common ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ drill-common ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ drill-common ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 109 source files to /home/jason/drill/incubator-drill/common/target/classes
[WARNING] /home/jason/drill/incubator-drill/common/src/main/java/org/apache/drill/common/config/DrillConfig.java:[51,90] VM is internal proprietary API and may be removed in a future release
[INFO]
[INFO] --- apache-rat-plugin:0.10:check (rat-checks) @ drill-common ---
[INFO] 51 implicit excludes (use -debug for more details).
[INFO] Exclude: **/*.log
[INFO] Exclude: **/*.md
[INFO] Exclude: sandbox/**
[INFO] Exclude: **/*.json
[INFO] Exclude: **/*.sql
[INFO] Exclude: **/git.properties
[INFO] Exclude: **/*.csv
[INFO] Exclude: **/drill-*.conf
[INFO] Exclude: **/.buildpath
[INFO] Exclude: **/*.proto
[INFO] Exclude: **/*.fmpp
[INFO] Exclude: **/target/**
[INFO] Exclude: **/*.iml
[INFO] Exclude: **/*.tdd
[INFO] Exclude: **/*.project
[INFO] Exclude: .*/**
[INFO] Exclude: *.patch
[INFO] Exclude: **/*.pb.cc
[INFO] Exclude: **/*.pb.h
[INFO] 116 resources included (use -debug for more details)
Warning: org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Compiler warnings:
WARNING: 'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'
Warning: org.apache.xerces.parsers.SAXParser: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
[INFO] Rat check: Summary of files. Unapproved: 0 unknown: 0 generated: 0 approved: 116 licence.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ drill-common ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 8 resources
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ drill-common ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jason/drill/incubator-drill/common/target/test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.15:test (default-test) @ drill-common ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ drill-common ---
[INFO] Building jar: /home/jason/drill/incubator-drill/common/target/drill-common-1.0.0-m2-incubating-SNAPSHOT.jar
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ drill-common ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:test-jar (test-jar) @ drill-common ---
[INFO] Building jar: /home/jason/drill/incubator-drill/common/target/drill-common-1.0.0-m2-incubating-SNAPSHOT-tests.jar
[INFO]
[INFO] --- maven-shade-plugin:2.1:shade (default) @ drill-common ---
[INFO] Excluding org.apache.drill:drill-protocol:jar:1.0.0-m2-incubating-SNAPSHOT from the shaded jar.
[INFO] Including com.google.protobuf:protobuf-java:jar:2.5.0 in the shaded jar.
[INFO] Excluding junit:junit:jar:4.11 from the shaded jar.
[INFO] Excluding org.hamcrest:hamcrest-core:jar:1.3 from the shaded jar.
[INFO] Excluding net.hydromatic:optiq-core:jar:0.7-SNAPSHOT from the shaded jar.
[INFO] Excluding net.hydromatic:optiq-avatica:jar:0.7-SNAPSHOT from the shaded jar.
[INFO] Excluding eigenbase:eigenbase-properties:jar:1.1.4 from the shaded jar.
[INFO] Excluding net.hydromatic:linq4j:jar:0.2 from the shaded jar.
[INFO] Excluding org.codehaus.janino:janino:jar:2.7.3 from the shaded jar.
[INFO] Excluding org.codehaus.janino:commons-compiler:jar:2.7.3 from the shaded jar.
[INFO] Excluding commons-dbcp:commons-dbcp:jar:1.4 from the shaded jar.
[INFO] Excluding commons-pool:commons-pool:jar:1.5.4 from the shaded jar.
[INFO] Excluding com.typesafe:config:jar:1.0.0 from the shaded jar.
[INFO] Excluding org.apache.commons:commons-lang3:jar:3.1 from the shaded jar.
[INFO] Excluding org.msgpack:msgpack:jar:0.6.6 from the shaded jar.
[INFO] Excluding com.googlecode.json-simple:json-simple:jar:1.1.1 from the shaded jar.
[INFO] Excluding org.javassist:javassist:jar:3.16.1-GA from the shaded jar.
[INFO] Excluding org.reflections:reflections:jar:0.9.8 from the shaded jar.
[INFO] Excluding javassist:javassist:jar:3.12.1.GA from the shaded jar.
[INFO] Excluding dom4j:dom4j:jar:1.6.1 from the shaded jar.
[INFO] Excluding xml-apis:xml-apis:jar:1.0.b2 from the shaded jar.
[INFO] Excluding com.fasterxml.jackson.core:jackson-annotations:jar:2.2.0 from the shaded jar.
[INFO] Excluding org.hibernate:hibernate-validator:jar:4.3.1.Final from the shaded jar.
[INFO] Excluding javax.validation:validation-api:jar:1.0.0.GA from the shaded jar.
[INFO] Excluding com.fasterxml.jackson.core:jackson-databind:jar:2.2.0 from the shaded jar.
[INFO] Excluding com.fasterxml.jackson.core:jackson-core:jar:2.2.0 from the shaded jar.
[INFO] Excluding org.antlr:antlr-runtime:jar:3.4 from the shaded jar.
[INFO] Excluding org.antlr:stringtemplate:jar:3.2.1 from the shaded jar.
[INFO] Excluding antlr:antlr:jar:2.7.7 from the shaded jar.
[INFO] Excluding joda-time:joda-time:jar:2.3 from the shaded jar.
[INFO] Excluding io.netty:netty-handler:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-buffer:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-common:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-transport:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding io.netty:netty-codec:jar:4.0.7.Final from the shaded jar.
[INFO] Excluding com.google.guava:guava:jar:14.0.1 from the shaded jar.
[INFO] Excluding org.slf4j:slf4j-api:jar:1.7.5 from the shaded jar.
[INFO] Excluding org.slf4j:jul-to-slf4j:jar:1.7.5 from the shaded jar.
[INFO] Excluding org.slf4j:jcl-over-slf4j:jar:1.7.5 from the shaded jar.
[INFO] Excluding org.slf4j:log4j-over-slf4j:jar:1.7.5 from the shaded jar.
[INFO] Attaching shaded artifact.
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ drill-common ---
[INFO] Installing /home/jason/drill/incubator-drill/common/target/drill-common-1.0.0-m2-incubating-SNAPSHOT.jar to /home/jason/.m2/repository/org/apache/drill/drill-common/1.0.0-m2-incubating-SNAPSHOT/drill-common-1.0.0-m2-incubating-SNAPSHOT.jar
[INFO] Installing /home/jason/drill/incubator-drill/common/pom.xml to /home/jason/.m2/repository/org/apache/drill/drill-common/1.0.0-m2-incubating-SNAPSHOT/drill-common-1.0.0-m2-incubating-SNAPSHOT.pom
[INFO] Installing /home/jason/drill/incubator-drill/common/target/drill-common-1.0.0-m2-incubating-SNAPSHOT-tests.jar to /home/jason/.m2/repository/org/apache/drill/drill-common/1.0.0-m2-incubating-SNAPSHOT/drill-common-1.0.0-m2-incubating-SNAPSHOT-tests.jar
[INFO] Installing /home/jason/drill/incubator-drill/common/target/drill-common-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar to /home/jason/.m2/repository/org/apache/drill/drill-common/1.0.0-m2-incubating-SNAPSHOT/drill-common-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building contrib/Parent Pom 1.0.0-m2-incubating-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ drill-contrib-parent ---
[INFO] Deleting /home/jason/drill/incubator-drill/contrib/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (no_commons_logging) @ drill-contrib-parent ---
[INFO]
[INFO] --- git-commit-id-plugin:2.1.9:revision (default) @ drill-contrib-parent ---
[info] dotGitDirectory /home/jason/drill/incubator-drill/.git
[info] git.build.user.name Jason Wee
[info] git.build.user.email peichieh@gmail.com
[info] git.branch master
[info] --always = false
[info] --dirty = -dirty
[info] --abbrev = 7
[info] --long = %s true
[info] --match =
[info] Tag refs [ [Ref[refs/tags/drill-1.0.0-m1=04020a8fca8b287874528d86dc7b8be0269ad788], Ref[refs/tags/drill-root-1.0.0-m1=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc], Ref[refs/tags/oscon_workshop=eaf95ed3c30d7bb147afe337e0e0477be6518d90], Ref[refs/tags/pre_exec_merge=a97a22b0a9547f8639e92258c0a3475b01742f15]] ]
[info] Resolved tag [ drill-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Sep 6 13:05:42 2013 -0700] ], points at [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ]
[info] Resolved tag [ drill-root-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Wed Sep 4 04:23:47 2013 -0700] ], points at [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ]
[info] Resolved tag [ pre_exec_merge ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Jul 19 18:33:56 2013 -0700] ], points at [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ]
[info] key [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ], tags => [ [DatedRevTag{id=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc, tagName='drill-root-1.0.0-m1', date=September 4, 2013 7:23:47 PM MYT}] ]
[info] key [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ], tags => [ [DatedRevTag{id=a97a22b0a9547f8639e92258c0a3475b01742f15, tagName='pre_exec_merge', date=July 20, 2013 9:33:56 AM MYT}] ]
[info] key [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ], tags => [ [DatedRevTag{id=04020a8fca8b287874528d86dc7b8be0269ad788, tagName='drill-1.0.0-m1', date=September 7, 2013 4:05:42 AM MYT}] ]
[info] Created map: [ {commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------=[drill-root-1.0.0-m1], commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------=[pre_exec_merge], commit a0d3c6977820516983142c96d7f9374681529968 0 ------=[drill-1.0.0-m1]} ]
[info] HEAD is [ e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249 ]
[info] Repo is in dirty state [ false ]
[info] git.commit.id.describe drill-1.0.0-m1-398-ge1e5ea0
[info] git.commit.id e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249
[info] git.commit.id.abbrev e1e5ea0
[info] git.commit.user.name Parth Chandra
[info] git.commit.user.email pchandra@maprtech.com
[info] git.commit.message.full DRILL-423: C++ Client. Initial implementation (reviewed)

[info] git.commit.message.short DRILL-423: C++ Client. Initial implementation (reviewed)
[info] git.commit.time 30.05.2014 @ 06:32:29 MYT
[info] git.remote.origin.url https://github.com/apache/incubator-drill.git
[info] git.build.time 31.05.2014 @ 16:52:52 MYT
[info] found property git.commit.id.abbrev
[info] found property git.commit.user.email
[info] found property git.commit.message.full
[info] found property git.commit.id
[info] found property git.commit.message.short
[info] found property git.commit.user.name
[info] found property git.build.user.name
[info] found property git.commit.id.describe
[info] found property git.build.user.email
[info] found property git.branch
[info] found property git.commit.time
[info] found property git.build.time
[info] found property git.remote.origin.url
[info] Writing properties file to [ /home/jason/drill/incubator-drill/contrib/target/classes/git.properties ] (for module contrib/Parent Pom4 )...
[info] Apache Drill Root POM ] project Apache Drill Root POM
[info] Drill Protocol ] project Drill Protocol
[info] Common (Logical Plan, Base expressions) ] project Common (Logical Plan, Base expressions)
[info] contrib/Parent Pom ] project contrib/Parent Pom
[info] contrib/data/Parent Pom ] project contrib/data/Parent Pom
[info] contrib/data/tpch-sample-data ] project contrib/data/tpch-sample-data
[info] contrib/storage-hive ] project contrib/storage-hive
[info] exec/Parent Pom ] project exec/Parent Pom
[info] exec/Netty Little Endian Buffers ] project exec/Netty Little Endian Buffers
[info] exec/Java Execution Engine ] project exec/Java Execution Engine
[info] contrib/hbase-storage-plugin ] project contrib/hbase-storage-plugin
[info] exec/JDBC Driver using dependencies ] project exec/JDBC Driver using dependencies
[info] contrib/sqlline ] project contrib/sqlline
[info] Packaging and Distribution Assembly ] project Packaging and Distribution Assembly
[INFO]
[INFO] --- maven-remote-resources-plugin:1.4:process (default) @ drill-contrib-parent ---
[INFO]
[INFO] --- apache-rat-plugin:0.10:check (rat-checks) @ drill-contrib-parent ---
[INFO] 55 implicit excludes (use -debug for more details).
[INFO] Exclude: **/*.log
[INFO] Exclude: **/*.md
[INFO] Exclude: sandbox/**
[INFO] Exclude: **/*.json
[INFO] Exclude: **/*.sql
[INFO] Exclude: **/git.properties
[INFO] Exclude: **/*.csv
[INFO] Exclude: **/drill-*.conf
[INFO] Exclude: **/.buildpath
[INFO] Exclude: **/*.proto
[INFO] Exclude: **/*.fmpp
[INFO] Exclude: **/target/**
[INFO] Exclude: **/*.iml
[INFO] Exclude: **/*.tdd
[INFO] Exclude: **/*.project
[INFO] Exclude: .*/**
[INFO] Exclude: *.patch
[INFO] Exclude: **/*.pb.cc
[INFO] Exclude: **/*.pb.h
[INFO] 25 resources included (use -debug for more details)
Warning: org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Compiler warnings:
WARNING: 'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'
Warning: org.apache.xerces.parsers.SAXParser: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
[INFO] Rat check: Summary of files. Unapproved: 0 unknown: 0 generated: 0 approved: 25 licence.
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ drill-contrib-parent ---
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ drill-contrib-parent ---
[INFO] Installing /home/jason/drill/incubator-drill/contrib/pom.xml to /home/jason/.m2/repository/org/apache/drill/contrib/drill-contrib-parent/1.0.0-m2-incubating-SNAPSHOT/drill-contrib-parent-1.0.0-m2-incubating-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building contrib/data/Parent Pom 1.0.0-m2-incubating-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ drill-contrib-data-parent ---
[INFO] Deleting /home/jason/drill/incubator-drill/contrib/data/target
[INFO]
[INFO] --- maven-enforcer-plugin:1.2:enforce (no_commons_logging) @ drill-contrib-data-parent ---
[INFO]
[INFO] --- git-commit-id-plugin:2.1.9:revision (default) @ drill-contrib-data-parent ---
[info] dotGitDirectory /home/jason/drill/incubator-drill/.git
[info] git.build.user.name Jason Wee
[info] git.build.user.email peichieh@gmail.com
[info] git.branch master
[info] --always = false
[info] --dirty = -dirty
[info] --abbrev = 7
[info] --long = %s true
[info] --match =
[info] Tag refs [ [Ref[refs/tags/drill-1.0.0-m1=04020a8fca8b287874528d86dc7b8be0269ad788], Ref[refs/tags/drill-root-1.0.0-m1=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc], Ref[refs/tags/oscon_workshop=eaf95ed3c30d7bb147afe337e0e0477be6518d90], Ref[refs/tags/pre_exec_merge=a97a22b0a9547f8639e92258c0a3475b01742f15]] ]
[info] Resolved tag [ drill-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Sep 6 13:05:42 2013 -0700] ], points at [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ]
[info] Resolved tag [ drill-root-1.0.0-m1 ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Wed Sep 4 04:23:47 2013 -0700] ], points at [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ]
[info] Resolved tag [ pre_exec_merge ] [ PersonIdent[Jacques Nadeau, jacques@apache.org, Fri Jul 19 18:33:56 2013 -0700] ], points at [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ]
[info] key [ commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------ ], tags => [ [DatedRevTag{id=ad638d9e41aa9efdb1e877cfe7e0a4b910f539fc, tagName='drill-root-1.0.0-m1', date=September 4, 2013 7:23:47 PM MYT}] ]
[info] key [ commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------ ], tags => [ [DatedRevTag{id=a97a22b0a9547f8639e92258c0a3475b01742f15, tagName='pre_exec_merge', date=July 20, 2013 9:33:56 AM MYT}] ]
[info] key [ commit a0d3c6977820516983142c96d7f9374681529968 0 ------ ], tags => [ [DatedRevTag{id=04020a8fca8b287874528d86dc7b8be0269ad788, tagName='drill-1.0.0-m1', date=September 7, 2013 4:05:42 AM MYT}] ]
[info] Created map: [ {commit 41c18197e3b8ae3c42d55089d641e9a0b68c6f29 0 ------=[drill-root-1.0.0-m1], commit 5052b64d9953857575f8f40995b8da05160e5457 0 ------=[pre_exec_merge], commit a0d3c6977820516983142c96d7f9374681529968 0 ------=[drill-1.0.0-m1]} ]
[info] HEAD is [ e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249 ]
[info] Repo is in dirty state [ false ]
[info] git.commit.id.describe drill-1.0.0-m1-398-ge1e5ea0
[info] git.commit.id e1e5ea0eddd9199672ab01c5ae31f7a3c0a57249
[info] git.commit.id.abbrev e1e5ea0
[info] git.commit.user.name Parth Chandra
[info] git.commit.user.email pchandra@maprtech.com
[info] git.commit.message.full DRILL-423: C++ Client. Initial implementation (reviewed)

[info] git.commit.message.short DRILL-423: C++ Client. Initial implementation (reviewed)
[info] git.commit.time 30.05.2014 @ 06:32:29 MYT
[info] git.remote.origin.url https://github.com/apache/incubator-drill.git
[info] git.build.time 31.05.2014 @ 16:52:53 MYT
[info] found property git.commit.id.abbrev
[info] found property git.commit.user.email
[info] found property git.commit.message.full
[info] found property git.commit.id
[info] found property git.commit.message.short
[info] found property git.commit.user.name
[info] found property git.build.user.name
[info] found property git.commit.id.describe
[info] found property git.build.user.email
[info] found property git.branch
[info] found property git.commit.time
[info] found property git.build.time
[info] found property git.remote.origin.url
[info] Writing properties file to [ /home/jason/drill/incubator-drill/contrib/data/target/classes/git.properties ] (for module contrib/data/Parent Pom5 )...
[info] Apache Drill Root POM ] project Apache Drill Root POM
[info] Drill Protocol ] project Drill Protocol
[info] Common (Logical Plan, Base expressions) ] project Common (Logical Plan, Base expressions)
[info] contrib/Parent Pom ] project contrib/Parent Pom
[info] contrib/data/Parent Pom ] project contrib/data/Parent Pom
[info] contrib/data/tpch-sample-data ] project contrib/data/tpch-sample-data
[info] contrib/storage-hive ] project contrib/storage-hive
[info] exec/Parent Pom ] project exec/Parent Pom
[info] exec/Netty Little Endian Buffers ] project exec/Netty Little Endian Buffers
[info] exec/Java Execution Engine ] project exec/Java Execution Engine
[info] contrib/hbase-storage-plugin ] project contrib/hbase-storage-plugin
[info] exec/JDBC Driver using dependencies ] project exec/JDBC Driver using dependencies
[info] contrib/sqlline ] project contrib/sqlline
[info] Packaging and Distribution Assembly ] project Packaging and Distribution Assembly
[INFO]
[INFO] --- maven-remote-resources-plugin:1.4:process (default) @ drill-contrib-data-parent ---
[INFO]
[INFO] --- apache-rat-plugin:0.10:check (rat-checks) @ drill-contrib-data-parent ---
[INFO] 52 implicit excludes (use -debug for more details).
[INFO] Exclude: **/*.log
[INFO] Exclude: **/*.md
[INFO] Exclude: sandbox/**
[INFO] Exclude: **/*.json
[INFO] Exclude: **/*.sql
[INFO] Exclude: **/git.properties
[INFO] Exclude: **/*.csv
[INFO] Exclude: **/drill-*.conf
[INFO] Exclude: **/.buildpath
[INFO] Exclude: **/*.proto
[INFO] Exclude: **/*.fmpp
[INFO] Exclude: **/target/**
[INFO] Exclude: **/*.iml
[INFO] Exclude: **/*.tdd
[INFO] Exclude: **/*.project
[INFO] Exclude: .*/**
[INFO] Exclude: *.patch
[INFO] Exclude: **/*.pb.cc
[INFO] Exclude: **/*.pb.h
[INFO] 1 resources included (use -debug for more details)
Warning: org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Compiler warnings:
WARNING: 'org.apache.xerces.jaxp.SAXParserImpl: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.'
Warning: org.apache.xerces.parsers.SAXParser: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
[INFO] Rat check: Summary of files. Unapproved: 0 unknown: 0 generated: 0 approved: 1 licence.
[INFO]
[INFO] --- maven-site-plugin:3.2:attach-descriptor (attach-descriptor) @ drill-contrib-data-parent ---
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ drill-contrib-data-parent ---
[INFO] Installing /home/jason/drill/incubator-drill/contrib/data/pom.xml to /home/jason/.m2/repository/org/apache/drill/contrib/data/drill-contrib-data-parent/1.0.0-m2-incubating-SNAPSHOT/drill-contrib-data-parent-1.0.0-m2-incubating-SNAPSHOT.pom
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building contrib/data/tpch-sample-data 1.0.0-m2-incubating-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.googlecode.maven-download-plugin:download-maven-plugin:jar:1.2.0-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Apache Drill Root POM ............................. SUCCESS [21.251s]
[INFO] Drill Protocol .................................... SUCCESS [20.039s]
[INFO] Common (Logical Plan, Base expressions) ........... SUCCESS [27.872s]
[INFO] contrib/Parent Pom ................................ SUCCESS [2.687s]
[INFO] contrib/data/Parent Pom ........................... SUCCESS [1.698s]
[INFO] contrib/data/tpch-sample-data ..................... FAILURE [0.308s]
[INFO] contrib/storage-hive .............................. SKIPPED
[INFO] exec/Parent Pom ................................... SKIPPED
[INFO] exec/Netty Little Endian Buffers .................. SKIPPED
[INFO] exec/Java Execution Engine ........................ SKIPPED
[INFO] contrib/hbase-storage-plugin ...................... SKIPPED
[INFO] exec/JDBC Driver using dependencies ............... SKIPPED
[INFO] contrib/sqlline ................................... SKIPPED
[INFO] Packaging and Distribution Assembly ............... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:16.738s
[INFO] Finished at: Sat May 31 16:52:54 MYT 2014
[INFO] Final Memory: 39M/384M
[INFO] ------------------------------------------------------------------------
[ERROR] Plugin com.googlecode.maven-download-plugin:download-maven-plugin:1.2.0-SNAPSHOT or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.googlecode.maven-download-plugin:download-maven-plugin:jar:1.2.0-SNAPSHOT: Failure to find com.googlecode.maven-download-plugin:download-maven-plugin:pom:1.2.0-SNAPSHOT in https://oss.sonatype.org/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of sonatype-public-repository has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
jason@localhost:~/drill/incubator-drill$

I'm not sure why the build is a faillure although the dependencies are fulfilled as outline in the wiki. Luckily there is a prebuilt binary that we can use with. Below is the output.
jason@localhost:~/drill/apache-drill/apache-drill-1.0.0-m1$ ./bin/sqlline -u jdbc:drill:zk=local -n admin -p admin 

Invalid maximum direct memory size: -XX:MaxDirectMemorySize=8G
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

edit file bin/drill-config.sh to bring down the memory usage. Try start it again,
jason@localhost:~/drill/apache-drill/apache-drill-1.0.0-m1$ ./bin/sqlline -u jdbc:drill:zk=local -n admin -p admin 

Loaded singnal handler: SunSignalHandler
/home/jason/.sqlline/sqlline.properties (No such file or directory)
scan complete in 84ms
20:26:26,643 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
20:26:26,644 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
20:26:26,645 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/home/jason/drill/apache-drill/apache-drill-1.0.0-m1/conf/logback.xml]
20:26:27,147 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
20:26:27,199 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [de.huxhorn.lilith.logback.appender.ClassicMultiplexSocketAppender]
20:26:27,252 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [SOCKET]
20:26:27,413 |-INFO in de.huxhorn.lilith.logback.appender.ClassicMultiplexSocketAppender[SOCKET] - Waiting 1s to establish connections.
20:26:28,414 |-INFO in de.huxhorn.lilith.logback.appender.ClassicMultiplexSocketAppender[SOCKET] - Started de.huxhorn.lilith.logback.appender.ClassicMultiplexSocketAppender[SOCKET]
20:26:28,414 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
20:26:28,421 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
20:26:28,444 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
20:26:28,706 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
20:26:28,712 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE]
20:26:28,748 |-INFO in ch.qos.logback.core.rolling.FixedWindowRollingPolicy@17019f7 - No compression will be used
20:26:28,765 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
20:26:28,767 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: /var/log/drill/sqlline.log
20:26:28,767 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [/var/log/drill/sqlline.log]
20:26:28,769 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Failed to create parent directories for [/var/log/drill/sqlline.log]
20:26:28,770 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(/var/log/drill/sqlline.log,true) call failed. java.io.FileNotFoundException: /var/log/drill/sqlline.log (No such file or directory)
at java.io.FileNotFoundException: /var/log/drill/sqlline.log (No such file or directory)
at at java.io.FileOutputStream.open(Native Method)
at at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at at ch.qos.logback.core.recovery.ResilientFileOutputStream.<init>(ResilientFileOutputStream.java:28)
at at ch.qos.logback.core.FileAppender.openFile(FileAppender.java:149)
at at ch.qos.logback.core.FileAppender.start(FileAppender.java:108)
at at ch.qos.logback.core.rolling.RollingFileAppender.start(RollingFileAppender.java:86)
at at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:96)
at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49)
at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)
at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148)
at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
at at org.apache.drill.jdbc.DrillHandler.<clinit>(DrillHandler.java:34)
at at org.apache.drill.jdbc.RefDriver.createHandler(RefDriver.java:65)
at at net.hydromatic.optiq.jdbc.UnregisteredDriver.<init>(UnregisteredDriver.java:52)
at at org.apache.drill.jdbc.RefDriver.<init>(RefDriver.java:32)
at at org.apache.drill.jdbc.RefDriver.<clinit>(RefDriver.java:38)
at at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at at java.lang.Class.newInstance(Class.java:374)
at at sqlline.SqlLine.scanDrivers(SqlLine.java:1763)
at at sqlline.SqlLine.scanForDriver(SqlLine.java:1687)
at at sqlline.SqlLine.access$2300(SqlLine.java:58)
at at sqlline.SqlLine$Commands.connect(SqlLine.java:4069)
at at sqlline.SqlLine$Commands.connect(SqlLine.java:4003)
at at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at at java.lang.reflect.Method.invoke(Method.java:606)
at at sqlline.SqlLine$ReflectiveCommandHandler.execute(SqlLine.java:2964)
at at sqlline.SqlLine.dispatch(SqlLine.java:878)
at at sqlline.SqlLine.initArgs(SqlLine.java:652)
at at sqlline.SqlLine.begin(SqlLine.java:699)
at at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:460)
at at sqlline.SqlLine.main(SqlLine.java:443)
20:26:28,772 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [org.apache.drill] to false
20:26:28,772 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.apache.drill level set to INFO
20:26:28,772 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[org.apache.drill]
20:26:28,774 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [org.apache.drill] to false
20:26:28,774 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - org.apache.drill level set to DEBUG
20:26:28,774 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [SOCKET] to Logger[org.apache.drill]
20:26:28,774 |-INFO in ch.qos.logback.classic.joran.action.LevelAction - ROOT level set to ERROR
20:26:28,774 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT]
20:26:28,774 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
20:26:28,776 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@3e459e - Registering current configuration as safe fallback point

scan complete in 7308ms
Connecting to jdbc:drill:zk=local
20:26:33.660 [main] ERROR c.n.c.f.imps.CuratorFrameworkImpl - Background exception was not retry-able or retry gave up
java.net.UnknownHostException: local: Name or service not known
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.7.0_55]
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901) ~[na:1.7.0_55]
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293) ~[na:1.7.0_55]
at java.net.InetAddress.getAllByName0(InetAddress.java:1246) ~[na:1.7.0_55]
at java.net.InetAddress.getAllByName(InetAddress.java:1162) ~[na:1.7.0_55]
at java.net.InetAddress.getAllByName(InetAddress.java:1098) ~[na:1.7.0_55]
at org.apache.zookeeper.client.StaticHostProvider.<init>(StaticHostProvider.java:60) ~[zookeeper-3.4.3.jar:3.4.3-1240972]
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:440) ~[zookeeper-3.4.3.jar:3.4.3-1240972]
at org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:375) ~[zookeeper-3.4.3.jar:3.4.3-1240972]
at com.netflix.curator.utils.DefaultZookeeperFactory.newZooKeeper(DefaultZookeeperFactory.java:11) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.HandleHolder$1.getZooKeeper(HandleHolder.java:91) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.HandleHolder.getZooKeeper(HandleHolder.java:52) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.ConnectionState.reset(ConnectionState.java:152) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.ConnectionState.start(ConnectionState.java:114) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.CuratorZookeeperClient.start(CuratorZookeeperClient.java:181) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.framework.imps.CuratorFrameworkImpl.start(CuratorFrameworkImpl.java:189) ~[curator-framework-1.1.9.jar:na]
at org.apache.drill.exec.coord.ZKClusterCoordinator.start(ZKClusterCoordinator.java:87) [java-exec-1.0.0-m1-rebuffed.jar:1.0.0-m1]
at org.apache.drill.jdbc.DrillHandler.onConnectionInit(DrillHandler.java:80) [sqlparser-1.0.0-m1.jar:1.0.0-m1]
at net.hydromatic.optiq.jdbc.UnregisteredDriver.connect(UnregisteredDriver.java:127) [optiq-0.4.10.jar:na]
at sqlline.SqlLine$DatabaseConnection.connect(SqlLine.java:4802) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine$DatabaseConnection.getConnection(SqlLine.java:4853) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine$Commands.connect(SqlLine.java:4094) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine$Commands.connect(SqlLine.java:4003) [sqlline-1.1.0.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_55]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_55]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55]
at sqlline.SqlLine$ReflectiveCommandHandler.execute(SqlLine.java:2964) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.dispatch(SqlLine.java:878) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.initArgs(SqlLine.java:652) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.begin(SqlLine.java:699) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:460) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.main(SqlLine.java:443) [sqlline-1.1.0.jar:na]
20:26:38.720 [main] ERROR com.netflix.curator.ConnectionState - Connection timed out for connection string (local) and timeout (5000) / elapsed (5127)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
at com.netflix.curator.ConnectionState.getZooKeeper(ConnectionState.java:94) ~[curator-client-1.1.9.jar:na]
at com.netflix.curator.CuratorZookeeperClient.getZooKeeper(CuratorZookeeperClient.java:106) [curator-client-1.1.9.jar:na]
at com.netflix.curator.framework.imps.CuratorFrameworkImpl.getZooKeeper(CuratorFrameworkImpl.java:393) [curator-framework-1.1.9.jar:na]
at com.netflix.curator.framework.imps.GetChildrenBuilderImpl$3.call(GetChildrenBuilderImpl.java:184) [curator-framework-1.1.9.jar:na]
at com.netflix.curator.framework.imps.GetChildrenBuilderImpl$3.call(GetChildrenBuilderImpl.java:173) [curator-framework-1.1.9.jar:na]
at com.netflix.curator.RetryLoop.callWithRetry(RetryLoop.java:85) [curator-client-1.1.9.jar:na]
at com.netflix.curator.framework.imps.GetChildrenBuilderImpl.pathInForeground(GetChildrenBuilderImpl.java:169) [curator-framework-1.1.9.jar:na]
at com.netflix.curator.framework.imps.GetChildrenBuilderImpl.forPath(GetChildrenBuilderImpl.java:161) [curator-framework-1.1.9.jar:na]
at com.netflix.curator.framework.imps.GetChildrenBuilderImpl.forPath(GetChildrenBuilderImpl.java:36) [curator-framework-1.1.9.jar:na]
at com.netflix.curator.x.discovery.details.ServiceDiscoveryImpl.getChildrenWatched(ServiceDiscoveryImpl.java:306) [curator-x-discovery-1.1.9.jar:na]
at com.netflix.curator.x.discovery.details.ServiceDiscoveryImpl.queryForInstances(ServiceDiscoveryImpl.java:276) [curator-x-discovery-1.1.9.jar:na]
at com.netflix.curator.x.discovery.details.ServiceCache.refresh(ServiceCache.java:193) [curator-x-discovery-1.1.9.jar:na]
at com.netflix.curator.x.discovery.details.ServiceCache.start(ServiceCache.java:116) [curator-x-discovery-1.1.9.jar:na]
at org.apache.drill.exec.coord.ZKClusterCoordinator.start(ZKClusterCoordinator.java:89) [java-exec-1.0.0-m1-rebuffed.jar:1.0.0-m1]
at org.apache.drill.jdbc.DrillHandler.onConnectionInit(DrillHandler.java:80) [sqlparser-1.0.0-m1.jar:1.0.0-m1]
at net.hydromatic.optiq.jdbc.UnregisteredDriver.connect(UnregisteredDriver.java:127) [optiq-0.4.10.jar:na]
at sqlline.SqlLine$DatabaseConnection.connect(SqlLine.java:4802) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine$DatabaseConnection.getConnection(SqlLine.java:4853) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine$Commands.connect(SqlLine.java:4094) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine$Commands.connect(SqlLine.java:4003) [sqlline-1.1.0.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_55]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_55]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55]
at sqlline.SqlLine$ReflectiveCommandHandler.execute(SqlLine.java:2964) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.dispatch(SqlLine.java:878) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.initArgs(SqlLine.java:652) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.begin(SqlLine.java:699) [sqlline-1.1.0.jar:na]
at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:460) [sqlline-1.1.0.jar:na]

It is just too many errors and exception. As a starter to learn apache drill, I decided to stop learning it now because all these exceptions prohibit to learn for a beginner. I think the developer should improve the documentation and provide working example. We will revisit apache drill when the incubation is over.

 

 

 

Friday, June 6, 2014

How to prevent a package from upgrading in Debian

Often times, when you are having a server with a package installed, example database package and you want the rest of the packages in the system upgraded but not the database package. How can you do it?

With Debian, you can! You can set a package not to upgrade by setting flag to the package with dpkg. The followings are parameters that you need to be use.
--get-selections [package-name-pattern...]
Get list of package selections, and write it to stdout. Without a pattern, non-installed packages (i.e. those which have been previously
purged) will not be shown.

--set-selections
Set package selections using file read from stdin. This file should be in the format 'package state', where state is one of install, hold,
deinstall or purge. Blank lines and comment lines beginning with '#' are also permitted.

The available file needs to be up-to-date for this command to be useful, otherwise unknown packages will be ignored with a warning. See the
--update-avail and --merge-avail commands for more information.

Let's check what is the state of a current package. To narrate better, I will use mongodb.
jason@localhost:~$ dpkg --get-selections mongodb-org
mongodb-org install

If you decided to stop this package from the next upgrade, you should set flag hold to this package.
jason@localhost:~$ echo "mongodb-org hold" | sudo dpkg --set-selections
jason@localhost:~$ $ dpkg --get-selections mongodb-org
mongodb-org hold

Notice that the package state has transitioned into hold. Okay, let's say we want the package to be upgrade in the next upgrade, then we can set install flag to this package.
jason@localhost:~$ echo "mongodb-org install" | sudo dpkg --set-selections
jason@localhost:~$ dpkg --get-selections mongodb-org
mongodb-org install

So, that's it, simple and quick.

Sunday, May 25, 2014

Learning continous integration with jenkins

All these while, I have been testing using junit test, manual testings, write script to test, or even trigger test from maven, but as many mentioned, even my buddy recommend me to look into jenkins, a continous integration for software development. Today, we are going to look into it.

So what is jenkins?

Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle. Jenkins provides continuous integration services for software development. It is a server-based system running in a servlet container such as Apache Tomcat. It supports SCM tools including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase and RTC, and can execute Apache Ant and Apache Maven based projects as well as arbitrary shell scripts and Windows batch commands. The primary developer of Jenkins is Kohsuke Kawaguchi.[2] Released under the MIT License, Jenkins is free software.[3]

Before we continue, let's understand the terminologies of jenkins. Below is the term which you will come across when you started with jenkins but for full list, please check out the link.



















JobA runnable task that is controlled / monitored by Jenkins
Completed BuildA build is completed, if it was started and finished with any result, including failed builds.
Successful buildA build is successful when the compilation reported no errors.
NodeRepresents the physical computer running

I guess the simplest way to get yourself into jenkins is just with the command
$ java -jar jenkins.war

from terminal. However, you can also deploy within a servlet container like apache tomcat. Once started, just point your browser to jenkins with url localhost:8080. If default port 8080 is not available, you can specify --httpPort and you can find out other parameters using --help

You can also install jenkins via distribution , e.g.
rpm based distribution
deb based distribution

This article continue with the simple setup. So jenkins stores its files in $HOME/.jenkins. Right now we will create a simple project.

1. click on 'New Item' on the left navigation button.
2. add your project name. example videoOnCloud
3. select 'Build a free-style software project'
4. configure the project. See the attachment.



As a start, let's not configure any version controls system but just a simple script. We wanna learn how jenkins perform its duty. As seen here, there are a few variable configured and if you click on the link 'See the list of available environment variables', it should explain the parameters that I have configured. Go to the landing page and click build now, you should get a blue circle! Of cause, you can configure the build process using maven, ant or windows batch commands. You can also trigger remote build by executing http get to the link http://localhost:8080/job/videoOnCloud/build

So that's it. You should now have very basic using jenkins, try enable version controls system in your build configuration.

Saturday, May 24, 2014

Load balancing policy in datastax java driver

Today we are going to explore LoadBalancingPolicy in datastax java driver for apache cassandra.

So what is load balancing policy in datastax java driver? From code description :

The policy that decides which Cassandra hosts to contact for each new query.

Two methods need to be implemented:

  • LoadBalancingPolicy.distance : returns the "distance" of an host for that balancing policy.

  • LoadBalancingPolicy.newQueryPlan: it is used for each query to find which host to query first, and which hosts to use as failover.


The LoadBalancingPolicy is a com.datastax.driver.core.Host.StateListener and is thus informed of hosts up/down events. For efficiency purposes, the policy is expected to exclude down hosts from query plans.

The default policy for java driver version 2.0.2, is TokenAwarePolicy() and with child policy DCAwareRoundRobinPolicy().

Below are a list of policies available in this version of driver.

RoundRobinPolicy 

This policy queries nodes in a round-robin fashion. For a given query, if an host fail, the next one (following the round-robin order) is tried, until all hosts have been tried. This policy is not datacenter aware and will include every known Cassandra host in its round robin algorithm. If you use multiple datacenter this will be inefficient and you will want to use the DCAwareRoundRobinPolicy load balancing policy instead.

DCAwareRoundRobinPolicy

This policy provides round-robin queries over the node of the local data center. It also includes in the query plans returned a configurable number of hosts in the remote data centers, but those are always tried after the local nodes. In other words, this policy guarantees that no host in a remote data center will be queried unless no host in the local data center can be reached.

If used with a single data center, this policy is equivalent to the RoundRobin policy, but its DC awareness incurs a slight overhead so the RoundRobin policy could be preferred to this policy in that case.

TokenAwarePolicy

This policy encapsulates another policy. The resulting policy works in the following way:

  • the distance method is inherited from the child policy.

  • the iterator return by the newQueryPlan method will first return the LOCAL replicas for the query (based on Statement.getRoutingKey if possible (i.e. if the query getRoutingKey method doesn't return null and if Metadata.getReplicas returns a non empty set of replicas for that partition key). If no local replica can be either found or successfully contacted, the rest of the query plan will fallback to one of the child policy.


Do note that only replica for which the child policy distance method returns HostDistance.LOCAL will be considered having priority. For example, if you wrap DCAwareRoundRobinPolicy with this token aware policy, replicas from remote data centers may only be returned after all the host of the local data center.

WhiteListPolicy

A load balancing policy wrapper that ensure that only hosts from a provided white list will ever be returned.

This policy wraps another load balancing policy and will delegate the choice of hosts to the wrapped policy with the exception that only hosts contained in the white list provided when constructing this policy will ever be returned. Any host not in the while list will be considered IGNORED and thus will not be connected to.

This policy can be useful to ensure that the driver only connects to a predefined set of hosts. Keep in mind however that this policy defeats somewhat the host auto-detection of the driver. As such, this policy is only useful in a few special cases or for testing, but is not optimal in general. If all you want to do is limiting connections to hosts of the local data-center then you should use DCAwareRoundRobinPolicy and *not* this policy in particular.

LatencyAwarePolicy

A wrapper load balancing policy that adds latency awareness to a child policy.

When used, this policy will collect the latencies of the queries to each Cassandra node and maintain a per-node latency score (an average). Based on these scores, the policy will penalize (technically, it will ignore them unless no other nodes are up) the nodes that are slower than the best performing node by more than some configurable amount (the exclusion threshold).

The latency score for a given node is a based on a form of http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average exponential moving average.
In other words, the latency score of a node is the average of its previously measured latencies, but where older measurements gets an exponentially decreasing weight. The exact weight applied to a newly received latency is based on the time elapsed since the previous measure (to account for the fact that latencies are not necessarily reported with equal regularity, neither over time nor between different nodes).

Once a node is excluded from query plans (because its averaged latency grew over the exclusion threshold), its latency score will not be updated anymore (since it is not queried). To give a chance to this node to recover, the policy has a configurable retry period. The policy will not penalize a host for which no measurement has been collected for more than this retry period.

 

Of cause, not a single load balancing is perfect for one environment and thus you should evaluate the load balancing policy that suit your needs. Because of this, load balancing will be fine tune or more will be added in the future, so always check back in the next release for newly update driver.

Friday, May 23, 2014

Learning git remote

Hello everybody! Today, we will take a look into git remote. So why git remote? Ever wonder why everytime when you push, you only have one command to push to? What if you want to push to a few servers? But before we push into a few servers, let's take a look what is git remote actually?

From git remote documentation

git-remote - Manage set of tracked repositories

So let's explain using examples. Below is my git repository, we check what we have in our current project.
$ git remote -v
origin https://github.com/jasonwee/videoOnCloud.git (fetch)
origin https://github.com/jasonwee/videoOnCloud.git (push)

Okay, so we have a remote repository named origin and its url for fetch and push, all clear, we are tracing the remote repository on github. As you may notice, origin didn't explain much though, other than said, oh yea, this is where it begin. What if you want to use a more descriptive term?
$ git remote rename origin github
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)

okay, so now it is very descriptive, our remote repository is github. Now, what if I would like to push to another remote server? what then? Can I do it?
$ git remote add production https://production.com/jasonwee/videoOnCloud.git
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)
production https://production.com/jasonwee/videoOnCloud.git (fetch)
production https://production.com/jasonwee/videoOnCloud.git (push)

That's looks pretty easy. But over time, you may forget where is the branches set to.
$ git branch -r
github/master

So it is currently pointing to github/master. If you want to remove local branches which in  remote branches has been removed, you can use git remote prune. Note that, following --dry-run won't actually remove but just show you which is going to be removed. If you are sure, just remove the parameter --dry-run.
$ git remote prune --dry-run github
$

To fetch updates for a named set of remote in the repository, execute using remote update
$ git remote -v update github
Fetching github
From https://github.com/jasonwee/videoOnCloud
= [up to date] master -> github/master

To change a push url for a remote repository, and without --push, fetch url is changed.
$ git remote set-url --push production https://production1.com/jasonwee/videoOnCloud.git
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)
production https://production.com/jasonwee/videoOnCloud.git (fetch)
production https://production1.com/jasonwee/videoOnCloud.git (push)

$ git remote set-url production https://production2.com/jasonwee/videoOnCloud.git
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)
production https://production2.com/jasonwee/videoOnCloud.git (fetch)
production https://production1.com/jasonwee/videoOnCloud.git (push)

Though you can add more url for remote repositories, you can use set-url --add. If you notice, it won't be showing but you can check in .git/config to look at the url.
$ git remote set-url --add production https://production3.com/jasonwee/videoOnCloud.git
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)
production https://production2.com/jasonwee/videoOnCloud.git (fetch)
production https://production1.com/jasonwee/videoOnCloud.git (push)
$ git remote set-url --delete production https://production3.com/jasonwee/videoOnCloud.git
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)
production https://production2.com/jasonwee/videoOnCloud.git (fetch)
production https://production1.com/jasonwee/videoOnCloud.git (push)

Okay, because I don't host any remote production server, I will remove it.
$ git remote remove production
$ git remote -v
github https://github.com/jasonwee/videoOnCloud.git (fetch)
github https://github.com/jasonwee/videoOnCloud.git (push)

 

Sunday, May 18, 2014

Learning java native keyword

Today when I study into java code UnixNativeDispatcher.java, the code caught my attention. Snippet below
/**
* int openat(int dfd, const char* path, int oflag, mode_t mode)
*/
static int openat(int dfd, byte[] path, int flags, int mode) throws UnixException {
NativeBuffer buffer = NativeBuffers.asNativeBuffer(path);
try {
return openat0(dfd, buffer.address(), flags, mode);
} finally {
buffer.release();
}
}
private static native int openat0(int dfd, long pathAddress, int flags, int mode) throws UnixException;

So what happened actually? The static method openat is declared with package modifier which eventually do conversion before native private method openat0 is called. Note that the private method openat0 is actually a non java code execution.

native : Used in method declarations to specify that the method is not implemented in the same Java source file, but rather in another language.

Because it is executed in non java code, if you called native code, the associated method must be implemented in non java language, you can see example how is it done here with hello world example.

But with the native openat0, it came with the precompiled soname file, depending on which jvm you are using, to illustrate using this example. In the directory /usr/lib/jvm/jdk1.7.0_55/jre/lib/amd64/
$ ls /usr/lib/jvm/jdk1.7.0_55/jre/lib/amd64/
fxavcodecplugin-52.so libawt.so libgstreamer-lite.so libjava_crw_demo.so libjdwp.so libjsoundalsa.so libnpjp2.so libt2k.so
fxavcodecplugin-53.so libdcpr.so libhprof.so libjavafx-font.so libjfr.so libjsound.so libnpt.so libunpack.so
fxplugins.so libdeploy.so libinstrument.so libjavafx-iio.so libjfxmedia.so libkcms.so libprism-es2.so libverify.so
headless libdt_socket.so libj2gss.so libjavaplugin_jni.so libjfxwebkit.so libmanagement.so libsaproc.so libzip.so
jli libfontmanager.so libj2pcsc.so libjava.so libjpeg.so libmlib_image.so libsctp.so server
jvm.cfg libglass.so libj2pkcs11.so libjawt.so libjsdt.so libnet.so libsplashscreen.so xawt
libattach.so libgstplugins-lite.so libjaas_unix.so libJdbcOdbc.so libjsig.so libnio.so libsunec.so

As you may notice, there are many precompiled soname files come with jre. To check which soname loaded,
static {
AccessController.doPrivileged(new PrivilegedAction<Void>() {
public Void run() {
System.loadLibrary("nio");
return null;
}});
int flags = init();

hasAtSysCalls = (flags & HAS_AT_SYSCALLS) > 0;
}

obviously libnio.so is loaded, and to read the content of the soname file,
$ objdump -T /usr/lib/jvm/jdk1.7.0_55/jre/lib/amd64/libnio.so | grep openat
000000000000c350 g DF .text 00000000000000ac SUNWprivate_1.1 Java_sun_nio_fs_UnixNativeDispatcher_openat0
$ nm -D /usr/lib/jvm/jdk1.7.0_55/jre/lib/amd64/libnio.so | grep openat0
000000000000c350 T Java_sun_nio_fs_UnixNativeDispatcher_openat0

So that's it, I hope you learned java native keyword too!

Saturday, May 17, 2014

Getting familiar with Java FileChannel

When I was studying into lucene 4.8.0 codebase, one particular code that stumble upon was the use of FileChannel. So today, I'm spending time to play around this class FileChannel.

So you would ask, why use FileChannel instead of BufferedWriter?

From the FileChannel documentation:

In addition to the familiar read, write, and close operations of byte channels, this class defines the following file-specific operations:

Bytes may be read or written at an absolute position in a file in a way that does not affect the channel's current position.

A region of a file may be mapped directly into memory; for large files this is often much more efficient than invoking the usual read or write methods.

Updates made to a file may be forced out to the underlying storage device, ensuring that data are not lost in the event of a system crash.

Bytes can be transferred from a file to some other channel, and vice versa, in a way that can be optimized by many operating systems into a very fast transfer directly to or from the filesystem cache.

A region of a file may be locked against access by other programs.

That sounds interesting, and to understand better, we will start to write code using class FileChannel. Below is one I wrote and explanation come after.
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.StandardOpenOption;

public class FileChannelTest {

public static void main(String[] args) throws IOException {

try {
File aFile = new File("test.txt");
FileChannel fc = FileChannel.open(aFile.toPath(), StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.READ);
System.out.println("initialized is Open " + fc.isOpen()); // true

String data = "hello orld";
ByteBuffer buf = ByteBuffer.allocate(data.length());
buf.put(data.getBytes());
buf.flip();

System.out.println("initial size " + fc.size()); // 0
System.out.println("initial position " + fc.position()); // 0
fc.write(buf);
System.out.println("after write size " + fc.size()); // 10
System.out.println("after write position " + fc.position()); //10

ByteBuffer dst = ByteBuffer.allocate(200);
fc.read(dst, 0);
System.out.println("initial read " + new String(dst.array(), "UTF-8")); // hello orld

ByteBuffer newData = ByteBuffer.wrap("world\ndelete me".getBytes());
fc.write(newData, 6);
fc.position(21);

dst.clear();
fc.read(dst, 0);
System.out.println("read second write " + new String(dst.array(), "UTF-8")); //hello world
//delete me
System.out.println("after second write size " + fc.size()); // 21
System.out.println("after second write pos " + fc.position()); // 21

fc.truncate(12);
System.out.println("after truncate size " + fc.size()); // 12
System.out.println("after truncate pos " + fc.position()); // 12
dst = ByteBuffer.allocate(200);
fc.read(dst, 0);
System.out.println("after truncate " + new String(dst.array(), "UTF-8"));

newData.clear();
newData = ByteBuffer.wrap("a new line of text\n".getBytes());
fc.write(newData);
System.out.println("after second write size " + fc.size()); // 31
System.out.println("after second write pos " + fc.position()); // 31

fc.force(true);
fc.close();

System.out.println("after close " + fc.isOpen()); // false

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

It's a simple single threaded class. So we start with a File object with a test file. Then we create FileChannel object where we create test.txt if is not exists, then write and read it.

To dip our toe into the water, we start by checking if the file Channel is open. In order to write, we need ByteBuffer. We construct a new ByteBuffer object with the data length and write the data into the buffer array. In order for the channel to write this ByteBuffer, you must call the method flip().

We checked what is the current FileChannel size and position. Initially, they are zero. After data is written, note that size and position has been increased to 10. So in order to check the file channel written, we can invoke the method read(), hence the next few statements in the code.

To hold the data read from the file channel object, we create a new ByteBuffer object called dst, with a capacity of 200, so we can fit 200 bytes of data. We read the file channel object starting from file position 0 into the dst object. As expected in the print out, hello orld is written into file channel object. Interesting! It means we can write based on position we want to specify and that is exactly the next few lines of code did, we write "world\ndelete me" using method write but with position specify. If you notice carefully, unlike method write(), write() did not update file channel position, hence we are setting it explicitly to advance to position 21, that is, last position of character in the file. With this second write, we change the original data (hello orld) to (hello world\ndelete me), this overwrite the existing string than appending.

We check the file channel object after second write, we corrected the typo in the string and the position and size is as expected (21). Now we truncate the file channel up to 12bytes. That is, we start to truncate from position 0 until 12, which the byte array containing "hello world\n" survive and the remaining will be truncated. so the remaining size is 12 and position is set to 12 as well. As verified from the print out, delete me is no longer exist in the file channel.

As the file position is set end of file, we can simulate append effect by just writing and that is exactly what the next lines of code did. To ensure data and metadata is flush to the block device, we called force with parameter true. We end this example with invoking close method and check after that file channel is no longer opened.

When file channel object is created, we added open option, StandardOpenOption.READ is because when read into the file channel, this bit has to be set or else you will get exception. That's it about learning FileChannel.