centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤
Posted 张小鱼༒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤相关的知识,希望对你有一定的参考价值。
系列文章目录
centos7配置静态网络常见问题归纳_centos7网络问题
centos7配置zookeeper本地模式与集群模式的详细教程
文章目录
前言
本文主要介绍centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤,下面是对hbase的一些简单介绍与hbase配置的详细步骤,希望对你有所帮助。下面正式开始今天的内容。
一、hbase简介
1.1 HBase 定义
HBase是一种分布式、可扩展、支持海量数据存储的 NoSQL数据库。
1.2 HBase 数据模型
逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。
但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map。
1.3、HBase 逻辑结构
1.4、 HBase 物理存储结构
1.5、 数据模型
1)Name Space
命名空间,类似于关系型数据库的 DatabBase概念,每个命名空间下有多个表。HBase
有两个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表,
default表是用户默认使用的命名空间。
2)Region
类似于关系型数据库的表概念。不同的是,HBase定义表时只需要声明列族即可,不需
要声明具体的列。这意味着,往 HBase写入数据时,字段可以动态、按需指定。因此,和关
系型数据库相比,HBase能够轻松应对字段变更的场景。
3)Row
HBase表中的每行数据都由一个 RowKey和多个 Column(列)组成,数据是按照 RowKey
的字典顺序存储的,并且查询数据时只能根据 RowKey进行检索,所以 RowKey的设计十分重
要。
4)Column
HBase中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限
定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。
5)Time Stamp
用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会
自动为其加上该字段,其值为写入 HBase的时间。
由rowkey, column Family:column Qualifier, time Stamp 唯一确定的单元。cell 中的数
据是没有类型的,全部是字节码形式存贮。
二、配置HBase的过程演示
2.1、 Zookeeper 正常部署
首先保证 Zookeeper 集群的正常部署,并启动之:
[hadoop@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start
[hadoop@hadoop103 zookeeper-3.4.10]$ bin/zkServer.sh start
[hadoop@hadoop104 zookeeper-3.4.10]$ bin/zkServer.sh start
2.2、 Hadoop 正常部署
Hadoop 集群的正常部署并启动:
[hadoop@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[hadoop@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
2.3、 HBase 的解压
解压 Hbase 到指定目录:
[hadoop@hadoop102 software]$ tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module
2.4、 HBase 的配置文件
修改 HBase 对应的配置文件。
1)hbase-env.sh 修改内容:
export JAVA_HOME=/opt/module/jdk1.6.0_144
export HBASE_MANAGES_ZK=false
记得修改这两处
2)hbase-site.xml 修改内容:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:9000/HBase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98后的新变动,之前版本没有.port,默认端口为 60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
具体配置和你具体的计算机名称对应上
3)regionservers:
hadoop102
hadoop103
hadoop104
4)软连接 hadoop 配置文件到 HBase:
[hadoop@hadoop102 module]$ ln -s /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
[hadoop@hadoop102 module]$ ln -s /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
2.5、 HBase 远程发送到其他集群
[hadoop@hadoop102 module]$ xsync hbase/
此处跳的太快了,没有截取到完整的图,见谅哈 ~
此处插入一个小提示,xsync是一个脚本分发文件,具体的书写过程如下:
注意:脚本要在所有的配置之前书写奥~
编写脚本
ps:如果有红色的部分就是未定义好的地方,注意语句之间的空格与对应关系
此处是给文件加入权限
ps:777表示文件所属者,文件所属者的组,其他人,(可读4,写2,执行1,通过数字编写文件的权限)
可以分发的截图:【只是示例】
2.6、 HBase 服务的启动
1.启动方式
[hadoop@hadoop102 hbase]$ bin/hbase-daemon.sh start master
[hadoop@hadoop102 hbase]$ bin/hbase-daemon.sh start regionserver
提示:如果集群之间的节点时间不同步,会导致 regionserver 无法启动,抛出
ClockOutOfSyncException 异常。
2.启动方式 2
[hadoop@hadoop102 hbase]$ bin/start-hbase.sh
对应的停止服务:
[hadoop@hadoop102 hbase]$ bin/stop-hbase.sh
此处好像有一点小问题,知道的大佬可以教教我吗?
启动是正常的
2.7、 查看 HBase 页面
启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:
总结
配置过程要书写正确的语句,要细心一点才不会出错,以上就是今天的内容。
最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。
CentOS下关于配置zookeeper集群时,克隆后的虚拟机无法启动Hadoop的解决方案
参考技术A 准备材料:被克隆主机:Hadoop01(名称我随便起的,方便记忆)
克隆后的主机:Hadoop01(克隆后的主机名与被克隆的主机名一样后期会修改为Hadoop02)
错误原因:克隆的虚拟机主机名和被克隆的虚拟机名相同,而在启动Hadoop集群的时候,配置文件中读取的主机名不匹配,所以无法启动Hadoop集群。我们只需要修改配置信息和主机名就可以了,多台机器,只需要在需要启动Hadoop集群的机器上修改配置文件
解决方案:
第一步:首先要修改克隆后的主机ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
1> 修改HWADDR:00:0c:29:xx:xx:xx(前六个数基本相同,后面六个数根据虚拟机设置查看)
2> 修改IPADDR:192.168.xxx.xxx(具体IP地址根据被克隆主机的ip修改)
3> 重启网卡:service network restart
第二步:查看被克隆的主机的主机名并修改
1> vim /etc/sysconfig/network
例:原主机名Hadoop01 修改后------> Hadoop02
2> source /etc/sysconfig/network
第三步:建立主机名与ip地址一一对应的关系
vim /etc/hosts
例:192.168.247.151 Hadoop02
第四步:接下来修改Hadoop的配置文件
在这个路径下行:/home/software/hadoop-2.7.1/etc/hadoop
不同人可能路径可能存在差异
1>修改core-site.xml
凡是被克隆主机名均修改为现在的主机名,也就是将Hadoop01修改为Hadoop02
2>修改yarn-site.xml
凡是被克隆主机名均修改为现在的主机名,也就是将Hadoop01修改为Hadoop02
3>修改slaves
凡是被克隆主机名均修改为现在的主机名,也就是将Hadoop01修改为Hadoop02
4>删除tmp文件
在这个路径下/home/software/hadoop-2.7.1删除tmp文件
不同人路径可能不同
5>格式化namenode(请谨慎格式化)
hadoop namenode -format
第五步:执行start-all.sh和jps查看所有进程是否启动成功
本文只是记录自己学习过程中的疑难问题和解决方案,如果逻辑不通或者知识点有错,请不要吝啬批评和更正,共同学习进步,不喜勿喷,喷子止步,谢谢合作
以上是关于centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤的主要内容,如果未能解决你的问题,请参考以下文章
centos7配置zookeeper本地模式与集群模式的详细教程