Hadoop大数据平台实战(03):Linux实战安装HBase,并保存数据

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: Apache HBase开源免费的Hadoop数据库,使用Java开发的,是一个分布式,可扩展的NoSQL数据库。本文会详细介绍HBase原理、架构、新特性、Linux环境下的安装,安装模式,表创建,简单的CRUD操作。

Apache HBase开源免费的Hadoop数据库,使用Java开发的,是一个分布式,可扩展的NoSQL数据库。本文会详细介绍HBase原理、架构、新特性、Linux环境下的安装,安装模式,表创建,简单的CRUD操作。

image


1、HBase数据库介绍
HBase是开源NoSQL数据库,主要用于大数据平台。受启发于谷歌在2006年发表了一篇关于Big Table的论文。当我们需要对大数据进行随机,实时读/写访问时,可以使用Apache HBase。 HBase可以托管非常大的表 - 数十亿行X百万列,存储大规模不规则的数据集 。
Apache HBase是一个开源的,分布式的,版本化的NoSQL非关系数据库,模仿Google的Bigtable数据库:Chang等人的结构化数据分布式存储系统。 正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能。

2、HBase新特性
1)线性和模块化可扩展性。
2)严格一致的读写操作。
3)自动分区,分表的自动和可配置分片
4)RegionServers之间的自动故障转移支持。
5)方便的基类,用于使用Apache HBase表支持Hadoop MapReduce作业。
6)易于使用的Java API,用于客户端访问。
7)阻止缓存和布隆过滤器以进行实时查询。
8)查询谓词通过服务器端过滤器下推
9)Thrift网关和REST-ful Web服务,支持XML,Protobuf和二进制数据编码选项
10)可扩展的基于jruby(JIRB)的Shell客户端
11)支持通过Hadoop指标子系统将指标导出到文件或Ganglia; 或通过JMX

3、HBase发展历史

谷歌在2006年发表了一篇关于Big Table的论文,
HBase最初是由Powerset公司开展的一个项目,因为需要处理大量数据以用于自然语言搜索。 并在2006年底开始了HBase的开发。
2007年创建的HBase原型为Hadoop contrib,第一个可用的HBase在2007年发布。
2008年,Hadoop成为Apache顶级项目,HBase成为其子项目。
此外,HBase 0.18,0.19于2008年10月发布。
2010年,HBase成为Apache顶级项目。
HBase 0.92于2011年发布。最新版本为0.96。
Facebook于2010年11月选择使用HBase实施其新的消息传递平台,但在2018年从HBase迁移出来。
截至2017年2月,1.2.x系列是目前的稳定版本。
2019年目前最新的版本是2.1.4版本。
4、HBase架构
HBase采用分布式架构,底层使用HDFS存储数据,支持区域RegionServer机制,自动分区扩展集群,支持大数据扩展。存储数据采用列族ColumnFamily模式。在HBase中,表被分成区域并由区域服务器提供不同的存储服务。 区域按列族垂直划分为“存储区”。 存储区在HDFS中保存为独立的文件。 下面显示的是HBase的分布式存储架构。
image

5、HBase下载安装
下面会详细介绍单节点独立HBase的设置。 独立实例具有所有HBase守护程序 - Master,RegionServers和ZooKeeper - 在单个JVM中运行,持久保存到本地文件系统。
HBase的安装通常分为3种模式:单机、伪分布式集群、完全分布式集群:
Standalone mode
Pseudo Distributed mode
Fully Distributed mode
HBase安装要求先安装JDK,我们使用JDK8版本。推荐使用Open JDK。如果你还不熟悉Hadoop安装过程,可以阅读这个文章:https://yq.aliyun.com/articles/695959
6、安装JDK8
安装开源的JDK8,免费,不会引起收费问题。

sudo apt install default-jdk

image
查看安装版本 Java -version
image
7、安装SSH

sudo apt-get install openssh-server openssh-client
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

image

测试登录,不需要密码:
ssh localhost
8、安装HBase数据库

下载地址,我们选择当前的稳定版本1.2.11版本。http://hbase.apache.org/downloads.html。我们选择清华大学的国内服务器镜像。

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/hbase-1.2.11/hbase-1.2.11-bin.tar.gz

image
等待下载完毕,解压,并且移动到安装目录,命令如下:

tar zxvf hbase-1.2.11-bin.tar.gz
tar xvzf hbase-1.2.11-bin.tar.gz
sudo mv hbase-1.2.11 /usr/local/hbase/

image
9、配置HBase环境变量
安装完毕以后,可以配置HBase的环境变量。
使用vim ~/.bashrc编辑配置文件,然后插入HBase环境变量

export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin

使其生效,source ~/.bashrc
10、HBase编辑配置文件
为了单节点可以编辑配置文件,路径conf/hbase-site.xml,我们可以插入如下的参考配置:我们可以在配置文件里指定HBase和ZooKeeper存储位置,也可以使用默认设置。

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/frankxulei/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/frankxulei/zookeeper</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>

11、启动HBase数据库
使用./start-hbase.sh启动HBase数据库。使用JPS命令检查是否正常运行。
image
这里已经正常启动HBase数据库。
也可以使用status version whoami三个命令 查看状态、版本和账号信息
image
12、测试HBase数据库,创建表,并保存数据

create 'test', 'cf'
put 'test', 'row1', 'cf:name', 'hadoop'
put 'test', 'row1', 'cf:name', 'hbase'
put 'test', 'row1', 'cf:name', 'frankxulei'

image
创建一个表test,列族cf,并且保存3条数据。
image
读取所有数据
scan 'test'
scan 'users'
获取单个值
get 'test', 'row1'
image
后续我们在讲解Hadoop集群架构,HBase底层原理与算法,存储模型,集群搭建。
参考网站:
http://hbase.apache.org/
https://en.wikipedia.org/wiki/Apache_HBase

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
50 3
|
1月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
61 1
|
1月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
100 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
84 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
37 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
46 0
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
148 6
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
64 2
|
15天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
59 2
|
16天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
56 1