banner.webp

1.NoSQL数据库HBase

  1. NoSQL是“Not Only SQL”的缩写,泛指用来解决大数据相关问题而创建的数据库技术,NoSQL技术不会完全替代关系型数据库,而是关系型数据的一种补充。HBase是建立在Hadoop文件系统之上的分布式面向列的NoSQL数据库。它是一个开源项目,可横向扩展。HBase的数据模型,类似于谷歌的BigTable设计,可以快速随机访问海量半结构化数据,并利用了Hadoop的文件系统HDFS提供的容错能力。
  2. 虽然数据库存储和检索的实现可以选择很多不同的策略,但是绝大多数解决办法,特别是关系型数据库技术的变种,不是为大规模可伸缩的分布式处理设计的。很多厂商提供了复制(replication)和分区(partitioning)解决方案,让数据库能够从单个节点上扩展出去,但是这些附加的技术大都属于“事后”的解决办法,而且非常难以安装和维护,并且这些解决办法常常要牺牲一些重要的关系型数据库管理系统(RDBMS)特性。
  3. 在一个“扩展的”RDBMS上,连接、复杂查询、触发器、视图以及外键约束这些功能或运行开销大,或根本无法使用。HBase从另一个方向来解决可伸缩性的问题,它自底向上地进行构建,能够简单地通过增加节点来达到线性扩展的目的。
  4. HBase并不是关系型数据库,它不支持SQL。但在特定的问题空间里,它能够做RDBMS不能做的事:在廉价硬件构成的集群上管理超大规模的稀疏表。
  5. HBaseApache的顶级开源项目,本质上是谷歌的BigTable的开源山寨版本。建立的HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统,它介于NoSQLRDBMS之间,仅能通过主键(row key)和主键的范围(range)来检索数据,仅支持单行事务(可通过Hive支持来实现多表join等复杂操作)。主要用来存储非结构化和半结构化的松散数据。

2.HBase伪分布式安装

安装HBase的前提条件是Hadoop已经成功安装并成功启动

下载地址:https://dlcdn.apache.org/hbase/2.4.12/hbase-2.4.12-bin.tar.gz

然后利用FTP工具放到/usr/local目录下,然后解压、改名

  1. tar -xvf hbase-2.4.12-bin.tar.gz
  2. mv hbase-2.4.12 hbase

然后将HBase配置到环境变量中,配置完成后如下所示

  1. export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
  2. export HADOOP_HOME=/usr/local/hadoop
  3. export HIVE_HOME=/usr/local/hive
  4. export JRE_HOME=$JAVA_HOME/jre
  5. export HDFS_NAMENODE_USER=root
  6. export HDFS_DATANODE_USER=root
  7. export HDFS_SECONDARYNAMENODE_USER=root
  8. export YARN_RESOURCEMANAGER_USER=root
  9. export YARN_NODEMANAGER_USER=root
  10. export SCALA_HOME=/usr/local/scala
  11. export SPARK_HOME=/usr/local/spark
  12. export HBASE_HOME=/usr/local/hbase
  13. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HBASE_HOME/bin
  14. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后使环境变量立即生效

  1. source /etc/profile

然后切换到HBase的配置文件目录/usr/local/hbase/conf,然后分别修改HBase的配置文件hbase-env.sh和hbase-site.xml

先修改hbase-env.sh

修改如下两处配置

  1. export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64/
  2. export HBASE_MANAGES_ZK=true

分别位于配置文件的第28行、第126行

配置hbase-site.xml添加如下配置

  1. <configuration>
  2. <property>
  3. <name>hbase.rootdir</name>
  4. <value>hdfs://hadoop0:9000/hbase</value>
  5. </property>
  6. <property>
  7. <name>hbase.cluster.distributed</name>
  8. <value>true</value>
  9. </property>
  10. <property>
  11. <name>hbase.zookeeper.quorum</name>
  12. <value>hadoop0</value>
  13. </property>
  14. <property>
  15. <name>hbase.wal.provider</name>
  16. <value>filesystem</value>
  17. </property>
  18. </configuration>

然后在regionservers文件中把自己的hostname添加上,我这里的hostname是hadoop0

验证HBase,先启动HBase

  1. start-hbase.sh

然后输入hbase shell,启动hbase shell命令行,输入list,如果没有报错则证明已正确安装并成功启动。
1.png
通过浏览器地址:http://hadoop0:16010,可以查看HBase运行的状态信息。
2.png
输入jps命令,查看相关Java进程,可以看到后台启动了3个H开头的HBase进程
3.png
至此,HBase已安装完成并运行正常。