当前位置: 首页 > news >正文

解决org.apache.hadoop.hbase.MasterNotRunningException

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

最近在研究hbase,本地java client获取不了region table数据,一直报错:

Exception in thread "main" java.net.SocketTimeoutException: callTimeout=10000, callDuration=11021: 
	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:169)
	at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:4297)
	at org.apache.hadoop.hbase.client.HBaseAdmin.getTableDescriptor(HBaseAdmin.java:556)
	at org.apache.hadoop.hbase.client.HTable.getTableDescriptor(HTable.java:576)
	at com.navercorp.pinpoint.web.HbaseClient.main(HbaseClient.java:49)
Caused by: org.apache.hadoop.hbase.MasterNotRunningException: org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException: org.apache.hadoop.net.ConnectTimeoutException: 10000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=hbase-master-01/100.100.100.100:16000]
	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$StubMaker.makeStub(ConnectionManager.java:1561)
	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(ConnectionManager.java:1581)
	at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getKeepAliveMasterService(ConnectionManager.java:1738)
	at org.apache.hadoop.hbase.client.MasterCallable.prepare(MasterCallable.java:38)
	at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:134)
	... 4 more

从异常中可以看出链接hbase-master-01/100.100.100.100:16000超时。解决顺序如下:

步骤一:

查看hbase是否启动成功:

1)可以通过jsp查看是否有进程

2)通过hbase自带shell scan数据

到hbase bin目录下执行 ./hbase shell

进入命令行再执行scan 'hbase:meta'

步骤二:

当确认hbase服务正常后,检查服务器host与本机host

服务器更改前:

服务器更改后:

去除空的localhost,并且在本机host也加上:100.100.100.100 hbase-master-01

步骤三:

如果改host也无效,那么就应该是端口没开放。这也正是我遇到的问题。

尝试telnet 100.100.100.100 16000无果,说明端口没有开。(16000端口是链接hbase master默认端口)

1)要么打开防火墙,开启16000端口

2)要么改hbase的master链接端口

打开hbase/conf/hbase-site.xml文件。添加端口信息:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///data/xxx/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>100.100.100.100</value>
  </property>
<property>
 <name>hbase.zookeeper.property.clientPort</name>
 <value>2181</value>
 </property>
<property>
    <name>hbase.master.ipc.address</name>
    <value>0.0.0.0</value>
  </property>
<property>
    <name>hbase.regionserver.ipc.address</name>
    <value>0.0.0.0</value>
  </property>
<property>
    <name>hbase.master.port</name>
    <value>22001</value>
  </property>
<property>
    <name>hbase.master.info.port</name>
    <value>22002</value>
  </property>
<property>
    <name>hbase.regionserver.port</name>
    <value>22003</value>
  </property>
<property>
    <name>hbase.regionserver.info.port</name>
    <value>22004</value>
  </property>
</configuration>

hbase.zookeeper.quorum 设置zk地址,如果使用hbase自带zk就填hbase地址,千万别用默认localhost

hbase.master.port 顾名思义,设置一个已开放端口

hbase.master.info.port 是hbase master的运行信息的web界面,访问100.100.100.100:22002

hbase.regionserver.port 顾名思义,设置一个已开放端口

hbase.regionserver.info.port 是hbase region的运行信息的web界面,访问100.100.100.100:22004

最后重启hbase即可。

 

更多hbase参数:http://hbase.apache.org/book.html

转载于:https://my.oschina.net/kyle1970/blog/2353891

相关文章:

  • Vue CLI 3开发中屏蔽烦人的EsLint错误
  • 搞定所有的跨域请求问题: jsonp CORS
  • 开源运维管理平台(ows) damo版本源码发布
  • 精彩回顾 | 阿里云APM城市技术行·深圳站
  • ballerina 学习 三十一 扩展开发(二)
  • ES7 之 Async/await 的使用(改进 Promise 链式操作)
  • LAMP+Postfix+Dovecot+Postfixadmin搭建邮件管理系统(三)
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • webpack 4.x一起学习(二)
  • String类的常用方法详解
  • web开发原则
  • 视频文件应该怎样进行无损压缩
  • 删除小脚本 srm
  • python爬虫系列(2.1-requests库的基本的使用)
  • 我的原型链家族将要崛起。
  • hexo+github搭建个人博客
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Apache Pulsar 2.1 重磅发布
  • canvas 绘制双线技巧
  • Computed property XXX was assigned to but it has no setter
  •  D - 粉碎叛乱F - 其他起义
  • E-HPC支持多队列管理和自动伸缩
  • go append函数以及写入
  • JavaScript函数式编程(一)
  • node 版本过低
  • overflow: hidden IE7无效
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Promise面试题,控制异步流程
  • 程序员该如何有效的找工作?
  • 猴子数据域名防封接口降低小说被封的风险
  • 记一次删除Git记录中的大文件的过程
  • 通过npm或yarn自动生成vue组件
  • 通信类
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • Java总结 - String - 这篇请使劲喷我
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​你们这样子,耽误我的工作进度怎么办?
  • # Maven错误Error executing Maven
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (C++17) std算法之执行策略 execution
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (java)关于Thread的挂起和恢复
  • (力扣)循环队列的实现与详解(C语言)
  • (南京观海微电子)——I3C协议介绍
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)Oracle存储过程编写经验和优化措施
  • *1 计算机基础和操作系统基础及几大协议
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Core使用NPOI导出复杂,美观的Excel详解