这里写目录标题
- Hadoop伪分布式启动无datanode
- 关闭hbase时报错,stopping hbasecat: /tmp/hbase-lgm-master.pid: No such a file。没有那个文件或目录
- 解决Hbase启动后,hmaster会在几秒钟后自动关闭(停掉)
- python连接HBase
- HBase完全分布式,启动后使用jps查看
- HBase伪分布式,启动可以看到相关进程,但是shell操作时报错:Master未启动
- HBase伪分布式自动关闭
- HBase的浏览器访问
- HBase的编程API访问
- Java远程连接
- Python远程连接
- /hbase/WALs/master,16201,1631808541501-splitting is non empty
- org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/master
Hadoop伪分布式启动无datanode
删除hadoop2.10/tmp
重新格式化namenode
hdfs namenode -format
start-all.sh
OK!!
datanode
namenode
secondarynamenode
查看集群状况
hdfs dfsadmin -report #可以看到分配的内存、活跃的datanode等
关闭hbase时报错,stopping hbasecat: /tmp/hbase-lgm-master.pid: No such a file。没有那个文件或目录
在使用stop-hbase.sh 关闭HBase集群时,找不到主节点的进程文件,默认是存储在/tmp下,容易丢失,所以需要配置:
cd /usr/local/hbase1.4.13/conf
sudo vim hbase-env.sh
#配置以下内容
export JAVA_HOME=/usr/local/jdk8
export HADOOP_HOME=/usr/local/hadoop2.10
export HBASE_HOME=/usr/local/hbase1.4.13
export HBASE_CLASSPATH=/usr/local/hbase1.4.13/conf
#export HBASE_CLASSPATH=/usr/local/hadoop2.10/etc/hadoop
export HBASE_PID_DIR=/usr/local/hbase1.4.13/pids
#在HMaster、HRegionServer真正启动时,会在pids目录下
#生成进程文件
#hbase-tarena-master.pid
#hbase-tarena-regionserver.pid
#此时再使用stop-hbase.sh关闭集群就正常了
解决Hbase启动后,hmaster会在几秒钟后自动关闭(停掉)
在使用start-hbase.sh启动HBase集群时,使用jps查看进程,当时是有HMaster、HRegionServer启动,但过一会再次查看进程发现HMaster进程停掉了,随后HRegionServer进程也会停掉。
解决办法:看日志
/usr/local/hbase1.4.13/logs/hbase-tarena-master-tedu.log
发现是HBase连接Zookeeper断开的问题
解决思路1
确保Zookeeper服务节点的防火墙关闭
service ufw stop
service ufw status
解决思路2
检查HBase的配置文件hbase-site.xml
sudo vim hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
<description>hbase.rootdir是RegionServer的共享目录, 用于持久化存
储Hbase的数据,默认存储在/tmp,重启Hbase时数据会丢失。
一般配置HDFS目录
如主机namenode.example.org:9000
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>
Hbase的运行模式,
false为单机模式
true为分布式模式,又分为伪分布式、完全分布式
</description>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost,localhost,localhost</value>
<description>
Zookeeper集群的服务节点地址,没有端口号
</description>
</property>
。。。。
主要是hbase.zookeeper.quorum,配置zookeeper服务节点地址,不含端口。
python连接HBase
确保HMaster/HRegionServer启动
HBase完全分布式,启动后使用jps查看
HMaster
HRegionServer
均启动OK
但是通过WEB API–》http://master:16010,查看只用一个从节点!!!!!其他从节点未启动
解决
看各自节点的log
- HBase节点间时间不同步问题,CallTimeoutException
同步服务器间的时间(Ubuntu18.04)
sudo vim /etc/systemd/timesyncd.conf #添加如下行:
NTP=ntp.aliyun.com
FallbackNTP=ntp.ubuntu.com
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048
#保存
sudo timedatectl set-ntp false
sudo timedatectl set-ntp true
#查看,解决同步问题
$ less /var/log/syslog
- slave2节点的/etc/hosts问题----自己遇到
将127.0.1.1 slave2注释掉,防止域名冲突
- 查看正确结果
此时slave2 从节点也启动了。
HBase伪分布式,启动可以看到相关进程,但是shell操作时报错:Master未启动
查看master的log,发现如下:
等待dfs 退出安全模式
所以需要关闭hdfs伪分布式的安全模式
hadoop2.10.0版本
#报告dfs的状态
$ hdfs dfsadmin -report
$ hdfs dfsadmin -safemode enter/leave/get/wait
#enter,进入安全模式
#leave,强制NameNode离开安全模式
#get,获取安全模式的状态
#wait,等待,直到退出安全模式
tarena@master:~$ hdfs dfsadmin -safemode get
Safe mode is ON
tarena@master:~$ hdfs dfsadmin -safemode leave
Safe mode is OFF
HBase伪分布式自动关闭
在linux系统休眠时,HBase伪分布式集群会自动关闭!
待解决的问题!!!
HBase的浏览器访问
HDFS, http://ip:50070
本地可以访问,远程也可以访问
HBase, http://ip:16010
本地可以访问,远程也可以访问
HBase的编程API访问
Java远程连接
zookeeper ip:2181
Python远程连接
Thrift服务(在HBase服务器上启动)
- thrift的本地连接
$ hbase-daemon.sh start thrift #默认绑定0.0.0.0:9090
- thrift的远程连接
$ hbase-daemon.sh start thrift -b ip -p 9090#绑定ip:9090
/hbase/WALs/master,16201,1631808541501-splitting is non empty
使用HBase管理的zookeeper,启动HBase伪分布式集群失败,查看log,如下:
解决办法:
$ hdfs dfs -rm -r /hbase/WALs/*
重新启动HBase集群
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/master
使用HBase伪分布式,使用自带的Zookeeper,集群运行一段时间后,Zookeeper会话过期,HMaster会自动退出。
查看Master log 发现:
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /hbase/master