ubuntu上安装HBase伪分布式-2024年08月04日
- 1.HBase介绍
- 2.HBase与Hadoop的关系
- 3.安装前言
- 4.下载及安装
- 5.单机配置
- 6.伪分布式配置
1.HBase介绍
HBase是一个开源的非关系型数据库,它基于Google的Bigtable设计,用于支持对大型数据集的实时读写访问。HBase有以下几个特点:高可靠性、高性能、面向列的存储以及可伸缩性。
2.HBase与Hadoop的关系
Hadoop是一个分布式计算框架,用于存储和处理大规模数据集。它包括Hadoop分布式文件系统(hdfs)和MapReduce编程模型,可以在集群中进行数据存储和处理。
HBase可以与Hadoop一起使用,以提供一个完整的数据处理解决方案。Hadoop用于存储和处理大规模数据,而HBase用于实时访问和查询这些数据。在实际应用中,可以将HBase作为Hadoop生态系统的一部分使用,以满足不同的数据处理需求。
3.安装前言
1.要想安装HBase首先你的ubuntu上得安装了Java环境,安装了 Hadoop并且已经配置好了伪分布式模式。
2.安装HBase前先查询你安装的hadoop的版本,然后再去查一下和它匹配的HBase的版本。如果想知道 HBase最新的版本兼容性消息,可以自己去 Apache HBase官网进行查看 Apache HBase官网配置版本要求https://hbase.apache.org/book.html#basic.prerequisites
我的hadoop版本是2.10.2,根据上2张表,那我我可以用的hbase就有2.5、2.6、2.3、2.4这几个任选就行,这里再选择国内镜像https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/ ,我选择2.4,主要原因就是时间,选个不要太近又不太远的。
4.下载及安装
1.使用国内镜像下载
2.下载下来后是放在主文件夹下的下载文件夹里的
3.解压命令
sudo tar -zxvf hbase-2.4.18-bin.tar.gz
4.将解压后的文件移动到/usr/local下
sudo mv hbase-2.4.18 /usr/local/
5.重命名hbase-2.4.18为hbase
sudo mv ./hbase-2.4.18 ./hbase
6.把文件权限给hadoop账户
sudo chown -R hadoop ./hbase
7.测试是否能用
/usr/local/hbase/bin/hbase version
5.单机配置
1.找到自己的 JAVA_HOME的值
echo $JAVA_HOME
2.在 HBase的文件目录下,conf文件夹中放的是配置文件。我们需要更改 hbase-env.sh文件,把 JAVA_HOME环境变量指定到本机的JDK目录。
cd /usr/local/hbase/conf
sudo vim hbase-env.sh
打开后修改JAVA_HOME为自己的变量,并且把#去掉
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
然后找到export HBASE_MANAGES_ZK=true把前面的#去掉
3.编辑完成后,使用 source命令使配置生效
source hbase-env.sh
4.编辑配置文件 /etc/profile,添加 hbase环境变量 HBASE_HOME。
cd ~
sudo vim /etc/profile
添加代码
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/sbin:$HBASE_HOME/bin
5.编辑完成后保存并退出,使用 source命令使配置生效
source /etc/profile
6.测试时候安装成功,显示大致如下图即可,单机配置完成
hbase version
6.伪分布式配置
1.打开 hbase-env.sh文件,
cd /usr/local/hbase/conf
sudo vim hbase-env.sh
找到对应配置,去掉前面的‘#’,并修改为对应路径。
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_MANAGES_ZK=true
执行source /etc/profile,让配置生效
source /etc/profile
2.编辑 hbase-site.xml文件,将需要配置的信息写入 configuration标签内。
cd /usr/local/hbase/conf
sudo vim hbase-site.xml
假设当前 Hadoop集群运行在伪分布式模式下,在本机上运行,且NameNode运行在9000端口的情况下。修改 hbase.rootdir,指定 HBase数据在 HDFS上的存储路径;没有则添加,有则修改,将属性 hbase.cluter.distributed设置为 true。
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
3.接下来,我们测试伪分布式模式是否配置成功。
cd $HADOOP_HOME
./sbin/start-dfs.sh
jps
执行jps后正常应该显示如下图,展示secondarynamenode,namenode,jps.datanode四个节点,但是如果你缺少了datanode,去看下日志,多半是你数据没清除,造成lnitialization failed for Block pool错误,解决方法就是使用./sbin/stop-all.sh命令先停止集群,然后把data目录下的所有内容删除,不知道目录在哪的,打开 hdfs .-site.xml文件中配置的dfs.data.dir目录。删除后,执行./bin/hdfs namenode -format重新格式化NameNode。然后再启动集群,再执行jps,保证4个节点都在才进行下一步。
4.启动 HBase伪分布式环境
cd $HBASE_HOME
./bin/start-hbase.sh
jps
执行jps后应显示如下图,看到 HMaster、HRegionServer、HQuorumPeer结点,则 HBase启动成功。
5.停止运行的命令
./bin/stop-hbase.sh
6.查看 HDFS
cd $HADOOP_HOME
./bin/hdfs dfs -ls /
在 HDFS中,多了一个/hbase目录,用来保存 HBase的数据。
到这一步,HBase伪分布式模式已经配置成功,关闭 Hadoop就行了。
注意,操作 Hadoop和 HBase的执行顺序是:启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop。