先启动zookeeper再启动hbase
1.在Apache官网上下载HBASE的安装包
我安装的是Hadoop2.4.1,所以下载了hbase-0.98.11-hadoop2-bin.tar.gz
2. 通过winscp将HBASE安装包上传到虚拟机的/usr/local/文件目录下
3.解压缩 tar -zxvf hbase-0.98.11-hadoop2-bin.tar.gz
4.重命名hbase-0.98.11-hadoop2
mv hbase-0.98.11-hadoop2 hbase
5. 设置环境变量,根据实际路径修改
vi .bashrc
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
6.切换到conf目录下,修改配置文件
cd /usr/local/hbase/conf
- 修改hbase-env.sh
export JAVA_HOME=/usr/local/java
export HBASE_CLASSPATH=/usr/local/hadoop/etc/Hadoop
export HADOOP_HOME=/usr/local/hadoop
export HBASE_MANAGES_ZK=false
第一个参数指定了JDK路径;第二个参数指定了 hadoop 的配置文件路径;第三个参数指定了 hadoop 的安装路径;第四个参数设置使用 hbase 默认自带的 Zookeeper
- 修改hbase-site.xml
vi hbase-site.xml
修改hbase-site.xml很重要,
1)hbase.rootdir得和你的hadoop配置的名字和端口一致,你可以查看http://hadoop:50070/显示主节点的那个,直接复制过来。也可以查看hadood的配置文件找。
2)hbase.cluster.distributed是否是分布式
3)2hbase.zookeeper.quorum这个得和zookeeper一致,去zookeeper配置文件找
4)hbase.zookeeper.property.dataDir同上
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value> #hdfs前面不能留空格
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zk/data</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/hbase/data</value>
</property>
- hbase.rootdir:
就是来选择将数据写入到什么目录中,这里我选择的就是HDFS,因为我的Hadoop的一个HA的配置,所以我写的就是集群的名字cluster了,如果不是HA的话,可以写上namenode节点名就好。后面的hbase其实就是HDFS中的一个目录了,以后的hbase数据就会放到这个hbase目录中的,不需要手动创建,启动的时候会自动创建的。 - hbase.cluster.distributed
设置为true就是开启完全分布式。 - hbase.zookeeper.quorum
设置为安装有ZK的节点。 - hbase.zookeeper.property.dataDir
设置zk的数据存放目录。 - hbase.tmp.dir
设置临时文件存放目录,最好设置一下,要不默认的/tmp目录重启就会清空的。
接下来需要hbase能够知道我的hdfs的配置,需要将hadoop中的hdfs-site.xml拷贝到hbase的conf中,至于解释我没有在官方文档中看到,但是在中文版官方文档http://abloz.com/hbase/book.html#standalone_dist有提到,也就是为了保证hbase和hdfs的配置一致性。
(3)修改regionservers
vi regionservers
把localhost修改为你的主机名,一个主机名换一行
我的是: master
slave1
slave2
7. 准备工作完成了,拷贝到其他主机上
scp -r hbase root@spark2:/usr/local/
scp -r hbase root@spark2:/usr/local/
8. 启动HBASE
可以切换到hbase的bin目录下执行
./start-hbase.sh
也可以直接执行start-hbase.sh,因为已经在.bashrc配置了hbase的环境变量
如果不成功,去上级目录的logs查看错误日志
启动成功以后有以下守护进程
主节点
[root@master ~]# jps
6273 HRegionServer
2244 NodeManager
1892 SecondaryNameNode
2149 ResourceManager
1766 DataNode
1672 NameNode
6141 HMaster
5982 QuorumPeerMain
7583 Jps
从节点
[root@slave1 ~]# jps
1570 NodeManager
3683 HRegionServer
3605 QuorumPeerMain
4214 Jps
1452 DataNode
9.可以使用hbase shell 进入命令行窗口
10.web访问地址是 主节点ip:16010/
我的是:http://master:16010/master-status
<其中master是主节点的名称>