ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] 先部署一个zookeeper集群 1. 上传hbase安装包 2. 解压 3. 配置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包,以解决兼容问题: 1. 删除原有的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 ![](https://box.kancloud.cn/059085789b572ed5d1ccc105d80bd691_3108x1044.png) 上面有2个region是因为有系统表 ![](https://box.kancloud.cn/c42c0fb38a80e982546de82afe721c6e_1808x484.png)