Hi everyone,
Following is mine test environment:
node 1:namenode, secondarynamenode, jobtracker, hbase master
node 2:datanode, tasktracker
In node 1, I run following COMMANDS in pig shell, but I found map task failed
in tasktracker node with error "HBase is able to connect to ZooKeeper but the
connection closes immediately.". This mean tasktracker did not get current
hbase configuration. But I can find the correct hbase configuration in
jobtracker node. Seems tasktracker node did not get configuration from
jobtracker node, but get configuration from hadoop classpath in tasktracker
node.
I think tasktracker node should get hbase configuration from jobtracker node,
but not from local hadoop classpath. Am I correct?
In tasktracker side, after I add hbase-site.xml to hadoop classpath, the test
case passed.
My question is: how tasktracker node get hbase configuration from tasktracker
side? From jobtracker side(included in *.jar file transferred by jobtracker
node) or local hadoop classpath?
COMMANDS:
REGISTER /home/pig/Rules.jar;
REGISTER '/home/pig/zookeeper.jar';
REGISTER '/home/pig/guava-r06.jar';
REGISTER '/home/pig/hbase-0.90.5.jar';
test = LOAD 'hbase://table' USING
org.apache.pig.backend.hadoop.hbase.HBaseStorage( 'd:sWords','-loadKey true')
AS (ID: bytearray , Words:chararray );
result = FOREACH test GENERATE ID, com.nice.rules.RunRules(Words);
--result = FOREACH AA GENERATE com.nice.rules.RunRules(Words), ID;
--dump result;
store result into 'table' using
org.apache.pig.backend.hadoop.hbase.HBaseStorage('d:drools_cat');
--store result into 'AA_10_categs' using
org.apache.pig.backend.hadoop.hbase.HBaseStorage('d:cat');