热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hbase学习笔记(安装和基础知识及操作)

参考书籍:Hadoopinaction,吴超沉思录1.Hbase简介1.面向列的分布式数据库2.以HDFS作为文件系统3.利用MapReduce处理Hbase中海量数据4.Zo

参考书籍: Hadoop in action, 吴超沉思录

1.Hbase简介

  1.面向列的分布式数据库

  2. 以HDFS作为文件系统

  3. 利用MapReduce处理Hbase中海量数据

  4. ZookKeeper作为协调工具

  5. sqoop提供Hbase到关系型数据库中数据导入功能

  6. Hive和pig提供高层语言支持如HSQL

 

2. 伪分布式安装

   准备: 安装Hadoop 详细见上一篇日志:hadoop分布式安装

   hbase版本:hbase-0.94.7-security.tar.gz

   安装目录 /usr/local

   步骤:

    1.  安装 tar -zxvf hbase-0.94.7-security.tar.gz 

    2. 重命名: mv hbase-0.94.7-security hbase

    3. 配置环境变量hbase_home  (vi /etc/profile)

    4. 修改配置文件

 

1. hbase_home/conf/hbase_env.sh

    修改java_home export 
    JAVA_HOME=/usr/local/jdk/

    修改zookeeper(最后一行)
    export HBASE_MANAGES_ZK=true(使用Hbase托管的ZooKeeper)


2. hbase_home/conf/hbase-site.xml文件
    
    configuration 中加入:

<property>  
  <name>hbase.rootdirname>  
  <value>hdfs://hadoop0:9000/hbasevalue>
property>
<property>
  <name>hbase.cluster.distributedname>
  <value>truevalue>
property>
<property>
  <name>hbase.zookeeper.quorumname>
  <value>hadoop0value>
property>
<property>
  <name>dfs.replicationname>
  <value>1value>
property>

 

    5. 启动hbase

      先启动hadoop(start-all.sh)

      启用hbase (start-hbase.sh)

      jps查看进程 (HMaster,HRegionServer, HQuorumPeer)

      http://hadoop0:60010可以查看管理界面,如下:

,

   

    6. 进程说明:

     HMaster: 管理Hbase table的DDL操作

          给region分配工作

     HResionServer: 原则上每个slave对应一个HRegionServer

     HQuorumPeer: ZooKeeper的守护进程,此处我们使用的是Hbase内置的ZooKeeper(在hbase-env.sh中有配置)

      

3. 分布式安装

   准备条件: hadoop分布式环境已安装,查看hadoop分布式安装

         hadoop0主机上hbase伪分布已安装完成

   安装:

   1. scp -rp /usr/local/hbase hadoop1:/usr/local

   2. 在hadoop0上更改hbase_home/conf/regionservers 将localhost更改为hadoop1

   3. 在hadoop0上启动hbase

   4. jps查看,如下:

    hadoop0上进程:

,

    , 

   hadoop1上进程:

  ,

  同理可通过 hostname:60010访问hbase管理界面,同分布式安装部分

4. 数据模型

  1. Hbase数据库采用了和Bigtable非常类似的数据类型,表格是稀疏的;

  1. row key 行键,table的主键

  2. timestamp 时间戳,数据操作时对应的时间戳,可以看成数据的version number

  3. Column Family 列簇,每个family可以由任意多个column组成,列名是<族名>:<标签>形式;一个表格的族名时固定的,除非使用管理员权限来改变表格的族名; 不过可以在任何时候添加新的标签;

    eg:course对于表来说是一个有两个列的列族(该列族由两个列组成math和art);

 

rowkey

name

TimeStamp

course

math

art

wish

wish

t1

t2

t3

97

93

97

98

76

99

rain

rain

t4

100

90

 

     4.两张特殊的表  -ROOT- 和 .META.

  作用如下:(即-ROOT-记录.META.的region信息,.META.记录用户表的region信息)

  ,

 

  关系如下:

    ,

 

 

 

基本操作

  (注意操作后不要加分号,习惯了sql,总是在后面加分号,然后发现执行语句后都一直没有反应,去掉分号后成功)

  (表名和列名都需要加引号,不区分单双引号) 

  Hbase shell,是Hbase的命令行工具,命令行中执行hbase shell即可进入hbase shell命令行 

  1) list  查看hbase中所有表

  2) 创建表: 

    create ‘表名‘,‘列簇1‘,‘列簇2‘....

create student, name,grade,course

  在管理界面中查看student

,

 

  3)describe 查看表结构

    describe ‘表名‘

 

   eg: describe ‘student‘

hbase(main):003:0> describe "student"
DESCRIPTION                                          ENABLED
 student, {NAME => course, DATA_BLOCK_ENCODING = true
 > NONE, BLOOMFILTER => NONE, REPLICATION_SCOPE
 => 0, VERSIONS => 3, COMPRESSION => NONE, MIN
 _VERSIONS => 0, TTL => 2147483647, KEEP_DELETED
 _CELLS => false, BLOCKSIZE => 65536, IN_MEMORY
 => false, ENCODE_ON_DISK => true, BLOCKCACHE =>
  true}, {NAME => grade, DATA_BLOCK_ENCODING =>
 NONE, BLOOMFILTER => NONE, REPLICATION_SCOPE =>
  0, VERSIONS => 3, COMPRESSION => NONE, MIN_V
 ERSIONS => 0, TTL => 2147483647, KEEP_DELETED_C
 ELLS => false, BLOCKSIZE => 65536, IN_MEMORY =>
  false, ENCODE_ON_DISK => true, BLOCKCACHE => 
 true}, {NAME => name, DATA_BLOCK_ENCODING => NO
 NE, BLOOMFILTER => NONE, REPLICATION_SCOPE => 0
 , VERSIONS => 3, COMPRESSION => NONE, MIN_VERS
 IONS => 0, TTL => 2147483647, KEEP_DELETED_CELL
 S => false, BLOCKSIZE => 65536, IN_MEMORY => f
 alse, ENCODE_ON_DISK => true, BLOCKCACHE => tru
 e}

  

 

    4)插入数据和查看数据

   put ‘表名‘,‘行键名‘,‘列名‘,‘value‘,‘列名2‘,‘value2‘,‘family:列名1‘,‘value3‘.......

put student,wish,name:,wish

    查询数据:

   get ‘表名‘,‘行名‘

get student,wish

 

,

 

  插入更多数据

hbase(main):004:0> put student,wish,course:English,100


hbase(main):005:0> put student,wish,course:Chinese,60


hbase(main):006:0> put student,rain,course:Chinese,100


hbase(main):007:0> put student,rain,course:English,200

 

  查看表中数据: scan ‘student‘

,

 

  其他get例子:

get student,wish,course

get student,wish,[‘course‘]

get student,wish,[‘course‘,‘name‘]

 

 

  5)删除数据 

delete student,wish,course:Math

 

  6)删除表

    需停止表的可用性,再删除表   

disable studentdrop student

 

  7) 统计行数

  

count student

 

 

 

Hbase学习笔记(安装和基础知识及操作),,

Hbase学习笔记(安装和基础知识及操作)


推荐阅读
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • 毕设做到后半部分,需要实现将用户在一段时间(比如1天)内产生的新数据导入HDFS的功能,这样数据仓库中的数据才能和数据库中的数据同步在新建了一个PyDev项目后,需要如下操作(拣最 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 在Hive中合理配置Map和Reduce任务的数量对于优化不同场景下的性能至关重要。本文探讨了如何控制Hive任务中的Map数量,分析了当输入数据超过128MB时是否会自动拆分,以及Map数量是否越多越好的问题。通过实际案例和实验数据,本文提供了具体的配置建议,帮助用户在不同场景下实现最佳性能。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出, ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 不会搭建大数据平台,我被老板优化了...
    不会,搭建,大数,据,平台,我 ... [详细]
  • ftp和文件服务器,ftp和文件服务器的区别
    ftp和文件服务器的区别内容精选换一换obsftp工具于2021年2月9日正式下线,下线后OBS不再对此工具提供维护和客户支持服务,给您带来不便敬请谅解 ... [详细]
author-avatar
平凡小迪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有