先部署一个zookeeper集群
- 上传hbase安装包
- 解压
- 配置hbase集群,要修改3个文件
注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下
修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_55
//告诉hbase使用外部的zk,habse本身有自带的zk,一般用外部的
export HBASE_MANAGES_ZK=false
注意:如果使用的是jdk1.8以上版本,则应该移除
HBASE_MASTER_OPTS
HBASE_REGIONSERVER_OPTS
堆内存大小,不设置默认就用JVM的
HBASE_HEAPSIZE
堆外内存大小
HBASE_OFFHEAPSIZE
hbase采用什么垃圾回收
HBASE_OPTS
master的参数信息
HBASE_MASTER_OPTS
regionserver的参数信息
HBASE_REGIONSERVER_OPTS
gc选项
SERVER_GC_OPTS
指定hbase的reginservers,如果多个,那就要把host写在后面的文件中
HBASE_REGIONSERVERS
在后面文件中写指定备份master节点的host
HBASE_BACKUP_MASTERS
修改 hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<!-- 指定hbase是分布式的 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定zk的地址,多个用","分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
<!-- 0.98之后的新变动,之前版本没有.port,默认端口为60000 ,现在默认是16000-->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/tools/zookeeper-3.4.9/data</value>
</property>
</configuration>
修改regionservers
master
slave1
slave2
修改backup-masters来指定备用的主节点
没有就创建一个
[root@master conf]# vi backup-masters
slave1
修改hbase需要依赖的jar包
由于hbase依赖hadoop,所以替换hbase的lib目录下的jar包,以解决兼容问题:
- 删除原有的jar
rm -rf /root/tools/hbase-1.3.1/lib/hadoop-*
rm -rf /root/tools/hbase-1.3.1/lib/zookeeper-3.4.6.jar
拷贝新jar,涉及的jar有:
hadoop-annotations-2.7.2.jar
hadoop-auth-2.7.2.jar
hadoop-client-2.7.2.jar
hadoop-common-2.7.2.jar
hadoop-hdfs-2.7.2.jar
hadoop-mapreduce-client-app-2.7.2.jar
hadoop-mapreduce-client-common-2.7.2.jar
hadoop-mapreduce-client-core-2.7.2.jar
hadoop-mapreduce-client-hs-2.7.2.jar
hadoop-mapreduce-client-hs-plugins-2.7.2.jar
hadoop-mapreduce-client-jobclient-2.7.2.jar
hadoop-mapreduce-client-jobclient-2.7.2-tests.jar
hadoop-mapreduce-client-shuffle-2.7.2.jar
hadoop-yarn-api-2.7.2.jar
hadoop-yarn-applications-distributedshell-2.7.2.jar
hadoop-yarn-applications-unmanaged-am-launcher-2.7.2.jar
hadoop-yarn-client-2.7.2.jar
hadoop-yarn-common-2.7.2.jar
hadoop-yarn-server-applicationhistoryservice-2.7.2.jar
hadoop-yarn-server-common-2.7.2.jar
hadoop-yarn-server-nodemanager-2.7.2.jar
hadoop-yarn-server-resourcemanager-2.7.2.jar
hadoop-yarn-server-tests-2.7.2.jar
hadoop-yarn-server-web-proxy-2.7.2.jar
zookeeper-3.4.5.jar
这些jar包对应的版本应替换成你目前使用的hadoop版本,具体情况具体分析
查找jar包示例
find ~/hadoop-2.7.2/ -name hadoop-annotations*
然后将找到的jar包复制到hbase的lib目录下即可
hbase软连接hadoop配置
可以把配置复制过来也可以软连接过来
ln -s /root/tools/hadoop-2.7.2/etc/hadoop/core-site.xml /root/tools/hbase-1.3.1/conf/core-site.xml
ln -s /root/tools/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /root/tools/hbase-1.3.1/conf/hdfs-site.xml
拷贝hbase到其他节点
scp -r /master/hbase-1.3.1/ slave1:/weekend/
将配置好的HBase拷贝到每一个节点并同步时间
启动所有的hbase进程
首先启动zk集群
./zkServer.sh start
启动hdfs集群
start-dfs.sh
启动hbase,在主节点上运行:
start-hbase.sh
(如果启动单个机器 hbase-daemon.sh start master)
通过浏览器访问hbase管理页面
master:16010
http://master:16010/logs/
日志
http://master:16010/conf
配置信息
0.98版本之前: http://master:60010
0.98版本之后: http://master:16010
为保证集群的可靠性,要启动多个HMaster
hbase-daemon.sh start master
jps查看下会有
HRegionServer
HMaster
上面有2个region是因为有系统表