hbase集群的搭建(完全分布式)
说明
zookeeper和hadoop在头两篇文章已经介绍了,本文基于之前安装的集群安装hbase,安装的节点如下(标红的为本次安装):
机器 |
安装软件 |
进程 |
focuson1 |
zookeeper;hadoop namenode;hadoop DataNode;hbase master;hbase regionrerver |
JournalNode; DataNode; QuorumPeerMain; NameNode; NodeManager;DFSZKFailoverController;HMaster;HRegionServer |
focuson2 |
zookeeper;hadoop namenode;hadoop DataNode;yarn;hbase master;hbase regionrerver |
NodeManager;ResourceManager;JournalNode; DataNode; QuorumPeerMain; NameNode; DFSZKFailoverController;HMaster;HRegionServer |
focuson3 |
zookeeper;hadoop DataNode;yarn;hbase regionrerver |
NodeManager;ResourceManager;JournalNode; DataNode; QuorumPeerMain;HRegionServer |
注:zookeeper和hadoop戳链接:
zookeeper搭建
hadoop搭建
安装步骤
1、将包上传至用户家目录,解压
cd/usr/local/src/
mkdir hbase
mv ~/hbase-1.4.3.tar.gz .
tar -xvf hbase-1.4.3.tar.gz
rm -f hbase-1.4.3.tar.gz
2、配置类
配置文件一:$HBASE_HOME/conf/hbase-env.sh
export HBASE_MANAGES_ZK=false//默认hbase管理zookeeper,需要制定zookeeper的配置文件路径,修改成false,链接我们自己搭建的zookeeper集群
export JAVA_HOME=/usr/local/src/java/jdk1.7.0_51
配置文件二:$HBASE_HOME/conf/hbase-site.xml
<configuration>
<property><name>hbase.rootdir</name>
<!--链接两个ns1,ns1在hadoop集群中指向两个namenode,实现高可用,如果写定一个namenode,当该namenode为standby时,会报错该配置不需写端口--><value>hdfs://ns1/hbase</value></property>
<!--指定为分布式--><property><name>hbase.cluster.distributed</name><value>true</value></property>
<!--指定两个master,注册zookeeper监听,实现高可用--><property><name>hbase.master</name><value>focuson1:60000,focuson2:60000</value></property>
<!--zookeeper集群--><property><name>hbase.zookeeper.quorum</name><value>focuson1:2181,focuson2:2181,focuson3:2181</value></property>
<!--该配置必须有,要不访问不了web界面--><property><name>hbase.master.info.port</name><value>60010</value></property>
</configuration>
配置三:把hadoop的hdfs-site.xml文件考到hbase的配置路径下
cp /usr/local/src/hadoop/hadoop-2.6.0/etc/hadoop/hdfs-site.xml /usr/local/src/hbase/hbase-1.4.3/conf/
3、启动
在focuson1上执行(启动focuson1的master,以及三台regionserver):
[root@focuson1 hbase-1.4.3]# ./bin/start-hbase.sh
running master, logging to /usr/local/src/hbase/hbase-1.4.3/logs/hbase-root-master-focuson1.out
focuson3: running regionserver, logging to /usr/local/src/hbase/hbase-1.4.3/bin/../logs/hbase-root-regionserver-focuson3.out
focuson1: running regionserver, logging to /usr/local/src/hbase/hbase-1.4.3/bin/../logs/hbase-root-regionserver-focuson1.out
focuson2: running regionserver, logging to /usr/local/src/hbase/hbase-1.4.3/bin/../logs/hbase-root-regionserver-focuson2.out
在focuson2上执行(只启动一个master,不会启动regionServer)
[root@focuson2 hbase-1.4.3]# ./bin/start-hbase.sh
running master, logging to /usr/local/src/hbase/hbase-1.4.3/bin/../logs/hbase-root-master-focuson2.out
focuson3: regionserver running as process 6705. Stop it first.
focuson1: regionserver running as process 17806. Stop it first.
focuson2: regionserver running as process 13949. Stop it first.
4 验证。
验证一:发现focuson1为active,focuson2为standby。
kill掉focuson1的hmaster进程,发现focuson2为active(不贴图了)
验证二:无论namenode为哪一个启动,hbase都能正常运行。
5、连接hdfs时出现的几个小问题。
问题一.不链接两个namenode实现高可用时,当链接focuson1,而此时focuson1正好为standby状态时,会报下面的错:
2018-05-02 00:01:20,746 FATAL [focuson1:16000.activeMasterManager] master.HMaster: Failed to become active master
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standbyat org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:87)at org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.checkOperation(NameNode.java:1719)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOperation(FSNamesystem.java:1350)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:4132)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:838)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:821)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962)
问题二、当配置高可用之后,Hmaster正常,HregionServer出现如下错误:
2018-05-02 01:36:41,083 ERROR [main] regionserver.HRegionServerCommandLine: Region server exiting
java.lang.RuntimeException: Failed construction of Regionserver: class org.apache.hadoop.hbase.regionserver.HRegionServerat org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2812)at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:64)at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87)at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2827)
Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:526)at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2810)... 5 more
Caused by: java.lang.IllegalArgumentException: java.net.UnknownHostException: ns1at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:378)at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:320)at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:176)at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:678)at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:619)at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149)at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)at org.apache.hadoop.hbase.util.FSUtils.getRootDir(FSUtils.java:1037)at org.apache.hadoop.hbase.util.FSUtils.isValidWALRootDir(FSUtils.java:1080)at org.apache.hadoop.hbase.util.FSUtils.getWALRootDir(FSUtils.java:1062)at org.apache.hadoop.hbase.regionserver.HRegionServer.initializeFileSystem(HRegionServer.java:659)at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:602)... 10 more
Caused by: java.net.UnknownHostException: ns1... 27 more
此时使用上述配置三完美解决!
---
完事!
hbase集群的搭建(完全分布式)相关推荐
- Hbase高手之路 -- 第二章 -- HBase集群的搭建
Hbase高手之路 – 第二章 – HBase集群的搭建 一. 下载并安装 1. 下载安装包 2. 上传服务器 3. 解压 tar -zxvf hbase-2.4.10-bin.tar.gz -C . ...
- hadoop集群的搭建(分布式安装)
集群 计算机集群是一种计算机系统,他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作. 集群系统中的单个计算机通常称为节点,通常通过局域网连接. 集群技术的特点: 1.通过多台计算 ...
- hadoop(八) - hbase集群环境搭建
1. 上传hbase安装包hbase-0.96.2-hadoop2-bin.tar.gz 2. 解压 tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /clo ...
- 数据仓库组件:HBase集群环境搭建和应用案例
本文源码:GitHub || GitEE 一.Hbase简介 1.基础描述 Hadoop原生的特点是解决大规模数据的离线批量处理场景,HDFS具备强大存储能力,但是并没有提供很强的数据查询机制.HBa ...
- SpringCloud集群的搭建,分布式的实现,负载均衡的几种方式,路由,页面监听
SpringCloud 服务注册与发现--Netflix Eureka 负载均衡: 客户端负载均衡--Netflix Ribbon 服务端负载均衡:--Feign(其也是依赖于Ribbon,只是将调用 ...
- Hbase集群搭建超详细教程
Hbase集群搭建 前言 详细步骤 1.下载安装包 2.解压 3.修改配置文件 3.1 修改hbase-env.sh文件 3.2 修改hbase-site.xml 3.3 修改regionserver ...
- 在Hadoop集群上,搭建HBase集群
(1)下载Hbase包,并解压:这里下载的是0.98.4版本,对应的hadoop-1.2.1集群 (2)覆盖相关的包:在这个版本里,Hbase刚好和Hadoop集群完美配合,不需要进行覆盖. 不过这里 ...
- kafka集群的搭建
本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...
- hadoop1.2.1+zookeeper3.4.6+hbase0.94集群环境搭建
hadoop集群环境搭建 参考前面的hadoop集群搭建文档,搭建了三个服务器的集群如下 feixu-master namenode, secondaryNamenode, jobtracke ...
最新文章
- 软件工程之个人项目--词频统计
- [Tyvj1114 搭建双塔]
- 昨天帮同学的学校写了首校歌
- STM32 DSP库的使用方法
- 【Python】python基础语法 编码
- 使用文本编辑器编写c代码
- 在二维码中间添加logo或者图片
- Android 开发环境搭建
- 408计算机考研 各科题目题号,2021考研408计算机专业基础综合数据结构试题特点分析...
- CAD基础+常用快捷(四)
- 小明左右手分别拿两张纸牌:黑桃10和红心8,现在交换手中的牌。编写并输出互换后的结果,输出结果如图所示。
- 腾讯裁员,裁出“财务自由”
- CentOS7-命令-查看操作历史记录(history)
- weedfs php,Weed-FS之Volume数据迁移
- 华为硬件工程师等公司的面试经历分享
- 机器学习笔记 - 互信息Mutual Information
- SecureCRT查看日志乱码
- Hello,你好JAVA
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(*)
- 在一台物理机上创建3个虚拟机搭建k8s集群(一)