分享

运行hbase程序的时候,报错 org.apache.hadoop.hbase.MasterNotRunningException

yunge2016 发表于 2017-6-14 19:43:55 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 12606
今天学习了hbase的API程序,晚上练手的时候,集群中的进程都正常。zookeeper和hbase节点都能正常启动。但是程序一直跑,不出结果。最后出来的就是这个错误。
报错:  org.apache.hadoop.hbase.MasterNotRunningException;  Exception in thread "main" java.net.SocketTimeoutException: callTimeout=1200000, callDuration=1217754:
我查了一下网上的解决方案说是hbase下的Lib包里的jar包问题,可以查看hbase下并没有hadoop-core.jar文件,只有两个jar。 请问大神们如何解决,感谢

已有(6)人评论

跳转到指定楼层
nextuser 发表于 2017-6-14 20:11:25
程序一直跑,不能出结果,然后报错。是这个意思吗?
程序为何会一直跑,跑的什么程序。进程是否有僵尸进程等,这些都需要知道。最好重启下
回复

使用道具 举报

yunge2016 发表于 2017-6-14 20:23:35
重启了没用,把linux系统都重启了后又气动的集群,所有的节点都正常。zookeeper节点和hbase都正常。hbase shell也可以进去可以创建表和操作表。但是在eclipse中写的API操作hbase就报错。没有僵尸进程。就是设置的心跳机制等待时间过长了,大概是20分钟 才会回应。跑的就是hbase的API,比如创建表的程序。
回复

使用道具 举报

qcbb001 发表于 2017-6-14 20:32:02
yunge2016 发表于 2017-6-14 20:23
重启了没用,把linux系统都重启了后又气动的集群,所有的节点都正常。zookeeper节点和hbase都正常。hbase s ...

把跑的程序和详细错误都贴出来看下
回复

使用道具 举报

yunge2016 发表于 2017-6-14 20:45:53
代码如下:
public class HBase_APIDemo {
         public  static  void  main (String []args) throws  IOException{
         Configuration conf= HBaseConfiguration.create();
         conf.set("hbase.zookeeper.quorum",Zookeeper.HostNames);  //设置zookeeper的地址
        // 设置链接hbase的链接对象
         Connection conn= ConnectionFactory.createConnection(conf);
        //获取操作hbase数据库的对象
         HBaseAdmin hBaseAdmin=(HBaseAdmin) conn.getAdmin();

         createNamespace(hBaseAdmin);
     }

     /**
      *  创建命名空间
      *  create namespace
      * */
        public static  void  createNamespace(HBaseAdmin hBaseAdmin) throws  IOException{
                hBaseAdmin.createNamespace(NamespaceDescriptor.create("beicai2").build());
                hBaseAdmin.close();
            System.out.println("---------create namespace successful!----------");
        }

错误如下:
错误需要等20多分钟才能出来的。悲剧了
回复

使用道具 举报

qcbb001 发表于 2017-6-14 21:01:26
yunge2016 发表于 2017-6-14 20:45
代码如下:
public class HBase_APIDemo {
         public  static  void  main (String []args) throws  IOExce ...

楼主没有指定master,所以出现master异常,可以按照下面的代码修改
package www.aboutyun.com.hbase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.util.Bytes;

public class OperateTable {
         public static void main(String[] args) throws IOException {
         
         Configuration conf = HBaseConfiguration.create();
         conf.set("hbase.zookeeper.quorum", "master");//使用eclipse时必须添加这个,否则无法定位
         conf.set("hbase.zookeeper.property.clientPort", "2181");
         HBaseAdmin admin = new HBaseAdmin(conf);// 新建一个数据库管理员//新api
         HTableDescriptor desc=new HTableDescriptor(TableName.valueOf("blog"));
         //HTableDescriptor desc = new HTableDescriptor("blog");
         desc.addFamily(new HColumnDescriptor("article"));
         desc.addFamily(new HColumnDescriptor("author"));
         admin.createTable(desc );
         admin.close();
         //admin.disableTable("blog");
         //admin.deleteTable("blog");
         //assertThat(admin.tableExists("blog"),is(false));
   }
}
来自:
hbase开发环境搭建及运行hbase小实例(HBase 0.98.3新api)
http://www.aboutyun.com/forum.php?mod=viewthread&tid=8401


回复

使用道具 举报

yunge2016 发表于 2017-6-15 18:50:21
还真是这里的问题啊,谢谢了啊,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条