hbase 集群(完全分布式)方式安装


一,环境

   1,  主节点一台: ubuntu desktop 16.04

                 zhoujun      172.16.12.1

       从节点(slave)两台:ubuntu server 16.04  

                 hadoop2      172.16.12.131

                 hadoop3      172.16.12.129

   2,  hadoop 分布式环境安装

                   hadoop版本,2.8.2 ,集群的安装请参考:查看 hadoop 集群安装

   3, hbase 版本: 1.2.6

     这里我使用的hbase自带的


二, 安装hbase 分布式环境

   1, 安装前请大家一定要确保自己的hadoop环境正常运行,能够在上面读写数据,可以尝试一下方式验证hadoop 的hdfs文件系统是否正确!

     

 hadoop fs -ls /               # 查看hdfs 文件系统根目录下的文件有哪些
 hadoop fs -mkdir /test        # 创建一个test测试的目录
 hadoop fs -put ./regionservers /test # 随便上传一个本地文件到hdfs文件系统刚才创建的test文件夹下
 hadoop fs -ls /test           # 查看刚才上传的文件,如果存在且没有异常信息,说明集群环境没有问题

    2, 下载hbase 的bin压缩包,  hbase 安装包下载

        下载好后,到自己的下好刚才文件的目录下,解压压缩包,我这里移动到 /opt 文件夹下,大家可以根据自己的需求进行选择

tar -zxvf hbase-1.2.6-bin.tar.gz 

将其移动到 /opt 文件夹下,可以根据自己安装目录选择,

sudo mv hbase-1.2.6  /opt/hbase
  对 /opt/hbase 这个文件夹添加当前用户的所有操作权限, 我这里的用户为 zhoujun

cd /opt
sudo chown -R zhoujun ./hbase

 

   3,  修改相关的配置文件

        注意我的三台主机的ip以及主机名分别为:

                                     zhoujun      172.16.12.1

                                    hadoop2      172.16.12.131

                                    hadoop3      172.16.12.129

        首先修改自己的hbase-site.xml 文件

       cd /opt/hbase/conf # 进入到hbase的配置目录

vim hbase-site.xml

   <confiuration>中的内容为:

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://zhoujun:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/opt/hbase/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zhoujun:2181,hadoop2:2181,hadoop3:2181</value>
</property>
</configuration>


 修改 regionservers 文件内容,添加 regionservers 节点

  我这里三台,内容如下

172.16.12.1
172.16.12.129
172.16.12.131                      
 如果你的  ~/.bashrc 文件 或者 /etc/profile文件中没有添加 JAVA_HOME 请在 hbase-en.sh 的文件头部添加,参考 hadoop 的集群安装中的内容,  点击打开链接

  4, 压缩配置好的hbase, 并传送到其他的各个主机上!

cd /opt
tar -zcf  ./hbase.tar.gz ./hbase
scp hbase.tar.gz zhoujun@hadoop2:
scp hbase.tar.gz zhoujun@hadoop3:

然后登录到 各个节点上,解压文件,移动到 /opt 下并添加文件的权限

ssh hadoop2                        # 登录到hadoop2 节点
tar -zxvf hbase.tar.gz             # 解压
sudo mv ./hbase /opt/hbase         # 移动
cd /opt
sudo chown -R zhoujun ./hbase      # 添加用户 zhoujun 的权限,可以根据自己的用户设置
 

然后对 hadoop3 jj节点进行相同的操作,即可

5,  对每个节点添加hbase的相关配置信息到 ~/.bashrc 或者 /etc/profile 中

vim ~/.bashrc
添加内容如下:

# HBase
export HBASE_HOME=/opt/hbase
export HBASE_CONF_DIR=$HBASE_HOME/conf
export HBASE_CLASS_PATH=$HBASE_CONF_DIR
export PATH=$PATH:$HBASE_HOME/bin

三, 测试并检测

 启动相关服务

start-all.sh          # 启动 hadoop, 如果启动过了,就不用
start-hbase.sh        # 启动 hbase

然后jps  查看进程即可:

zhoujun@zhoujun:/opt$ jps
15889 SecondaryNameNode
16067 ResourceManager
15526 NameNode
16198 NodeManager
15690 DataNode
16795 HQuorumPeer
17067 HRegionServer
16909 HMaster
17951 Jps

然后启动hbase shell  测试,能够创建表,列出表,说明环境搭建成功!

zhoujun@zhoujun:/opt$ hbase shell
2017-12-19 19:24:17,722 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

hbase(main):001:0> list
TABLE                                                                                                                                          
0 row(s) in 0.3410 seconds

=> []
hbase(main):002:0> create 'test','f'
0 row(s) in 2.4680 seconds

=> Hbase::Table - test
hbase(main):003:0> list
TABLE                                                                                                                                          
test                                                                                                                                           
1 row(s) in 0.0090 seconds

=> ["test"]
hbase(main):004:0> 

好了。环境搭建完毕,有什么问题,欢迎大家留言交流!


<think>好的,我需要帮助用户了解如何在完全分布式环境下安装和部署HBase集群。首先,我需要回顾用户提供的引用内容,确保回答准确。 用户提供了四个引用,主要涉及HBase集群安装步骤、依赖关系、配置文件和常见错误处理。根据这些信息,我应该分步骤讲解安装流程,强调Hadoop和Zookeeper的依赖,特别是版本兼容性问题。此外,需要提到配置hbase-site.xml和hbase-env.sh的注意事项,以及启动和停止集群的顺序,避免进程卡住的问题。还要解决类路径错误,如引用3提到的修改hbase文件添加依赖包。 接下来,我需要按照逻辑组织步骤:环境准备、Hadoop和Zookeeper安装HBase配置、启动与验证、注意事项。每个步骤中要包含关键命令和配置示例,使用代码块展示。同时,要提醒用户注意停止集群的正确顺序,避免强制杀进程。最后生成相关问题,覆盖兼容性、Zookeeper配置、错误处理、性能优化和应用场景。 需要检查是否遗漏了任何关键点,例如Hadoop集群的预先搭建、配置文件的详细修改、端口号等。确保所有引用内容都被合理引用,标注正确的引用标识。避免使用用户不可见的格式,保持回答结构清晰,符合用户要求的可见层指导。</think>### HBase完全分布式集群安装部署教程 #### 一、环境准备 1. **基础依赖** HBase集群必须建立在Hadoop(HDFS)基础之上,需预先完成Hadoop完全分布式集群部署,并确保两者版本兼容性[^2]。建议使用HBase 2.4.x搭配Hadoop 3.x版本。 2. **Zookeeper配置** 完全分布式环境需单独部署Zookeeper集群(至少3节点),并在HBase配置中关闭自带的Zookeeper[^4]: ```bash export HBASE_MANAGES_ZK=false # 在hbase-env.sh中配置 ``` #### 二、关键配置文件 1. **hbase-site.xml** 配置核心参数(位于`$HBASE_HOME/conf/`目录): ```xml <configuration> <!-- HDFS存储路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://your-namenode:8020/hbase</value> </property> <!-- 启用分布式模式 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- Zookeeper集群地址 --> <property> <name>hbase.zookeeper.quorum</name> <value>zk-node1,zk-node2,zk-node3</value> </property> </configuration> ``` 2. **regionservers文件** 添加所有RegionServer节点主机名: ```text node1 node2 node3 ``` #### 三、集群启动流程 1. **启动顺序** ```bash # 先启动Hadoop集群 start-dfs.sh && start-yarn.sh # 再启动Zookeeper集群 zkServer.sh start # 在所有Zookeeper节点执行 # 最后启动HBase start-hbase.sh ``` 2. **访问验证** 通过浏览器访问`http://master-node:16010`查看集群状态[^3]。 #### 四、常见问题处理 1. **类路径错误** 若出现`Error: Could not find or load main class`,需编辑`$HBASE_HOME/bin/hbase`文件,在第161行添加HBase自身依赖路径[^3]: ```bash HBASE_CLASSPATH="$HBASE_HOME/lib/*" ``` 2. **进程停止卡顿** 停止集群时必须按顺序执行: ```bash stop-hbase.sh → stop-zookeeper.sh → stop-hadoop.sh ``` 违反顺序可能导致进程无法正常终止,需使用`kill -9`强制结束。 #### 五、配置优化建议 1. 在`hbase-env.sh`中明确指定JAVA_HOME路径[^4] 2. 根据硬件资源调整`hbase.regionserver.handler.count`(默认30) 3. 开启BucketCache优化读性能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值