I am using hcatalog 0.11 and hadoop 1.2
I have a singleton HCatClient object in my project. I am using that to get a “HCatTable” object so I can find out the
location in HDFS for its files. Works perfectly fine for a single table. For multiple, error…
But I get following error:
org.apache.hcatalog.api.ConnectionFailureException: org.apache.hcatalog.common.HCatException : 9001 : Exception occurred while processing HCat request : TException while adding partition.. Cause : org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Read timed out
Caused by: java.net.SocketTimeoutException: Read timed out
The stack trace is at: http://pastebin.com/4xTXuVvL
I have a test class that demonstrates this behavior: http://pastebin.com/JQF5UDic
What am I missing?
thanks
ameet
—
package hcatTest;
import org.apache.hadoop.conf.Configuration;
import org.apache.hcatalog.api.HCatClient;
import org.apache.hcatalog.api.HCatTable;
import org.apache.hcatalog.common.HCatException;
public class HcatTest extends Thread {
private HCatClient hc;
public HcatTest(HCatClient hc) throws HCatException {
super(String.valueOf(System.currentTimeMillis()));
System.out.println(“I am thread#:”+this);
this.hc = hc;
start();
}
public void run(){
HCatTable tab = null;
try {
tab = hc.getTable(“ifr_stg”, “addr_data_stg”);
} catch (HCatException e) {
System.out.println(“Oops !! Caught hcat exception…”);
e.printStackTrace();
}
System.out.println(“Tab:”+tab.getTableName());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) throws HCatException {
Configuration conf = new Configuration();
HCatClient hc = HCatClient.create(conf);
Thread t1 = new HcatTest(hc);
Thread t2 = new HcatTest(hc);
}
}