吴超老师课程--Hbase介绍和伪分布式安装
1.HBase(NoSQL)的数据模型
1.1 表(table),是存储管理数据的。
1.2 行键(row key),类似于MySQL中的主键。
行键是HBase表天然自带的。
1.3 列族(column family),列的集合。
HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。
HBase表中的数据,每个列族单独一个文件。
1.4 时间戳(timestamp),列(也称作标签、修饰符)的一个属性。
行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。
如果不指定时间戳或者版本,默认取最新的数据。
1.5 存储的数据都是字节数组。
1.6 表中的数据是按照行键的顺序物理存储的。
注:一行(行健)代表一条记录
一列(列族)代表一个文件
一个列族可以有一个列,或者多个列,当含有多个列时,每一个列就是一个标签
2.HBase的物理模型
2.1 HBase是适合海量数据(如20PB)的秒级简单查询的数据库。 (注:只支持简单查询)
2.2 HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。
许多个region存储在region server(单独的物理机器)中的。 (注:把数据分散开,存储在不同的机器上)
这样,对表的操作转化为对多台region server的并行查询。 (注:并行存储在region server上)
3.HBase的体系结构
3.1 HBase是主从式结构,HMaster、HRegionServer
3.2 Zookeeper
(1)保证任何时候,集群中只有一个running master
(2)存贮所有Region 的寻址入口
(3)实时监控Region Server 的状态,将Region server 的上线和下线信息,实时通知给Master
(4)存储Hbase 的schema,包括有哪些table,每个table 有哪些column family
3.3 Master
(1)可以启动多个HMaster,
(2)通过Zookeeper的Master Election机制保证总有一个Master运行
(3)为Region server 分配region
(4)负责region server 的负载均衡
(5)发现失效的region server 并重新分配其上的region
3.4 Region Server
(1)维护Master分配给它的region,处理对这些region 的IO请求
(2)负责切分在运行过程中变得过大的region
总结:
(1)可以看出,client 访问hbase 上数据的过程并不需要master 参与,
(2)寻址访问zookeeper 和region server,
(3)数据读写访问regioneserver。
(4)HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。
HBase中有两张特殊的Table,-ROOT-和.META.
.META.:记录了用户表的Region信息,.META.可以有多个regoin
-ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region
Zookeeper中记录了-ROOT-表的location
总结:-ROOT-表包含region的总表,.META.表包含许多region表,
Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问
4.HBase伪分布安装
(1)hadoop.1.1.2
(2)hbase-0.94.2-security.tar.gz
(3)JDK6
前提条件:本机或集群环境下hadoop.1.1.2已经安装成功
4.1 解压缩、重命名、设置环境变量
(1)把hbase-0.94.2-security.tar.gz复制到/usr/local
解压hbase-0.94.2-security.tar.gz与重命名
#cd /usr/local
#tar -zxvf hbase-0.94.2-security.tar.gz
#mv hbase-0.94.2-security hbase
(2)修改/etc/profile文件。
#vi /etc/profile
增加 export HBASE_HOME=/home/hbase
修改 export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin
保存退出#source /etc/profile
4.2 修改$HBASE_HOME/conf/hbase-env.sh,修改内容如下:
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=true
保存后退出
4.2 修改$HBASE_HOME/conf/hbase-site.xml,修改内容如下:
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
4.3 (可选)文件regionservers的内容为hadoop
4.4 启动hbase,执行命令start-hbase.sh
******启动hbase之前,确保hadoop是运行正常的,并且可以写入文件*******
4.5 验证:(1)执行jps,发现新增加了3个java进程,分别是HMaster、HRegionServer、HQuorumPeer
(2)使用浏览器访问http://hadoop:60010
吴超老师课程--Hbase介绍和伪分布式安装的更多相关文章
- 吴超老师课程---ZooKeeper介绍和集群安装
1.ZooKeeper 1.1 zk可以用来保证数据在zk集群之间的数据的事务性一致.2.如何搭建ZooKeeper服务器集群 2.1 zk服务器集群规模不小于3个节点,要求各服务器之间系 ...
- 吴超老师课程--HBASE的集群安装
1.hbase的机群搭建过程(在原来的hadoop上的hbase伪分布基础上进行搭建)1.1 集群结构,主节点(hmaster)是hadoop,从节点(region server)是hadoop1和h ...
- 吴超老师课程--Hbase Shell
hbase提供了一个shell的终端给用户交互 名称 命令表达式 创建表 create '表名称', '列族名称1','列族名称2','列族名称N' 添加记录 put '表名称', '行名称', '列 ...
- 吴超老师课程--HBASE的Java_API
public static void main(String[] args) throws IOException { String tableName="hbase_tb"; S ...
- 吴超老师课程--HBASE的查询手机项目
查询1.按RowKey查询2.按手机号码查询3.按手机号码的区域查询 //查询手机13450456688的所有上网记录 public static void scan(String tableName ...
- HBase基础和伪分布式安装配置
一.HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的. 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 ...
- 吴超老师课程--Flume的安装和介绍
常用的分布式日志收集系统
- 吴超老师课程--Sqoop的安装和介绍
SQOOP是用于对数据进行导入导出的. (1)把MySQL.Oracle等数据库中的数据导入到HDFS.Hive.HBase中 (2)把HDFS.Hive.HBase中的数据导出到MySQ ...
- 吴超老师课程---Hadoop的伪分布安装
1.1 设置ip地址 执行命令 service network restart 验证: ifconfig1.2 关闭防火墙 执行命令 service ip ...
随机推荐
- (译)Getting Started——1.2.1 Defining the Concept(确定理念)
每个出色的应用都是由理念开始的.在开发应用时,你不需要把理念完善和完成后再进行开发.但是你确实需要确定你要做什么,做完后的效果如何. 为了定义理念,问自己以下的问题: 应用的受众是哪些人?应用的内容和 ...
- NGUI3.7.4实现循环拖动
前段时间下了NGUI新版本3.7.4,看到例子Endless Scroll Views,实现了循环拖动,可能会用到,先把实现步骤贴出来跟大家分享一下. 1.首先新建一个背景. 2.添加所需控件,类似滑 ...
- Unix系统编程()open,read,write和lseek的综合练习
需求:程序的第一个命令行参数为将要打开的文件名称,余下的参数则指定了文件上执行的输入输出操作.每个表示操作的参数都以一个字母开头,紧跟以相关值(中间无空格分隔). soffet:从文件开始检索到off ...
- VM虚拟机不能上网的问题解决
VM虚拟机不能上网的问题解决 说在前面的话:很多网友看了我的文章后,虚拟机还是不能上网,就联系我帮忙,结果帮他们给弄好后,都说怪自己太粗心,没有仔细看文章.我不是怕网友麻烦我,我是真诚的希望各位要首先 ...
- SPI_FLASH时序描述及驱动编程
推荐 分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前面 前面文章讲述过关于 ...
- [转]JVM内存溢出的几种方式比较
转载自:https://github.com/pzxwhc/MineKnowContainer/issues/25 包括: 1. 栈溢出(StackOverflowError) 2. 堆溢出(OutO ...
- calico性能测试
硬件环境: 三台虚拟机: 192.168.99.129 master(kube-apiserver.kube-controller-manager.kube-proxy.kube-scheduler. ...
- oralce函数
1.trunc函数处理数字和日期TRUNC(NUMBER[,DECIMAL]) 数字格式TRUNC(DATE[,FOMAT]) 日期格式2.round函数(四舍五入)ROUND(NUMBER[,DEC ...
- iOS -转载-开发之个人开发者账号转公司开发者账号
ps : 个人开发者账号升级公司开发者账号的话需要账号开启双重认证,没有开启的话需要开启(不然走到可以升级的那步的话,点击update升级会提示为了安全起见需要账号开启双双重认证,反正我走到upd ...
- c/c++中内存对齐完全理解
一,什么是内存对齐?内存对齐用来做什么? 所谓内存对齐,是为了让内存存取更有效率而采用的一种编译阶段优化内存存取的手段. 比如对于int x;(这里假设sizeof(int)==4),因为cpu对内存 ...