Hbase环境与安装
==============================================================================
1、本地模式(不需要HDFS(先stop-all.sh),保存在Linux的文件系统)
1)事先需要在/training/hbase-1.3.1目录下创建data目录: mkdir /training/hbase-1.3.1/data
2)进入到/training/hbase-1.3.1/conf目录下,
(1)vi hbase-env.sh,修改如下信息:
export JAVA_HOME=/training/jdk1.8.0_171
(2)vi hbase-site.xml,在<configuration></configuration>之间添加如下信息:
<property>
<name>hbase.rootdir</name>
<!--这个data事先需要创建-->
<value>file:///training/hbase-1.3.1/data</value>
</property>
3)启动HBase:start-hbase.sh
starting master, logging to /training/hbase-1.3.1/logs/hbase-root-master-niit00.out
只有HMaster
4)hbase shell 登录到hbase上
(*)创建学生表
create 'student','info','grade'
(*)登录到web Console上查看:http://niit00:16010
2、伪分布模式(需要HDFS环境)
0)需要将hadoop启动起来(如果已经启动了,就不需要执行这个命令):
start-all.sh
1)上传hbase-1.3.1-bin.tar.gz到/tools目录下
2)将hbase-1.3.1-bin.tar.gz文件解压并安装到/training目录下
tar -zvxf hbase-1.3.1-bin.tar.gz -C /training/
3)配置环境变量
vi ~/.bash_profile
在打开的.bash_profile文件中添加如下信息:
export HBASE_HOME=/training/hbase-1.3.1(注意版本)
export PATH=$HBASE_HOME/bin:$PATH
4)让环境变量生效
source ~/.bash_profile
5)验证配置hbase的环境变量是否生效
hbase
看看是否有Usage: hbase [<options>] <command> [<args>]信息,如果有则生效了,否则,配置有误
6)进入到/training/hbase-1.3.1/conf目录下
cd /training/hbase-1.3.1/conf
在该目录下找到如下文件进行修改:
(a)vi hbase-env.sh,修改如下信息:
(1)找到# export JAVA_HOME=/usr/java/jdk1.6.0/这句代码,将#号去掉,将/usr/java/jdk1.6.0改成你自己的JAVA_HOME路径
我本机的JAVA_HOME的路径是:/training/jdk1.8.0_244,所以我修改好之后的样子如下:
export JAVA_HOME=/training/jdk1.8.0_244
(2)找到# export HBASE_MANAGES_ZK=true 将#号去掉即可
(3)保存退出
(b)vi hbase-site.xml,在<configuration></configuration>之间添加如下信息,
注意下面的有IP的地址需要修改成你自己主机的IP地址或者主机名:
<!--HBase的数据保存在HDFS对应目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://niit06:9000/hbase</value>//(注意主机名)
</property>
<!--是否是分布式环境-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--配置ZK的地址-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>niit06</value>//(注意主机名)
</property>
<!--冗余度-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
(c)vi regionservers,配置从节点地址(伪分布只有一台主机,所以配置一个即可):
将localhost改成IP地址或者主机名:niit06 //(注意主机名)
7)启动HBase:
start-hbase.sh
8)使用jps命令查看,是否已经启动了如下三个进程(如果以下上个进程存在,则说明安装配置hbase成功了):
HRegionServer
HQuorumPeer
HMaster
9)登录Web Console进程查看:
http://niit01:16010
3、全分布模式(有三台主机:niit01(主节点) niit02(从节点) niit03(从节点))
特别注意:如果没有特别说明的,以下所有的操作默认都是在主节点(niit01)上进行的
1)上传hbase-1.3.1-bin.tar.gz到/tools目录下
2)将hbase-1.3.1-bin.tar.gz文件解压并安装到/training目录下
tar -zvxf hbase-1.3.1-bin.tar.gz -C /training/
3)配置环境变量(这里需要在三台主机上都要配置)
vi ~/.bash_profile
在打开的.bash_profile文件中添加如下信息:
export HBASE_HOME=/training/hbase-1.3.1
export PATH=$HBASE_HOME/bin:$PATH
4)让环境变量生效
source ~/.bash_profile
5)验证配置hbase的环境变量是否生效
hbase ----- 看看是否有Usage: hbase [<options>] <command> [<args>]信息,如果有则生效了,否则,配置有误
6)进入到/training/hbase-1.3.1/conf目录下
cd /training/hbase-1.3.1/conf
在该目录下找到如下文件进行修改:
(a)vi hbase-env.sh,修改如下信息:
(1)找到# export JAVA_HOME=/usr/java/jdk1.6.0/这句代码,将#号去掉,将/usr/java/jdk1.6.0改成你自己的JAVA_HOME路径
我本机的JAVA_HOME的路径是:/training/jdk1.8.0_171,所以我修改好之后的样子如下:
export JAVA_HOME=/training/jdk1.8.0_171
(2)找到# export HBASE_MANAGES_ZK=true 将#号去掉即可 将true 改成false
(3)保存退出
(b)vi hbase-site.xml,在<configuration></configuration>之间添加如下信息,
注意下面的有IP的地址需要修改成你自己主机的IP地址:
<!--HBase的数据保存在HDFS对应目录-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://niit01:9000/hbase</value>
</property>
<!--是否是分布式环境-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--配置ZK的地址-->
<property>
<name>hbase.zookeeper.quorum</name>
<value>niit01</value>
</property>
<!--冗余度-->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!--主节点和从节点允许的最大时间误差-->
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
</property>
(c)vi regionservers,配置从节点地址:
将localhost改成IP地址或者主机名:
niit02
niit03
7)进入到/training目录下,将hbase-1.3.1整个目录复制到其他两个从节点上:
scp -r hbase-1.3.1/ root@niit02:/training
scp -r hbase-1.3.1/ root@niit03:/training
7)启动HBase:
start-hbase.sh
8)使用jps命令查看,是否已经启动了如下三个进程(如果以下上个进程存在,则说明安装配置hbase成功了):
HRegionServer
HMaster
9)登录Web Console进程查看:
http://niit01:16010
4、HBase实现HA(在以上全分布模式的基础上,任意选择niit02或者niit03作为HMaster即可)
假设我选择niit02作为备份的HMaster的话,我需要在niit02上手动启动一个HMaster进程即可:
hbase-daemon.sh start master