Hbase安装配置
文章目录
- Hbase安装配置
- Hbase安装前提
- 下载Hbase压缩包
- 软件版本兼容性
- Hadoop和Hbase
- Hbase和JDK
- 软件安装
- 软件位置
- 创建数据保存和日志保存文件夹
- 修改配置文件
- 修改`hbase-site.xml`文件
- 修改`hbase-env.sh`文件
- 修改~/.bashrc文件
- 启动hbase并验证
- 权限问题Permission denied
- 修改用户和用户组
- 修改目标目录的权限
- SLF4J问题: Class path contains multiple SLF4J bindings.
- SLF4J的多重绑定问题:
- Hbase应用结合
- 参考文档
Hbase安装前提
- JDK
- Hadoop(Hadoop自带了zookeeper, 所以不需要额外进行下载)
下载Hbase压缩包
Hbase下载
软件版本兼容性
Hadoop和Hbase
Hadoop和Hbase的匹配关系可以查看Hbase官方文档,搜索‘Hadoop version support matrix’: http://hbase.apache.org/book.html#basic.prerequisites
HBase与Hadoop版本对应关系如下:
查看自己的hadoop版本为2.10.2
release中的Hbase的2.3.x系列版本
Hbase和JDK
HBase与JDK版本对应关系如下:
软件安装
软件位置
/usr/loca/hbase
创建数据保存和日志保存文件夹
hbase_data
用于保存hbase产生数据的目录
hbase_log
用于记录hbase操作的日志目录
zookeeper_data
用于保存zookeeper产生数据的目录
修改配置文件
修改hbase-site.xml
文件
在Hadoop、HBase等Apache项目中,通常有一些默认的配置文件,如
hadoop-default.xml
或hbase-default.xml
。这些默认的配置文件包含了项目的默认设置。在部署这些项目时,为了避免直接修改默认配置文件,我们通常会创建一个名为
<软件名>-site.xml
的新配置文件,如hadoop-site.xml
或hbase-site.xml
。这个"site"后缀表示这些配置是针对您特定部署环境的。这样,在项目更新时,您可以保留您的部署特定设置,而不必担心与默认设置发生冲突。这些"site"配置文件中的设置会覆盖默认配置文件中的相应设置。
<property>
<name>hbase.cluster.distributed</name> <!--是否是分布式配置-->
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name> <!-- 缓存文件的保存目录 -->
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name> <!-- 不用管 -->
<value>false</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>file:///usr/local/hbase/hbase-2.3.1/hbase_data</value> <!-- hbase的data保存目录,需要手动创建 -->
</property>
<property>
<name>hbase.zookeeper.quorum</name> <!-- 表示使用hbase自带的zookeeper -->
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name> <!-- zookeeper的端口号 -->
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name> <!-- zookeeper的data保存目录 -->
<value>/usr/local/hbase/hbase-2.3.1/zookeeper_data</value>
</property>
修改hbase-env.sh
文件
添加自己的Java和Hadoop变量
以及日志保存目录变量
export JAVA_HOME=/usr/local/Java/jdk1.8.0_361
export HADOOP_HOME=/usr/local/hadoop
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=/usr/local/hbase/hbase-2.3.1/hbase_log
修改~/.bashrc文件
添加hbase的环境变量
使得能够全局使用bin中的命令
#hbase
export HBASE_HOME=/usr/local/hbase/hbase-2.3.1
export PATH=$PATH:$HBASE_HOME/bin
启动hbase并验证
使用start-hbase.sh
进行启动
使用jps
进行验证, 如果出现hbase相关的HRegionServer
和HMaster
进行则说明启动成功
权限问题Permission denied
修改用户和用户组
更改目标目录的所属用户和所属用户组为当前用户
sudo chown -R yourUserName:yourUserName <floderName>
修改目标目录的权限
通常出现报错都是因为当前用户对目标文件夹没有写权限
所以需要开放该目录对当前用户的写权限
chmod -R 755 folder
: 这个命令用于更改指定文件夹(以及其子文件夹和文件)的权限。
权限是以三位数字表示的,每个数字分别代表文件所有者、文件所属组和其他用户的权限。
例如755
表示:
- 所有者(第一个数字,即7):具有读、写和执行权限(7 = 4 + 2 + 1,其中4表示读权限,2表示写权限,1表示执行权限)
- 用户组(第二个数字,即5):具有读和执行权限(5 = 4 + 1)
- 其他用户(第三个数字,即5):具有读和执行权限(5 = 4 + 1)
所以在确定当前用户在目标目录或文件的用户组中,可以使用一下命令进行权限的修改
sudo chown -R 775 <floderName>
SLF4J问题: Class path contains multiple SLF4J bindings.
SLF4J的多重绑定问题:
这个问题是由于在类路径中找到了多个SLF4J绑定导致的。虽然这个问题不会直接导致HBase启动失败,但建议解决它以避免潜在的问题。
要解决这个问题,可以从Hadoop或HBase的lib
目录中删除其中一个绑定。
可以删除HBase的lib/client-facing-thirdparty
目录下的slf4j-log4j12-1.7.30.jar
文件。这样SLF4J就只会使用Hadoop中的slf4j-reload4j-1.7.36.jar
绑定。
Hbase应用结合
Hbase + Redis
Hbase + solr
构建用户画像
参考文档
Hadoop、Hbase、Hive和zookeeper版本兼容关系
linux上部署最新版本zookeeper伪分布式集群
HBase 伪分布式模式安装与启动
HBase集群教程