赞
踩
目录
Hbase是一个分布式的、面向列的开源数据库,有区别于传统的行式数据库(如Mysql等),与Hive数据仓库相比,更适合实时存储数据场景,但是与传统的列式数据库相比,更适合键值对的数据存取或者有序的数据存取。Hbase的版本有很多,读者在下载Hbase的压缩包之前,先去Hbase官网查看不同版本的hadoop对哪些版本的Hbase支持。本系列文章是基于hadoop集群搭建后的入门学习,关于hadoop集群搭建,请自行查看笔者发布的hadoop系列文章
本次使用的Hbase版本为2.4.11,Hadoop版本为2.10.1。这里笔者提供一个下载网址,读者可以参考下载。
https://dlcdn.apache.org/hbase/https://dlcdn.apache.org/hbase/
- 将下载好Hbase压缩包上传到指定的目录,这里笔者上传到存放压缩包的/export/software/目录下
- #使用rz命令,将本地压缩包上传到linux指定目录上
- 没有该命令,先输入以下指令安装上传文件工具rz软件
- yum install lrzsz -y
- rz
-
- 进入到上传压缩包的指定目录,进行解压
- cd /export/software/
- 这里笔者,将压缩包解压到专门放置软件的/export/servers/目录下
- tar -zxvf hbase-2.4.11-bin.tar.gz -C /export/servers/
-
- 对文件进行重命名,便于后续管理
- mv /export/software/hbase-2.4.11-bin.tar.gz /export/servers/hbase
- vi /etc/profile
- export HBASE_HOME=/export/servers/hbase
- export PATH=$PATH:$HBASE_HOME/bin
-
- 刷新环境变量,使配置生效
- source /etc/profile
- vi hbase-site.xml
-
- <configuration>
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- </property>
- <property>
- <name>hbase.tmp.dir</name>
- <value>/export/data/hbasedata</value>
- </property>
- <property>
- <name>hbase.master.maxclockskew</name>
- <value>180000</value>
- </property>
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://hadoop01:9000/hbase</value>
- </property>
- <property>
- <name>hbase.zookeeper.property.dataDir</name>
- <value>/export/data/zookeeper/zkdata</value>
- </property>
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>hadoop01,hadoop02,hadoop03</value>
- </property>
- <property>
- <name>hbase.unsafe.stream.capability.enforce</name>
- <value>false</value>
- </property>
- <property>
- <name>hbase.master.info.port</name>
- <value>16010</value>
- </property>
- </configuration>
-
- 这里需要注意,hadoop的各个端口号的区别:
- 8020是默认rpc的端口号,一般用于IDE远程使用Hadoop集群,是程序和程序之间的连接。
- 9000端口:是HDFS默认的端口号,提供文件系统的端口供client角色寻找namenode角色的端口号,是进程之间的调用。
- 但是在core-site.xml文件的配置当中,如果hdfs://hadoop01:9000改为hdfs://hadoop01,则默认端口号为8020
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://hadoop01:9000</value>
- </property>
-
- 50070:namenode提供给操作者使用Web访问的端口号,是操作者和程序之间的端口号
- <property>
- <name>dfs.namenode.http-address.mycluster.nn1</name>
- <value>hadoop01:50070</value>
- </property>
-
- 50090:secondarynamenode的端口号,这个也是Web访问的端口号
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>hadoop02:50090</value>
- </property>
- vi hbase-env.sh
- export JAVA_HOME=/export/servers/jdk
- export HBASE_MANAGES_ZK=false
- vi regionservers
- hadoop01
- hadoop02
- hadoop03
- 这里需要注意创建文件要与hbase-site.xml中的配置相符
- property>
- <name>hbase.tmp.dir</name>
- <value>/export/data/hbasedata</value>
- </property>
-
- mv /export/data/hbasedata
- 将Hadoop的配置文件复制到Hbase的conf/目录下
- cd /export/servers/hadoop-2.10.1/etc/hadoop/
- cp -r core-site.xml hdfs-site.xml /export/servers/hbase/conf/
-
- 将hadoop01上Hbase文件分发给hadoop02、hadoop03
- scp -r /export/servers/hbase hadoop02:/export/servers/
- scp -r /export/servers/hbase hadoop03:/export/servers/
-
- scp -r /etc/profile hadoop02:/etc/
- scp -r /etc/profile hadoop03:/etc/
-
- scp -r /export/data/hbasedata hadoop02:/export/data/
- scp -r /export/data/hbasedata hadoop03:/export/data/
-
- 在hadoop02、hadoop03上刷新环境变量
- source /etc/profile
- 启动、停止Hbase集群
- start-hbase.sh
- stop-hbase.sh
-
- 查看hadoop01的进程
- jps
- 2517 HBaseConfTool
- 2886 Jps
- 2712 HMaster
- 2841 HRegionServer
-
- 查看hadoop02的进程
- jps
- 2210 HRegionServer
- 2258 Jps
-
- 查看hadoop03的进程
- jps
- 2227 HRegionServer
- 2275 Jps
- 1946 JournalNode
-
- 登录Hbase的Web界面
- http://hadoop01:16010
- Hbase的高可用的配置很简单,在hbase的conf/目录下创建一个backup-masters文件,
- 在里面添加参数即可。Hbase的高可用与hadoop高可用相似,当集群启动后,每台虚拟机上
- 都存在HMaster进程,但是只有一台虚拟机的HMaster进程是处于活跃状态的,其他处于
- 待机状态,当处于活跃状态的HMaster进程因为某些原因停止,其他两台处于待机的HMster进程,
- 则会随机一台处于活跃状态保证Hbase集群的正常使用。
-
- 在此之前,先停止hbase
- stop-hbase.sh
-
- 配置内容如下
- hadoop02
- hadoop03
-
- 分发至其他节点
- scp -r backup-masters hadoop02:/export/servers/hbase/conf/
- scp -r backup-masters hadoop03:/export/servers/hbase/conf/
-
- 再次启动,可在页面查看变化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。