Sunday, June 8, 2014

Initial study into apache hadoop single node cluster

If you have read big data article, you will definitely encountered the term, hadoop. Today, we are going to learn Apache Hadoop.

What is Apache Hadoop?

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

There are links here and here further explain what is hadoop and its components.

I must admit to quickly setup and run single node cluster is difficult. Mainly because this is my first time learning hadoop and official documentation is not for the starter. So I google a few and got a few helpful links. The following setup is mainly for starter to get a feel on how it works. Sort of like hello world example of hadoop. As such goal is as simple as possible to get a feel of what it is.

Setup is a single node cluster, it work with current linux (debian) user environment and we can remove easily changes we've made after this tutorial. Note that example below is using my own username (jason), and it should work with your user ($HOME) environment too. User security is not a concern issue here as the objective is to learn the basic of hadoop here. A few system setup are needed and we start to prepare for the environment for hadoop.

Because this is a java library, a required JRE installed is needed. This article assume you have java installed and running. You can check it below. If you do not have java, google how to install JRE.
jason@localhost:~$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)

ssh daemon is required on your workstation. It is also recommend that openssh-client is installed as we will generate public and private key for automatic ssh login. Thus, apt-get install openssh-server openssh-client

Once both packages are installed, make sure sshd daemon is running and generate public and private key.
ssh-keygen -t rsa -P '' -f id_rsa_hadoop

with the above commands, we specified key type is rsa with empty passphrase so ssh will not prompt for passphrase and the key filename is id_rsa_hadoop. It's okay if you do not specify the key filename but because I have a few keys file, it is easy for me to identify and remove it later when this tutorial is done. The key should be available in your current user .ssh directory. To ensure ssh to localhost is automatic, echo your public key into authorized_keys file as a valid authorized key.
jason@localhost:~$ ls .ssh/
authorized_keys id_rsa id_rsa_hadoop id_rsa_hadoop.pub id_rsa.pub known_hosts

$ cat $HOME/.ssh/id_rsa_hadoop.pub >> $HOME/.ssh/authorized_keys

Right now if you ssh to localhost, you should logged without ssh asking for password in the terminal. That's it for the localhost setup. We will move on to the hadoop configuration.

Download a copy of hadoop. For this example, we are using hadoop version 2.4.0 . You can download it here. Then extract in the Desktop directory.
jason@localhost:~/Desktop$ tar -zxf hadoop-2.4.0.tar.gz
jason@localhost:~/Desktop$ cd hadoop-2.4.0
jason@localhost:~/Desktop/hadoop-2.4.0$ ls
bin etc include lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share

Then we will create directory for namenode and datanode.
jason@localhost:~/Desktop/hadoop-2.4.0$ pwd
/home/jason/Desktop/hadoop-2.4.0
jason@localhost:~/Desktop/hadoop-2.4.0$ mkdir -p hadoop_store/hdfs/namenode hadoop_store/hdfs/datanode

Then there are a few environment needed to be setup. Assuming you are using bash, enter the following into your .bashrc
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_55
export HADOOP_INSTALL=/home/jason/Desktop/hadoop-2.4.0
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END

The only variable you need to take notice is JAVA_HOME and HADOOP_INSTALL. Once this is done, source immediately this file in your terminal as you will use the commands next.
jason@localhost:~/Desktop/hadoop-2.4.0$ source $HOME/.bashrc

We will now configured five xml properties files for hadoop, namely

  1. etc/hadoop/hadoop-env.sh

  2. etc/hadoop/core-site.xml

  3. etc/hadoop/hdfs-site.xml

  4. etc/hadoop/yarn-site.xml

  5. etc/hadoop/mapred-site.xml


It is assume you are still at current working directory such as below so you can easily edit the above files.
$ pwd
/home/jason/Desktop/hadoop-2.4.0

add the following content into etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_55

add the following contents into etc/hadoop/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>

add the following contents into etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/jason/Desktop/hadoop-2.4.0/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/jason/Desktop/hadoop-2.4.0/hadoop_store/hdfs/datanode</value>
</property>

add the following into etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

for file etc/hadoop/mapred-site.xml, you can start by copy from etc/hadoop/mapred-site.xml.template
jason@localhost:~/Desktop/hadoop-2.4.0$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

then add the following into the file  etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

Once it is done, that's it for the hadoop configuration and now run the command hdfs namenode -format . Below is the output in my terminal.
jason@localhost:~/Desktop/hadoop-2.4.0$ hdfs namenode -format
14/05/30 16:00:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.0
STARTUP_MSG: classpath = /home/jason/Desktop/hadoop-2.4.0/etc/hadoop:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/log4j-1.2.17.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/paranamer-2.3.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/avro-1.7.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jackson-xc-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jersey-core-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/protobuf-java-2.5.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jersey-server-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/hadoop-annotations-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jackson-mapper-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/httpcore-4.2.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jets3t-0.9.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jetty-6.1.26.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-beanutils-1.7.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/snappy-java-1.0.4.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jackson-jaxrs-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jasper-compiler-5.5.23.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/slf4j-api-1.7.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/asm-3.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-cli-1.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/zookeeper-3.4.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/hadoop-auth-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jsr305-1.3.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-el-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-math3-3.1.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jsp-api-2.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jaxb-api-2.2.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-lang-2.6.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jsch-0.1.42.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/mockito-all-1.8.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jaxb-impl-2.2.3-1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jettison-1.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/servlet-api-2.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/activation-1.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/xmlenc-0.52.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jetty-util-6.1.26.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/guava-11.0.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jasper-runtime-5.5.23.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-collections-3.2.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-codec-1.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/stax-api-1.0-2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-digester-1.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/xz-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-httpclient-3.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jackson-core-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-net-3.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/jersey-json-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/java-xmlbuilder-0.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/netty-3.6.2.Final.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-logging-1.1.3.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-io-2.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-compress-1.4.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/httpclient-4.2.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/junit-4.8.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/lib/commons-configuration-1.6.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/hadoop-common-2.4.0-tests.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/hadoop-nfs-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/common/hadoop-common-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/log4j-1.2.17.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jersey-core-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/protobuf-java-2.5.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jersey-server-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jackson-mapper-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jetty-6.1.26.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/asm-3.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-cli-1.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jsr305-1.3.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-el-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-daemon-1.0.13.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jsp-api-2.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-lang-2.6.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/servlet-api-2.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/xmlenc-0.52.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jetty-util-6.1.26.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/guava-11.0.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jasper-runtime-5.5.23.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-codec-1.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/jackson-core-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/netty-3.6.2.Final.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-logging-1.1.3.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/lib/commons-io-2.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/hadoop-hdfs-nfs-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/hadoop-hdfs-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/hdfs/hadoop-hdfs-2.4.0-tests.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/log4j-1.2.17.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jackson-xc-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jersey-core-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/protobuf-java-2.5.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jersey-server-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jersey-guice-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jackson-mapper-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jline-0.9.94.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jersey-client-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jetty-6.1.26.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jackson-jaxrs-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/asm-3.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-cli-1.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/zookeeper-3.4.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jsr305-1.3.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/guice-servlet-3.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jaxb-api-2.2.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-lang-2.6.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jaxb-impl-2.2.3-1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/aopalliance-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jettison-1.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/servlet-api-2.5.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/activation-1.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jetty-util-6.1.26.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/javax.inject-1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/guava-11.0.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-collections-3.2.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-codec-1.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/stax-api-1.0-2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/xz-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-httpclient-3.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jackson-core-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/guice-3.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/jersey-json-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/leveldbjni-all-1.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-logging-1.1.3.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-io-2.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/lib/commons-compress-1.4.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-server-applicationhistoryservice-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-server-tests-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-common-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-client-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-server-common-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-api-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-server-web-proxy-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-applications-unmanaged-am-launcher-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/yarn/hadoop-yarn-server-nodemanager-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/log4j-1.2.17.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/paranamer-2.3.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/avro-1.7.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/jersey-core-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/protobuf-java-2.5.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/jersey-server-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/hadoop-annotations-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/jersey-guice-1.9.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/jackson-mapper-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/snappy-java-1.0.4.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/asm-3.2.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/guice-servlet-3.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/aopalliance-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/junit-4.10.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/javax.inject-1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/xz-1.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/hamcrest-core-1.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/jackson-core-asl-1.8.8.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/guice-3.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/netty-3.6.2.Final.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/commons-io-2.4.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/lib/commons-compress-1.4.1.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-shuffle-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-app-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.4.0-tests.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-plugins-2.4.0.jar:/home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.4.0.jar:/contrib/capacity-scheduler/*.jar
STARTUP_MSG: build = http://svn.apache.org/repos/asf/hadoop/common -r 1583262; compiled by 'jenkins' on 2014-03-31T08:29Z
STARTUP_MSG: java = 1.7.0_55
************************************************************/
14/05/30 16:00:55 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]
14/05/30 16:00:55 INFO namenode.NameNode: createNameNode [-format]
14/05/30 16:00:57 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Formatting using clusterid: CID-a15244a5-fea6-42ad-ab38-92b9730521f5
14/05/30 16:00:58 INFO namenode.FSNamesystem: fsLock is fair:true
14/05/30 16:00:58 INFO namenode.HostFileManager: read includes:
HostSet(
)
14/05/30 16:00:58 INFO namenode.HostFileManager: read excludes:
HostSet(
)
14/05/30 16:00:58 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000
14/05/30 16:00:58 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true
14/05/30 16:00:58 INFO util.GSet: Computing capacity for map BlocksMap
14/05/30 16:00:58 INFO util.GSet: VM type = 64-bit
14/05/30 16:00:58 INFO util.GSet: 2.0% max memory 889 MB = 17.8 MB
14/05/30 16:00:58 INFO util.GSet: capacity = 2^21 = 2097152 entries
14/05/30 16:00:58 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false
14/05/30 16:00:58 INFO blockmanagement.BlockManager: defaultReplication = 1
14/05/30 16:00:58 INFO blockmanagement.BlockManager: maxReplication = 512
14/05/30 16:00:58 INFO blockmanagement.BlockManager: minReplication = 1
14/05/30 16:00:58 INFO blockmanagement.BlockManager: maxReplicationStreams = 2
14/05/30 16:00:58 INFO blockmanagement.BlockManager: shouldCheckForEnoughRacks = false
14/05/30 16:00:58 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000
14/05/30 16:00:58 INFO blockmanagement.BlockManager: encryptDataTransfer = false
14/05/30 16:00:58 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000
14/05/30 16:00:58 INFO namenode.FSNamesystem: fsOwner = jason (auth:SIMPLE)
14/05/30 16:00:58 INFO namenode.FSNamesystem: supergroup = supergroup
14/05/30 16:00:58 INFO namenode.FSNamesystem: isPermissionEnabled = true
14/05/30 16:00:58 INFO namenode.FSNamesystem: HA Enabled: false
14/05/30 16:00:58 INFO namenode.FSNamesystem: Append Enabled: true
14/05/30 16:00:59 INFO util.GSet: Computing capacity for map INodeMap
14/05/30 16:00:59 INFO util.GSet: VM type = 64-bit
14/05/30 16:00:59 INFO util.GSet: 1.0% max memory 889 MB = 8.9 MB
14/05/30 16:00:59 INFO util.GSet: capacity = 2^20 = 1048576 entries
14/05/30 16:00:59 INFO namenode.NameNode: Caching file names occuring more than 10 times
14/05/30 16:00:59 INFO util.GSet: Computing capacity for map cachedBlocks
14/05/30 16:00:59 INFO util.GSet: VM type = 64-bit
14/05/30 16:00:59 INFO util.GSet: 0.25% max memory 889 MB = 2.2 MB
14/05/30 16:00:59 INFO util.GSet: capacity = 2^18 = 262144 entries
14/05/30 16:00:59 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033
14/05/30 16:00:59 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0
14/05/30 16:00:59 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000
14/05/30 16:00:59 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
14/05/30 16:00:59 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
14/05/30 16:00:59 INFO util.GSet: Computing capacity for map NameNodeRetryCache
14/05/30 16:00:59 INFO util.GSet: VM type = 64-bit
14/05/30 16:00:59 INFO util.GSet: 0.029999999329447746% max memory 889 MB = 273.1 KB
14/05/30 16:00:59 INFO util.GSet: capacity = 2^15 = 32768 entries
14/05/30 16:00:59 INFO namenode.AclConfigFlag: ACLs enabled? false
14/05/30 16:01:00 INFO namenode.FSImage: Allocated new BlockPoolId: BP-908722954-127.0.1.1-1401436859922
14/05/30 16:01:00 INFO common.Storage: Storage directory /home/jason/Desktop/hadoop-2.4.0/hadoop_store/hdfs/namenode has been successfully formatted.
14/05/30 16:01:01 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
14/05/30 16:01:01 INFO util.ExitUtil: Exiting with status 0
14/05/30 16:01:01 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.1.1
************************************************************/

With this output, you should not see any error. Okay, all good and now, start the engine!
jason@localhost:~/Desktop/hadoop-2.4.0$ start-dfs.sh && start-yarn.sh
14/05/30 16:04:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/jason/Desktop/hadoop-2.4.0/logs/hadoop-jason-namenode-localhost.out
localhost: starting datanode, logging to /home/jason/Desktop/hadoop-2.4.0/logs/hadoop-jason-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /home/jason/Desktop/hadoop-2.4.0/logs/hadoop-jason-secondarynamenode-localhost.out
14/05/30 16:05:09 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
starting yarn daemons
starting resourcemanager, logging to /home/jason/Desktop/hadoop-2.4.0/logs/yarn-jason-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/jason/Desktop/hadoop-2.4.0/logs/yarn-jason-nodemanager-localhost.out
jason@localhost:~/Desktop/hadoop-2.4.0$

So you can check using jps if your hadoop is running. The expected hadoop processes are ResourceManager, SecondaryNameNode, NameNode, NodeManager and DataNode.
jason@localhost:~$ jps
22701 ResourceManager
22512 SecondaryNameNode
22210 NameNode
22800 NodeManager
6728 org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
22840 Jps
22326 DataNode

You can access apache hadoop via the web interfaces:

Cluster status: http://localhost:8088
HDFS status: http://localhost:50070
Secondary NameNode status: http://localhost:50090

So that's looks good, everything is configured and now it is running fine. So we will continue by running a few examples.
jason@localhost:~/Desktop/hadoop-2.4.0$ hadoop jar /home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.4.0-tests.jar TestDFSIO -write -nrFiles 20 -fileSize 10
14/05/30 16:10:54 INFO fs.TestDFSIO: TestDFSIO.1.7
14/05/30 16:10:54 INFO fs.TestDFSIO: nrFiles = 20
14/05/30 16:10:54 INFO fs.TestDFSIO: nrBytes (MB) = 10.0
14/05/30 16:10:54 INFO fs.TestDFSIO: bufferSize = 1000000
14/05/30 16:10:54 INFO fs.TestDFSIO: baseDir = /benchmarks/TestDFSIO
14/05/30 16:10:55 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/05/30 16:10:57 INFO fs.TestDFSIO: creating control file: 10485760 bytes, 20 files
14/05/30 16:11:01 INFO fs.TestDFSIO: created control files for: 20 files
14/05/30 16:11:01 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
14/05/30 16:11:01 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
14/05/30 16:11:04 INFO mapred.FileInputFormat: Total input paths to process : 20
14/05/30 16:11:04 INFO mapreduce.JobSubmitter: number of splits:20
14/05/30 16:11:05 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1401437120030_0001
14/05/30 16:11:06 INFO impl.YarnClientImpl: Submitted application application_1401437120030_0001
14/05/30 16:11:06 INFO mapreduce.Job: The url to track the job: http://localhost:8088/proxy/application_1401437120030_0001/
14/05/30 16:11:06 INFO mapreduce.Job: Running job: job_1401437120030_0001
14/05/30 16:11:28 INFO mapreduce.Job: Job job_1401437120030_0001 running in uber mode : false
14/05/30 16:11:28 INFO mapreduce.Job: map 0% reduce 0%
14/05/30 16:12:30 INFO mapreduce.Job: map 7% reduce 0%
14/05/30 16:12:31 INFO mapreduce.Job: map 17% reduce 0%
14/05/30 16:12:34 INFO mapreduce.Job: map 23% reduce 0%
14/05/30 16:12:36 INFO mapreduce.Job: map 28% reduce 0%
14/05/30 16:12:37 INFO mapreduce.Job: map 30% reduce 0%
14/05/30 16:13:36 INFO mapreduce.Job: map 33% reduce 0%
14/05/30 16:13:39 INFO mapreduce.Job: map 40% reduce 0%
14/05/30 16:13:40 INFO mapreduce.Job: map 42% reduce 0%
14/05/30 16:13:42 INFO mapreduce.Job: map 52% reduce 0%
14/05/30 16:13:43 INFO mapreduce.Job: map 55% reduce 0%
14/05/30 16:13:44 INFO mapreduce.Job: map 58% reduce 0%
14/05/30 16:13:45 INFO mapreduce.Job: map 60% reduce 0%
14/05/30 16:14:47 INFO mapreduce.Job: map 67% reduce 2%
14/05/30 16:14:50 INFO mapreduce.Job: map 75% reduce 2%
14/05/30 16:14:51 INFO mapreduce.Job: map 78% reduce 22%
14/05/30 16:14:53 INFO mapreduce.Job: map 82% reduce 22%
14/05/30 16:14:54 INFO mapreduce.Job: map 85% reduce 22%
14/05/30 16:14:55 INFO mapreduce.Job: map 85% reduce 28%
14/05/30 16:15:37 INFO mapreduce.Job: map 88% reduce 28%
14/05/30 16:15:40 INFO mapreduce.Job: map 93% reduce 28%
14/05/30 16:15:42 INFO mapreduce.Job: map 95% reduce 32%
14/05/30 16:15:44 INFO mapreduce.Job: map 100% reduce 32%
14/05/30 16:15:45 INFO mapreduce.Job: map 100% reduce 67%
14/05/30 16:15:47 INFO mapreduce.Job: map 100% reduce 100%
14/05/30 16:15:49 INFO mapreduce.Job: Job job_1401437120030_0001 completed successfully
14/05/30 16:15:50 INFO mapreduce.Job: Counters: 50
File System Counters
FILE: Number of bytes read=1673
FILE: Number of bytes written=1965945
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=4720
HDFS: Number of bytes written=209715278
HDFS: Number of read operations=83
HDFS: Number of large read operations=0
HDFS: Number of write operations=22
Job Counters
Killed map tasks=3
Launched map tasks=23
Launched reduce tasks=1
Data-local map tasks=23
Total time spent by all maps in occupied slots (ms)=1319128
Total time spent by all reduces in occupied slots (ms)=124593
Total time spent by all map tasks (ms)=1319128
Total time spent by all reduce tasks (ms)=124593
Total vcore-seconds taken by all map tasks=1319128
Total vcore-seconds taken by all reduce tasks=124593
Total megabyte-seconds taken by all map tasks=1350787072
Total megabyte-seconds taken by all reduce tasks=127583232
Map-Reduce Framework
Map input records=20
Map output records=100
Map output bytes=1467
Map output materialized bytes=1787
Input split bytes=2470
Combine input records=0
Combine output records=0
Reduce input groups=5
Reduce shuffle bytes=1787
Reduce input records=100
Reduce output records=5
Spilled Records=200
Shuffled Maps =20
Failed Shuffles=0
Merged Map outputs=20
GC time elapsed (ms)=14063
CPU time spent (ms)=127640
Physical memory (bytes) snapshot=5418561536
Virtual memory (bytes) snapshot=14516457472
Total committed heap usage (bytes)=4196401152
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=2250
File Output Format Counters
Bytes Written=78
14/05/30 16:15:50 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write
14/05/30 16:15:50 INFO fs.TestDFSIO: Date & time: Fri May 30 16:15:50 MYT 2014
14/05/30 16:15:50 INFO fs.TestDFSIO: Number of files: 20
14/05/30 16:15:50 INFO fs.TestDFSIO: Total MBytes processed: 200.0
14/05/30 16:15:50 INFO fs.TestDFSIO: Throughput mb/sec: 1.6888468553671554
14/05/30 16:15:50 INFO fs.TestDFSIO: Average IO rate mb/sec: 1.840719223022461
14/05/30 16:15:50 INFO fs.TestDFSIO: IO rate std deviation: 0.7043729046488437
14/05/30 16:15:50 INFO fs.TestDFSIO: Test exec time sec: 289.58
14/05/30 16:15:50 INFO fs.TestDFSIO:

clean the project.
jason@localhost:~/Desktop/hadoop-2.4.0$ hadoop jar /home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.4.0-tests.jar TestDFSIO -clean
14/05/30 16:20:03 INFO fs.TestDFSIO: TestDFSIO.1.7
14/05/30 16:20:03 INFO fs.TestDFSIO: nrFiles = 1
14/05/30 16:20:03 INFO fs.TestDFSIO: nrBytes (MB) = 1.0
14/05/30 16:20:03 INFO fs.TestDFSIO: bufferSize = 1000000
14/05/30 16:20:03 INFO fs.TestDFSIO: baseDir = /benchmarks/TestDFSIO
14/05/30 16:20:04 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/05/30 16:20:06 INFO fs.TestDFSIO: Cleaning up test files

another job example.
jason@localhost:~/Desktop/hadoop-2.4.0$ hadoop jar /home/jason/Desktop/hadoop-2.4.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.0.jar pi 2 5
Number of Maps = 2
Samples per Map = 5
14/05/30 16:21:18 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Wrote input for Map #0
Wrote input for Map #1
Starting Job
14/05/30 16:21:23 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
14/05/30 16:21:25 INFO input.FileInputFormat: Total input paths to process : 2
14/05/30 16:21:26 INFO mapreduce.JobSubmitter: number of splits:2
14/05/30 16:21:27 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1401437120030_0002
14/05/30 16:21:28 INFO impl.YarnClientImpl: Submitted application application_1401437120030_0002
14/05/30 16:21:28 INFO mapreduce.Job: The url to track the job: http://localhost:8088/proxy/application_1401437120030_0002/
14/05/30 16:21:28 INFO mapreduce.Job: Running job: job_1401437120030_0002
14/05/30 16:21:53 INFO mapreduce.Job: Job job_1401437120030_0002 running in uber mode : false
14/05/30 16:21:53 INFO mapreduce.Job: map 0% reduce 0%
14/05/30 16:22:18 INFO mapreduce.Job: map 100% reduce 0%
14/05/30 16:22:34 INFO mapreduce.Job: map 100% reduce 100%
14/05/30 16:22:35 INFO mapreduce.Job: Job job_1401437120030_0002 completed successfully
14/05/30 16:22:36 INFO mapreduce.Job: Counters: 49
File System Counters
FILE: Number of bytes read=50
FILE: Number of bytes written=280470
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=530
HDFS: Number of bytes written=215
HDFS: Number of read operations=11
HDFS: Number of large read operations=0
HDFS: Number of write operations=3
Job Counters
Launched map tasks=2
Launched reduce tasks=1
Data-local map tasks=2
Total time spent by all maps in occupied slots (ms)=46538
Total time spent by all reduces in occupied slots (ms)=13821
Total time spent by all map tasks (ms)=46538
Total time spent by all reduce tasks (ms)=13821
Total vcore-seconds taken by all map tasks=46538
Total vcore-seconds taken by all reduce tasks=13821
Total megabyte-seconds taken by all map tasks=47654912
Total megabyte-seconds taken by all reduce tasks=14152704
Map-Reduce Framework
Map input records=2
Map output records=4
Map output bytes=36
Map output materialized bytes=56
Input split bytes=294
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=56
Reduce input records=4
Reduce output records=0
Spilled Records=8
Shuffled Maps =2
Failed Shuffles=0
Merged Map outputs=2
GC time elapsed (ms)=631
CPU time spent (ms)=7890
Physical memory (bytes) snapshot=623665152
Virtual memory (bytes) snapshot=2097958912
Total committed heap usage (bytes)=559939584
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=236
File Output Format Counters
Bytes Written=97
Job Finished in 73.196 seconds
Estimated value of Pi is 3.60000000000000000000

You can also create file and save on hadoop. You can read more at http://hadoop.apache.org/docs/r2.4.0/hadoop-project-dist/hadoop-common/FileSystemShell.html
jason@localhost:~$ hadoop fs -mkdir -p /user/hduser
14/05/30 16:27:31 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
jason@localhost:~$ hadoop fs -copyFromLocal dummy.txt dummy.txt
14/05/30 16:27:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
jason@localhost:~$ hadoop fs -ls
14/05/30 16:28:10 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 1 items
-rw-r--r-- 1 jason supergroup 13 2014-05-30 16:27 dummy.txt
jason@localhost:~$ hadoop fs -cat /user/hduser/dummy.txt
14/05/30 16:29:00 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
cat: `/user/hduser/dummy.txt': No such file or directory
jason@localhost:~$ hadoop fs -cat /user/jason/dummy.txt
14/05/30 16:29:11 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
hello world.
jason@localhost:~$ hadoop fs -ls /
14/05/30 16:29:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 3 items
drwxr-xr-x - jason supergroup 0 2014-05-30 16:20 /benchmarks
drwx------ - jason supergroup 0 2014-05-30 16:11 /tmp
drwxr-xr-x - jason supergroup 0 2014-05-30 16:27 /user
jason@localhost:~$ hadoop fs -rm dummy.txt
14/05/30 16:29:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/05/30 16:29:54 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted dummy.txt
jason@localhost:~$ hadoop fs -ls
14/05/30 16:30:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
jason@localhost:~$

Once you are done with hadoop cluster, you can shut it down using stop-dfs.sh && stop-yarn.sh
jason@localhost:~/Desktop/hadoop-2.4.0$ stop-dfs.sh && stop-yarn.sh
14/05/30 17:51:05 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes on [localhost]
localhost: stopping namenode
localhost: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
14/05/30 17:51:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
stopping yarn daemons
stopping resourcemanager
localhost: stopping nodemanager
no proxyserver to stop

You can remove/revert the changes you made for this tutorial.

/home/jason/Desktop/hadoop-2.4.0
/home/jason/.ssh/id_rsa_hadoop.pub
/home/jason/.ssh/id_rsa_hadoop
/home/jason/.ssh/authorized_keys
/home/jason/.bashrc

That's it for this lengthy article, hope you like it and if you learn something , remember to donate to us too!

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!