Hbase 单机、伪分布、完全分布部署
一、Hbase简介HBase是 Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。它目前已经是 Apache众多开源项目中的一个顶级项目。 HBase的运行依赖于其他文件系统,它模仿并提供了基于 Google文件系统(GFS, Google File System)中大表( Bigtable)数据库的所有功能。 HBase的目标是存储并处理...
一、Hbase简介
HBase是 Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问。它目
前已经是 Apache众多开源项目中的一个顶级项目。 HBase的运行依赖于其他文件系统,它
模仿并提供了基于 Google文件系统(GFS, Google File System)中大表( Bigtable)数据库
的所有功能。
HBase的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能
够处理由成千上万的行和列所组成的大型数据。
HBase是一个开源的、分布式的、多版本的、面向列的存储模型。它可以直接使用本地文
件系统,也可以使用 Hadoop的HDFS文件存储系统。不过,为了提高数据的可靠性和系统的
健壮性,并且发挥 HBase处理大型数据的能力,还是使用HDFS作为文件存储系统更为稳妥。
二、系统环境
[hadoop@lb01 ~]$ java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
[hadoop@lb01 ~]$ hadoop version
Hadoop 2.7.7
注意:
1.Hadoop完全分布式搭建可参考https://blog.csdn.net/yuanfangPOET/article/details/83956688
其中添加环境变量最好添加到本用户.bash_profile中,本文中所有.bashrc替换成.bash_profile
2.Hbase版本最好与Hadoop版本相对照,本次使用hbase-1.2.6.1版本
https://pan.baidu.com/s/1fK-EFf6kX8HdUzZCepwnhQ
三、Hbase安装
3.1 单机模式
1.解压
[hadoop@lb01 ~]$ tar xf hbase-1.2.6.1-bin.tar.gz
[hadoop@lb01 ~]$ mv hbase-1.2.6.1 hbase1.2
2.修改hbase1.2/conf/hbase-env.sh,添加java环境变量
[hadoop@lb01 conf]$ vim hbase-env.sh
export JAVA_HOME=/home/hadoop/jdk1.8
3.编辑hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/hadoop/hbase1.2/data</value>
</property>
4.添加hbase环境变量
[hadoop@lb01 ~]$ vim .bash_profile
export HBASE_HOME=/home/hadoop/hbase1.2
export PATH=.:$HBASE_HOME/bin:$PATH
5.启动hbase
[hadoop@lb01 ~]$ start-hbase.sh
jps查看,出现HMaster就是启动成功了
3.2 伪分布模式
1.修改hbase1.2/conf/hbase-env.sh,添加入下:
[hadoop@lb01 conf]$ vim hbase-env.sh
#指向hadoop配置文件目录
export HBASE_CLASSPATH=/home/hadoop/hadoop2.7/etc/hadoop
2.编辑hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/hadoop/hbase1.2/data</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
3.启动hbase
[hadoop@lb01 conf]$ start-hbase.sh
jps查看:
3.3 完全分布式
1.使用三个节点
主机名 | IP地址 | 主/从 |
lb01 | 192.168.231.141 | MASTER |
web01 | 192.168.231.142 | SLAVER01 |
web02 | 192.168.231.143 | SLAVER02 |
2.修改hbase-env.sh
[hadoop@lb01 conf]$ vim hbase-env.sh
export JAVA_HOME=/home/hadoop/jdk1.8
export HBASE_CLASSPATH=/home/hadoop/hadoop2.7/etc/hadoop
export HADOOP_HOME=/home/hadoop/hadoop2.7
export HBASE_PID_DIR=/home/hadoop/hbase1.2/pids #指定pid存储路径,否则存在/tmp下,stop-hbase.sh会出现错误
3.编辑hbase-site.xml
[hadoop@lb01 conf]$ vim hbase-site.xml
<configuration>
<property>
<!--重要的也是必须设置的,启动ZooKeeper 的服务器列表,逗号分隔,cluster模式下必须设置,默认是localhost,hbase客户端也需要设置这个值去访问ZooKeeper -->
<name>hbase.zookeeper.quorum</name>
<value>lb01,lb02,lb03</value>
</property>
<property>
<!--用户设置 ZooKeeper 快照的存储位置,默认值为 /tmp,显然在重启的时候会清空-->
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/hbase/zookeeperdata</value>
</property>
<property>
<!--本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除)-->
<name>hbase.tmp.dir</name>
<value>/home/hadoop/hbase/tmpdata</value>
</property>
<property>
<!-- 这个目录是 RegionServer 的共享目录,用来持久化 HBase。-->
<name>hbase.rootdir</name>
<value>hdfs://lb01:9000/hbase</value>
</property>
<property>
<!--HBase 的运行模式。为 false 表示单机模式,为 true 表示分布式模式。-->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
4.配置regionservers ,添加slave,可以为SLAVER的IP地址
本机已在/etc/hosts中添加域名解析
[hadoop@lb01 conf]$ vim regionservers
web01
web02
5.把hbase1.2传输到SLAVER节点,也就是web01,web02,且.bash_profile也要复制到两个从节点
[hadoop@lb01 ~]$ scp -r hbase1.2 hadoop@192.168.231.142:/home/hadoop/hbase1.2
[hadoop@lb01 ~]$ scp -r hbase1.2 hadoop@192.168.231.143:/home/hadoop/hbase1.2
[hadoop@MASTER ~]$ scp .bash_profile hadoop@192.168.231.142:/home/hadoop/
[hadoop@MASTER ~]$ scp .bash_profile hadoop@192.168.231.143:/home/hadoop/
6.从主节点启动hbase
[hadoop@lb01 ~]$ start-hbase.sh
jps查看:
主节点出现HQuorumPeer、 HMaster,从节点出现 HQuorumPeer、HRegionServer,说明搭建成功!
参考
【1】https://blog.csdn.net/linlinv3/article/details/49465615
【2】https://www.cnblogs.com/qinersky902/p/6217741.html
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)