HBase几种安装方式
一、前提说明
- Hadoop已经完成安装(
如伪分布式、全分布式等
) - zookeeper已经完成安装(
全分布式和HA模式需要
) - 环境对应关系如下:hbase环境对应hadoop环境对应外部zookeeper环境本地模式不需要不需要伪分布式伪分布式单机安装(也可用hbase内置zookeeper)全分布式全分布式集群模式(也可用hbase内置zookeeper)HA模式HA模式集群模式(也可用hbase内置zookeeper)
本教程都使用hbase内置的zookeeper,不需要另外单独安装部署zookeeper
二、具体安装步骤
- 本地模式(不需要HDFS,保存在Linux的文件系统)1. 事先需要在/training/hbase-1.3.1目录下创建data目录,执行:
mkdir /training/hbase-1.3.1/data
2. 进入到/training/hbase-1.3.1/conf目录下, 编辑:vi hbase-env.sh,修改如下信息:export JAVA_HOME=/training/jdk1.8.0_171
3. 编辑:vi hbase-site.xml,在之间添加如下信息:<property><name>hbase.rootdir</name><!--这个data事先需要创建--><value>file:///training/hbase-1.3.1/data</value></property>
4. 启动HBase,执行:start-hbase.sh
,看到正常启动日志如下:> starting master, logging to /training/hbase-1.3.1/logs/hbase-root-master-niit00.outjps查看进程:只有HMaster5. 启动hbase,执行:hbase shell
,登录到hbase上,进行如下测试:1. 创建学生表create 'student','info','grade'
2. 登录到web Console上查看:http://niit01:16010 - 伪分布模式(需要HDFS环境,即Hadoop已经启动了)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文件中添加如下信息:exportHBASE_HOME=/training/hbase-1.3.1 exportPATH=$HBASE_HOME/bin:$PATH
4. 让环境变量生效source ~/.bash_profile
5. 验证配置hbase的环境变量是否生效 hbase ----- 看看是否有Usage: hbase [] []信息,如果有则生效了,否则,配置有误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 将#号去掉即可(不用单独安装zk) 3. 保存退出 (b). 编辑:vi hbase-site.xml
,在之间添加如下信息,注意下面的有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 - 全分布模式(有三台主机:master(主节点) slave01(从节点) slave02(从节点))
特别注意:如果没有特别说明的,以下所有的操作默认都是在主节点(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文件中添加如下信息:exportHBASE_HOME=/training/hbase-1.3.1 exportPATH=$HBASE_HOME/bin:$PATH
4. 让环境变量生效 source ~/.bash_profile5. 验证配置hbase的环境变量是否生效 hbase ----- 看看是否有Usage: hbase [] []信息,如果有则生效了,否则,配置有误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 将#号去掉即可 3. 保存退出 b. vi hbase-site.xml,在之间添加如下信息, 注意下面的有IP的地址需要修改成你自己主机的IP地址:<!--HBase的数据保存在HDFS对应目录,hadoop是全分布式--> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <!--是否是分布式环境--> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!--配置ZK的地址--> <property> <name>hbase.zookeeper.quorum</name> <value>master</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地址或者主机名: slave01 slave02 注意事项:使用主机名 必须在每台机器上配置 /etc/hosts7. 进入到/training目录下,将hbase-1.3.1整个目录复制到其他两个从节点上: scp -r hbase-1.3.1/ root@slave01:/training scp -r hbase-1.3.1/ root@slave02:/training8. 在主节点上启动HBase: start-hbase.sh9. 使用jps命令查看,是否已经启动了如下三个进程(如果以下上个进程存在,则说明安装配置hbase成功了): 从节点:HRegionServer 主节点:HMaster10. 登录Web Console进程查看: http://master:16010 如下图所示:注意:如果你使用的jdk版本是1.8+以上的,当你在启动hbase集群时,会有如下警告
解决方法:需要到节点中所有的节点中对hbase-env.sh进行修改,按照下图所示注释掉如下两行代码即可
- HBase实现HA(在以上全分布模式的基础上,任意选择niit02或者niit03作为HMaster即可) 假设我选择niit02作为备份的HMaster的话,我需要在niit02上手动启动一个HMaster进程即可:
hbase-daemon.sh start master
如果是HA模式下,需要将hdfs-site.xml和core-site.xml复制到hbase的conf目录下 具体参考如下配置:<!--HBase的数据保存在HDFS对应目录,hadoop是HA,其中ns1来自与hdfs-site.xml中的hdfs-site.xml的配置dfs.nameservices--><property><name>hbase.rootdir</name><value>hdfs://ns1/hbase</value></property><!--是否是分布式环境--><property><name>hbase.cluster.distributed</name><value>true</value></property><!--配置ZK的地址--><property><name>hbase.zookeeper.quorum</name><value>hadoop002,hadoop003,hadoop004</value></property><!--冗余度--><property><name>dfs.replication</name><value>3</value></property><!--主节点和从节点允许的最大时间误差--><property><name>hbase.master.maxclockskew</name><value>180000</value></property><!-- 可选择配置 --><property><!-- 定义regionserver上用于等待响应用户表级请求的线程数,可配大点 --><name>hbase.regionserver.handler.count</name><value>12</value></property><property><!-- 这里因为要HMaster的HA,不需要指定域名 --><name>hbase.master</name><value>60000</value></property>
标签:
hbase
本文转载自: https://blog.csdn.net/sujiangming/article/details/124873177
版权归原作者 若兰幽竹 所有, 如有侵权,请联系我们删除。
版权归原作者 若兰幽竹 所有, 如有侵权,请联系我们删除。