1
votes

Componet used:- -Ubuntu 12.04, hive(0.9.0), hbase(0.94.3), hadoop(0.20.2)-single-node, zookeeper-3.4.3, guava-11.0.2, hive-hbase-handler-0.9.0

tutorials:-https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

steps 1) start hadoop, 2) start hbase-master 3) start hiveserver 4) start hive shell using --auxpath parameters as in tutorial (all works without errors - JobTracker,HRegionServer,HMaster,DataNode,NameNode,SecondaryNameNode,TaskTracker,HQuorumPeer,Jps)

hbase(main):001:0> status
1 servers, 0 dead, 2.0000 average load

On hive shell I create can create table as

CREATE TABLE IF NOT EXISTS familia (id_familia INT,fk_veiculo INT,fk_cliente INT,nome STRING) ROW FORMAT delimited fields terminated by ',' STORED AS TEXTFILE;
load data local inpath '/home/trendwise/hive_data/tables_csv/familia.csv' overwrite into table familia;

but when I do below query,nothing shown,just cursor blinking.I waited for long time,then error shown

CREATE TABLE hbase_familia_1 (key int, id_familia int, fk_veiculo INT,fk_cliente INT,nome STRING)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key, cf1:id_familia, cf2:fk_veiculo,cf3:fk_cliente, cf4:nome")
TBLPROPERTIES ("hbase.table.name" = "hbase_familia");

I did list on hbase shell,which didn't show any table what I tried ?

Error:-

FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningException: Retried 10 times
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:127)
at org.apache.hadoop.hive.hbase.HBaseStorageHandler.getHBaseAdmin(HBaseStorageHandler.java:73)
at org.apache.hadoop.hive.hbase.HBaseStorageHandler.preCreateTable(HBaseStorageHandler.java:147)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:398)
at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:538)
at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3305)
at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:242)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:134)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1326)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1118)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:951)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:258)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:215)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:406)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:689)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:557)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
) FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

hbase-site.xml

<property>
 <name>hbase.rootdir</name>
 <value>hdfs://localhost:54310/hbase</value>
</property>
<property>
 <name>dfs.replication</name>
 <value>1</value>
</property>
<property>
 <name>hbase.zookeeper.property.dataDir</name>
 <value>/home/trendwise/hadoop/hbase-0.94.3/hbase_dataDir</value>
</property>
<property>
 <name>hbase.zookeeper.property.clientPort</name>
 <value>2222</value>
 <description>Property from ZooKeeper's config zoo.cfg.
 </description>
</property>
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>localhost</value>
 <description></description>
</property>
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
 <description></description>
</property>
3
Did you verify your HMaster is running using jps? And do you manage your own ZooKeeper instance? If not, you should not set all these ZooKeeper properties, you can just set HBASE_MANAGES_ZK in $HBASE_HOME/conf/hbase-env.sh.Pieterjan
@Pieterjan, HMaster is running after jps,but no HRegionServer & HQuorumPeer,Is these are such important ?.I am not managing my own ZooKeeper,so I uncomment export HBASE_MANAGES_ZK=true in hbase-env.sh & withdraw hbase.cluster.distributedhbase.zookeeper.property.clientPort,hbase.z ookeeper.quorum propertiesSagar Nikam
That's correct. As long as HBase manages ZooKeeper there is no need for HRegionServer and HQuorumPeer to run, as far as I know. At lest that's the case in psuedo-distributed mode. After these changes you still get the same error? What does your log file say?Pieterjan

3 Answers

0
votes

Change the line that has "127.0.1.1" in your /etc/hosts file to "127.0.0.1" and restart everything. Also, copy hbase-site.xml into the HIVE_HOME/conf directory.

0
votes

Hbase is not able to start all of its daemons...so u might get a clue in hbase logs...see if u can find anything in the hbase logs and report that error...hope this works...

0
votes

It seems Hive is not able to find the required jar files

Try to execute the command with all the

hive –auxpath /path-to-/hive-examples.jar;other jar files too seperated by semicolon

and then try putting the hbase conf file in hive conf directory.

and define aux path in hive-site.xml or in hive-env.sh and try

these error are mostly due to hive being not able to connect to hadoop or hbase.

and also check all the daemons are running of hbase and you can perform all the opoeration on hbase shell.