You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by air <cn...@gmail.com> on 2011/07/30 09:17:43 UTC

Fwd: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is preventing HBase from connecting to ZooKeeper

---------- Forwarded message ----------
From: air <cn...@gmail.com>
Date: 2011/7/30
Subject: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is
preventing HBase from connecting to ZooKeeper
To: CDH Users <cd...@cloudera.org>



when I load data to HBase, the error occurred, I am using the Hadoop new API
to do the work (when use old api , it works well). is there something wrong
in my program ?  thank you for your help .

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;


public class NewLoadToHBase {

    public static class Map extends Mapper<LongWritable, Text, NullWritable,
NullWritable>{

        private Configuration conf = null;
        private HTable table = null;

        @Override
        protected void setup(Context context)throws IOException,
InterruptedException{
            super.setup(context);
            conf = context.getConfiguration(); // 在map任务执行前将conf设置好
            try{
                this.table = new HTable(conf , "observations");
            }catch(IOException e){
                throw new RuntimeException("Failed HTable construction", e);
            }
        }

        @Override
        protected void cleanup(Context context) throws IOException,
InterruptedException{
            super.cleanup(context);
            table.close();
        }

        public void map(LongWritable key, Text value, Context context)
throws IOException{
            String[] valuelist = value.toString().split("\t");
            String uid = valuelist[0];
            byte[] rowKey = uid.getBytes();
            Put p = new Put(rowKey);
            p.add("content".getBytes(), "attr1".getBytes(),
"testvalue".getBytes());
            table.put(p);
        }
    }

    public static void main(String[] args) throws IOException,
InterruptedException, ClassNotFoundException {
        Configuration conf = new Configuration();
        String[] otherArgs = new GenericOptionsParser(conf,
args).getRemainingArgs();
        if(otherArgs.length != 1){
            System.err.println("Usage: wordcount <in>");
            System.exit(2);
        }

        Job job = new Job(conf, "NewLoadToHBase!");
        TableMapReduceUtil.addDependencyJars(job);
        job.setJarByClass(NewLoadToHBase.class);
        job.setMapperClass(Map.class);
        job.setNumReduceTasks(0);
        job.setInputFormatClass(TextInputFormat.class);
        job.setOutputFormatClass(NullOutputFormat.class);
        FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }

}


javac NewLoadToHBase.java
jar cvf newloadtohbase.jar *.class
hadoop jar newloadtohbase.jar NewLoadToHBase
/user/hive/warehouse/datamining.db/mid_firsttime/platform=xxx/000000_0

and it reports:

...
11/07/30 15:10:22 INFO mapred.JobClient: Task Id :
attempt_201107291656_2633_m_000000_1, Status : FAILED
java.lang.RuntimeException: Failed HTable construction
        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:37)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
        at org.apache.hadoop.mapred.Child.main(Child.java:264)
Caused by: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is
preventing HBase from connecting to ZooKeeper
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:994)
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
        at
org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:168)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:146)
        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:35)
        ... 8 more
Caused by: java.io.IOException: Unable to determine ZooKeeper ensemble
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:92)
        at
org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:119)
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:990)
        ... 14 more

11/07/30 15:10:27 INFO mapred.JobClient: Task Id :
attempt_201107291656_2633_m_000000_2, Status : FAILED
java.lang.RuntimeException: Failed HTable construction
        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:37)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
        at org.apache.hadoop.mapred.Child.main(Child.java:264)
Caused by: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is
preventing HBase from connecting to ZooKeeper
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:994)
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
        at
org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:168)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:146)
        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:35)
        ... 8 more
Caused by: java.io.IOException: Unable to determine ZooKeeper ensemble
        at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:92)
        at
org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:119)
        at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:990)
        ... 14 more
...

can anyone help me ? thank you !

-- 
Knowledge Mangement .




-- 
Knowledge Mangement .

Re: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is preventing HBase from connecting to ZooKeeper

Posted by Jean-Daniel Cryans <jd...@apache.org>.
The error should have been printed as an ERROR just before those
lines. Make sure you followed this guide to get the configurations
right: http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapreduce/package-summary.html#classpath

J-D

On Sat, Jul 30, 2011 at 12:17 AM, air <cn...@gmail.com> wrote:
> ---------- Forwarded message ----------
> From: air <cn...@gmail.com>
> Date: 2011/7/30
> Subject: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is
> preventing HBase from connecting to ZooKeeper
> To: CDH Users <cd...@cloudera.org>
>
>
>
> when I load data to HBase, the error occurred, I am using the Hadoop new API
> to do the work (when use old api , it works well). is there something wrong
> in my program ?  thank you for your help .
>
> import java.io.IOException;
>
> import org.apache.hadoop.conf.Configuration;
> import org.apache.hadoop.io.LongWritable;
> import org.apache.hadoop.io.NullWritable;
> import org.apache.hadoop.io.Text;
> import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
> import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
> import org.apache.hadoop.mapreduce.Job;
> import org.apache.hadoop.mapreduce.Mapper;
> import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
> import org.apache.hadoop.util.GenericOptionsParser;
>
> import org.apache.hadoop.fs.Path;
> import org.apache.hadoop.hbase.HBaseConfiguration;
> import org.apache.hadoop.hbase.client.HTable;
> import org.apache.hadoop.hbase.client.Put;
> import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
>
>
> public class NewLoadToHBase {
>
>    public static class Map extends Mapper<LongWritable, Text, NullWritable,
> NullWritable>{
>
>        private Configuration conf = null;
>        private HTable table = null;
>
>        @Override
>        protected void setup(Context context)throws IOException,
> InterruptedException{
>            super.setup(context);
>            conf = context.getConfiguration(); // 在map任务执行前将conf设置好
>            try{
>                this.table = new HTable(conf , "observations");
>            }catch(IOException e){
>                throw new RuntimeException("Failed HTable construction", e);
>            }
>        }
>
>        @Override
>        protected void cleanup(Context context) throws IOException,
> InterruptedException{
>            super.cleanup(context);
>            table.close();
>        }
>
>        public void map(LongWritable key, Text value, Context context)
> throws IOException{
>            String[] valuelist = value.toString().split("\t");
>            String uid = valuelist[0];
>            byte[] rowKey = uid.getBytes();
>            Put p = new Put(rowKey);
>            p.add("content".getBytes(), "attr1".getBytes(),
> "testvalue".getBytes());
>            table.put(p);
>        }
>    }
>
>    public static void main(String[] args) throws IOException,
> InterruptedException, ClassNotFoundException {
>        Configuration conf = new Configuration();
>        String[] otherArgs = new GenericOptionsParser(conf,
> args).getRemainingArgs();
>        if(otherArgs.length != 1){
>            System.err.println("Usage: wordcount <in>");
>            System.exit(2);
>        }
>
>        Job job = new Job(conf, "NewLoadToHBase!");
>        TableMapReduceUtil.addDependencyJars(job);
>        job.setJarByClass(NewLoadToHBase.class);
>        job.setMapperClass(Map.class);
>        job.setNumReduceTasks(0);
>        job.setInputFormatClass(TextInputFormat.class);
>        job.setOutputFormatClass(NullOutputFormat.class);
>        FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
>        System.exit(job.waitForCompletion(true) ? 0 : 1);
>    }
>
> }
>
>
> javac NewLoadToHBase.java
> jar cvf newloadtohbase.jar *.class
> hadoop jar newloadtohbase.jar NewLoadToHBase
> /user/hive/warehouse/datamining.db/mid_firsttime/platform=xxx/000000_0
>
> and it reports:
>
> ...
> 11/07/30 15:10:22 INFO mapred.JobClient: Task Id :
> attempt_201107291656_2633_m_000000_1, Status : FAILED
> java.lang.RuntimeException: Failed HTable construction
>        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:37)
>        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
>        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
>        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
>        at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at javax.security.auth.Subject.doAs(Subject.java:396)
>        at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
>        at org.apache.hadoop.mapred.Child.main(Child.java:264)
> Caused by: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is
> preventing HBase from connecting to ZooKeeper
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:994)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
>        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:168)
>        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:146)
>        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:35)
>        ... 8 more
> Caused by: java.io.IOException: Unable to determine ZooKeeper ensemble
>        at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:92)
>        at
> org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:119)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:990)
>        ... 14 more
>
> 11/07/30 15:10:27 INFO mapred.JobClient: Task Id :
> attempt_201107291656_2633_m_000000_2, Status : FAILED
> java.lang.RuntimeException: Failed HTable construction
>        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:37)
>        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
>        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
>        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
>        at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at javax.security.auth.Subject.doAs(Subject.java:396)
>        at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
>        at org.apache.hadoop.mapred.Child.main(Child.java:264)
> Caused by: org.apache.hadoop.hbase.ZooKeeperConnectionException: An error is
> preventing HBase from connecting to ZooKeeper
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:994)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
>        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:168)
>        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:146)
>        at NewLoadToHBase$Map.setup(NewLoadToHBase.java:35)
>        ... 8 more
> Caused by: java.io.IOException: Unable to determine ZooKeeper ensemble
>        at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:92)
>        at
> org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:119)
>        at
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:990)
>        ... 14 more
> ...
>
> can anyone help me ? thank you !
>
> --
> Knowledge Mangement .
>
>
>
>
> --
> Knowledge Mangement .
>