博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase讲解及部署
阅读量:5758 次
发布时间:2019-06-18

本文共 2552 字,大约阅读时间需要 8 分钟。

HBase 是一个 NoSQL 数据库

什么是 NoSQL 数据库?
            基于 Key-value  来保存数据
            NoSQL 数据库不支持事物
        
常见的 NoSQL 数据库:
    HBase:  基于 HDFS ,面向列的数据库
                表     ---->  目录
                数据 ---->  文件
                
        Redis:  基于内存的一个 NoSQL 数据库, 支持持久化(RDB,AOF)
            前身: MemCached    不支持持久化
                
        MongoDB: 文档型的 NoSQL 数据库(BSON文档,JSON的二进制)
        
        Cassandra:  面向列的 NoSQL 数据库
HBase 的表结构

article(表)

rowkey
内容
作者
评论
标题
正文
用户
内容
文章1
先有鸡还是先有蛋
……
某人
喷手
鸡都不造你是肿么造的
文章……
……
…… …… …… ……

体系结构

spacer.gif

2.png

HBase 环境部署:

            本地模式   ---1台主机: 不需要 HDFS ,直接把数据存在操作系统上

                      1. 安装 JAVA 环境,修改环境变量

                      2. 安装 HBase

            伪分布模式---1台主机: 需要HDFS 支持,数据直接存在 HDFS 上

                      1. 安装 JAVA 环境,修改环境变量

                      2. 部署 HDFS 伪分布式

                      3. 部署 HBase 伪分布式

            全分布模式---3台主机: 需要HDFS 支持,数据直接存在 HDFS 上

                      1. 安装 JAVA 环境,修改环境变量

                      2. 部署 HDFS 全分布式

                      3. 部署 HBase 全分布式

            HA 全分布模式---3台主机

        环境部署前期准备:

            设置环境变量  vi ~/.bash_profile

                HBASE_HOME=/root/training/hbase-1.3.1
                export HBASE_HOME
                PATH=$HBASE_HOME/bin:$PATH
                export PATH

        本地模式: 

        hbase-env.sh
                28 export JAVA_HOME=/root/training/jdk1.8.0_144
                
        hbase-site.xml
                <property>
                   <name>hbase.rootdir</name>
                   <value>file:///root/training/hbase-1.3.1/data</value>
                </property>

         启动 HBase:  start-hbase.sh

伪分布模式

        hbase-env.sh
                129 export HBASE_MANAGES_ZK=true
                
        hbase-site.xml
                <property>
                   <name>hbase.rootdir</name>
                   <value>hdfs://192.168.157.11:9000/hbase</value>
                </property>
                <property>
                   <name>hbase.cluster.distributed</name>
                   <value>true</value>
                </property>
                <property>
                   <name>hbase.zookeeper.quorum</name>
                   <value>192.168.157.11</value>
                </property>
                <property>
                   <name>dfs.replication</name>
                   <value>1</value>
                </property>            
        regionservers
                192.168.157.11

          启动 HBase:  start-hbase.sh       

全分布模式

        hbase-site.xml
            <property>
               <name>hbase.rootdir</name>
               <value>hdfs://192.168.157.12:9000/hbase</value>
            </property>
            <property>
               <name>hbase.cluster.distributed</name>
               <value>true</value>
            </property>
            <property>
               <name>hbase.zookeeper.quorum</name>
               <value>192.168.157.12</value>
            </property>
            <property>
               <name>dfs.replication</name>
               <value>2</value>
            </property>            
            <property>
               <name>hbase.master.maxclockskew</name>
               <value>180000</value>
            </property>                    
                
        regionservers
                192.168.157.13
                192.168.157.14
                
        scp -r hbase-1.3.1/ root@bigdata13:/root/training
        scp -r hbase-1.3.1/ root@bigdata14:/root/training

         启动 HBase:  start-hbase.sh

HBase的HA

        不需要额外配置,只用在其中一个从节点上单点启动Hmaster

         启动 HBase:  start-hbase.sh

        bigdata13:hbase-daemon.sh start master

HBase Web Console网页端口:16010

HBase 命令行操作:

         进入命令行:hbase  shell

            查看:

                    查看表:list

                    查询数据:

                             scan   相当于  select   *  from   表名

                            get    相当于  select  *   from  表名  where  rowkey=?

                   插入数据:

                            put   '表', ' 行',  '列族:列名',   '值'

                            put   'students',  'stu1',  'info:name', 'Tom'

                  清空表中的数据:

                            truncate  '表名'   ---------> 其实质就是先删除表,然后再创建

                            truncate   'students'

                  删除表:

                            disable  '表名'

                            drop   '表名'

本文转自 菜鸟的征程 51CTO博客,原文链接:http://blog.51cto.com/songqinglong/2055818

转载地址:http://vdtkx.baihongyu.com/

你可能感兴趣的文章
从JDK源码看Writer
查看>>
Express 结合 Webpack 实现HMRwi
查看>>
基于protobuf的RPC实现
查看>>
JAVA的对象复制
查看>>
我的友情链接
查看>>
HAProxy负载均衡原理及企业级实例部署haproxy集群
查看>>
开源中国动弹客户端实践(三)
查看>>
Win 8创造颠覆性体验:预览版关键更新
查看>>
vim在多文件中复制粘贴内容
查看>>
Android ContentObserver
查看>>
文章“关于架构优化和设计,架构师必须知道的事情”
查看>>
疯狂java学习笔记1002---非静态内部类
查看>>
ISA2006实战系列之一:实战ISA三种客户端部署方案(上)
查看>>
TCP服务器
查看>>
U-Mail邮件系统与泛微OA系统一体化操作指南
查看>>
AC旁挂三层交换机管理ap,二层接入ap心得
查看>>
JS中比较数字大小
查看>>
springcloud 学习-eureka搭建-为eureka添加认证
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>