知识点
相关文章
更多最近更新
更多Hadoop HBase入门
2019-03-28 14:05|来源: 网络
HBase 是Hadoop的一个子项目,HBase采用了Google BigTable的稀疏的,面向列的数据库实现方式的理论,建立在hadoop的hdfs上,一方面里用了hdfs的高可靠性和可伸缩行,另外一方面里用了BigTable的高效数据组织形式.可以说HBase为海量数据的real-time相应提供了很好的一个开源解决方案.据说在某运营商中使用类似于 BigTable(个人猜测应该就是HBase)的技术可以在两秒时间内从2TB数据中查找到某条话费记录.而这是原来该运营商使用Oracle数据库所无法解决的问题.
对于HBase使用的类似与BigTable的技术我们这里就不仔细描述,可以参考google的论文以及网上的一些相关资料.另外,HBase的配置在HBase的官方文档中有很详细的描述.可以参见相关文档.
HBase提供了一个类似于mysql等关系型数据库的shell.通过该shell我们可以对HBase的内的相关表以及列族进行控制和处理.HBase shell的help命令比较详细的列出了HBase所支持的命令.具体使用方法可以参见其文档.
这里我们用一个学生成绩表作为例子,对HBase的基本操作和基本概念进行讲解:
下面是学生的成绩表:
name grad course:math course:art
Tom 1 87 97
Jerry 2 100 80
这里grad对于表来说是一个列,course对于表来说是一个列族,这个列族由两个列组成:math和art,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics等相应的列添加入course列族.
有了上面的想法和需求,我们就可以在HBase中建立相应的数据表啦!
1, 建立一个表格 scores 具有两个列族grad 和courese
hbase(main):002:0> create \'scores\', \'grade\', \'course\'
0 row(s) in 4.1610 seconds
2,查看当先HBase中具有哪些表
hbase(main):003:0> list
scores
1 row(s) in 0.0210 seconds
3,查看表的构造
hbase(main):004:0> describe \'scores\'
{NAME => \'scores\', IS_ROOT => \'false\', IS_META => \'false\', FAMILIES => }
1 row(s) in 0.0130 seconds
4, 加入一行数据,行名称为 Tom 列族grad的列名为”” 值位1
hbase(main):005:0> put \'scores\', \'Tom\', \'grade:\', \'1\'
0 row(s) in 0.0070 seconds
5,给Tom这一行的数据的列族添加一列
hbase(main):006:0> put \'scores\', \'Tom\', \'course:math\', \'87\'
0 row(s) in 0.0040 seconds
6,给Tom这一行的数据的列族添加一列
hbase(main):007:0> put \'scores\', \'Tom\', \'course:art\', \'97\'
0 row(s) in 0.0030 seconds
7, 加入一行数据,行名称为 Jerry 列族grad的列名为”” 值位2
hbase(main):008:0> put \'scores\', \'Jerry\', \'grade:\', \'2\'
0 row(s) in 0.0040 seconds
8,给Jerry这一行的数据的列族添加一列
hbase(main):009:0> put \'scores\', \'Jerry\', \'course:math\', \'100\'
0 row(s) in 0.0030 seconds
9,给Jerry这一行的数据的列族添加一列
hbase(main):010:0> put \'scores\', \'Jerry\', \'course:art\', \'80\'
0 row(s) in 0.0050 seconds
10,查看scores表中Tom的相关数据
hbase(main):011:0> get \'scores\', \'Tom\'
COLUMN CELL
course:art timestamp=1224726394286, value=97
course:math timestamp=1224726377027, value=87
grade: timestamp=1224726360727, value=1
3 row(s) in 0.0070 seconds
11,查看scores表中所有数据
hbase(main):012:0> scan \'scores\'
ROW COLUMN+CELL
Tom column=course:art, timestamp=1224726394286, value=97
Tom column=course:math, timestamp=1224726377027, value=87
Tom column=grade:, timestamp=1224726360727, value=1
Jerry column=course:art, timestamp=1224726424967, value=80
Jerry column=course:math, timestamp=1224726416145, value=100
Jerry column=grade:, timestamp=1224726404965, value=2
6 row(s) in 0.0410 seconds
相关问答
更多-
哪个不是Hadoop 的核心组件 hbase hive zookeeper riak[2022-04-10]
riak 华师大的吧- - 下面来简单介绍各个组件的作用: HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其他一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。HDFS让Hadoop可以最大化利用磁盘。 HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组 ... -
hadoop和hbase问题[2022-03-08]
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。 HBase是一个分布式的、面向列的开源数据库。 HBase在Hadoop之上提供了类似于Bigtable的能力。 HBase是Apache的Hadoop项目的子项目。 HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。 另一个不同的是HBase基于列的而不是基于行的模式。 -
两个不同层面的问题,没有什么不可以的。主要是要做好资源竞争方面的管理。一般Hbase都是实时查询多一点,所以应该设以更大的优先级。
-
HBase 的一个报错 hadoop zk hbase 都正常启动[2022-07-24]
Clent.HConnectionManager$HConnectionImplementation:Check the value with configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master. 直观来看,自己去查看zookeeper.znode.parent的配置是否正确。在Hbase/conf/core-site.xml中自己配置的zookeepe ... -
了解hadoop+hbase帮忙。。。[2023-09-19]
1.hadoop是分布式平台,就把计算和存储都由hadoop自动调节分布到接入的计算机单元中 2.hbase是hadoop上实现的kv数据库 3.hbase+hadoop无需再与mysql搭配了, 而且kv数据库与传统关系数据库区别很大 4.hadoop+hbase是分布式计算与分布式数据库存储的组合 5.增删查改都是真的hbase的, -
没学过hadoop可以直接学hbase吗[2022-04-11]
首先想问下,为什么要直接学习Hbase而不接触Hadoop呢? 我的建议是至少把Hadoop环境搭建起来,理解hadoop的HDFS和Mapreduce。 再装Hbase -
echo“scan'Employee',{COLUMNS =>'EmployeeInfo:Name'}”| hbase shell | grep“^”> EmplyeeExport.txt 这个命令可能对你有帮助....上面的Employee是一个表,EmployeeInfo是列族。 echo "scan 'Employee',{COLUMNS=>'EmployeeInfo:Name'}" | hbase shell | grep "^ " > EmplyeeExport.txt This command ...
-
回答你的问题: 查看Hbase-Hadoop兼容性链接 。 hbase-0.98.9应该支持hadoop-2.6.0。 你有两个选择 1个主节点和3个从节点。 (既然你只有4个节点,这个配置就足够了) 如果你想启用HA,你可以选择2个主节点和2个从节点。 Answering your questions : See the Hbase-Hadoop compatibility link . hbase-0.98.9 should support hadoop-2.6.0. You have two opti ...
-
以下是Hadoop和HBase版本之间的兼容性矩阵列表: 上图:S - 支持,X - 不支持,NT - 未测试 更多信息请访问: http : //hadoop.apache.org/releases.html Here is the list of compatibility matrix between Hadoop and HBase versions: Above: S - Supported, X - Not Supported, NT - Not Tested More Info availab ...
-
Hadoop和HBase集成(Hadoop and HBase integration)[2022-04-04]
HDFS是一个分布式文件系统 ; 可以在其上执行大多数常规FS操作,例如列出目录中的文件,编写常规文件,读取文件的一部分等。它不仅仅是“结构化或非结构化数据的集合”,而不是EXT4或NTFS文件系统是。 HBase是一个内存中的键值存储,它可以持久存储到HDFS (这不是一个硬盘要求,你可以在任何分布式文件系统上运行HBase)。 对于要求HBase的任何读取密钥请求,它将首先检查其运行时内存缓存,以查看它是否具有缓存的值,否则访问其在HDFS上存储的文件以查找和读出特定值。 HBase中提供了各种配置来控 ...