1.NoSQL数据库HBase
NoSQL是“Not Only SQL”的缩写,泛指用来解决大数据相关问题而创建的数据库技术,NoSQL技术不会完全替代关系型数据库,而是关系型数据的一种补充。HBase是建立在Hadoop文件系统之上的分布式面向列的NoSQL数据库。它是一个开源项目,可横向扩展。HBase的数据模型,类似于谷歌的BigTable设计,可以快速随机访问海量半结构化数据,并利用了Hadoop的文件系统HDFS提供的容错能力。
虽然数据库存储和检索的实现可以选择很多不同的策略,但是绝大多数解决办法,特别是关系型数据库技术的变种,不是为大规模可伸缩的分布式处理设计的。很多厂商提供了复制(replication)和分区(partitioning)解决方案,让数据库能够从单个节点上扩展出去,但是这些附加的技术大都属于“事后”的解决办法,而且非常难以安装和维护,并且这些解决办法常常要牺牲一些重要的关系型数据库管理系统(RDBMS)特性。
在一个“扩展的”RDBMS上,连接、复杂查询、触发器、视图以及外键约束这些功能或运行开销大,或根本无法使用。HBase从另一个方向来解决可伸缩性的问题,它自底向上地进行构建,能够简单地通过增加节点来达到线性扩展的目的。
HBase并不是关系型数据库,它不支持SQL。但在特定的问题空间里,它能够做RDBMS不能做的事:在廉价硬件构成的集群上管理超大规模的稀疏表。
HBase是Apache的顶级开源项目,本质上是谷歌的BigTable的开源山寨版本。建立的HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统,它介于NoSQL和RDBMS之间,仅能通过主键(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目录下,然后解压、改名
tar -xvf hbase-2.4.12-bin.tar.gz
mv hbase-2.4.12 hbase
然后将HBase配置到环境变量中,配置完成后如下所示
export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export JRE_HOME=$JAVA_HOME/jre
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export SCALA_HOME=/usr/local/scala
export SPARK_HOME=/usr/local/spark
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HBASE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后使环境变量立即生效
source /etc/profile
然后切换到HBase的配置文件目录/usr/local/hbase/conf,然后分别修改HBase的配置文件hbase-env.sh和hbase-site.xml
先修改hbase-env.sh
修改如下两处配置
export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64/
export HBASE_MANAGES_ZK=true
分别位于配置文件的第28行、第126行
配置hbase-site.xml添加如下配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop0:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop0</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>
然后在regionservers文件中把自己的hostname添加上,我这里的hostname是hadoop0
验证HBase,先启动HBase
start-hbase.sh
然后输入hbase shell,启动hbase shell命令行,输入list,如果没有报错则证明已正确安装并成功启动。
通过浏览器地址:http://hadoop0:16010,可以查看HBase运行的状态信息。
输入jps命令,查看相关Java进程,可以看到后台启动了3个H开头的HBase进程
至此,HBase已安装完成并运行正常。