hbase 伪分布安装 java_HBase基础和伪分布式安装配置

一、HBase(NoSQL)的数据模型

1.1 表(table),是存储管理数据的。

1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定

1.3 列族(column family),列的集合。

一张表中有多个行健,一个行健读取出来的是一条记录,列族和MySQL中的列差不多,但是它是列的集合

HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。

HBase表中的数据存储在本地磁盘上的时候,每个列族单独一个作为文件存储。

528cccd8c672a78b35020498883a0c5a.png

上图表示HBase中表的一行

和关系型数据库不同的是

关系型数据库一行中每一个列的值只能是一个,如:

UserIdUserName

1JChubby

而在NoSql中,一行里面某一个列的值可能是多个的,如上图,或者:

UserIdUserName

1JChubby

Looky

其中省略了timestamp时间戳这一列,但是在NoSql中读取这一行数据的出来时,数据应该是和关系型数据库读出来的是差不多的

时间戳列起到了标识列数据版本的作用,当没有指定时间戳的时候默认取的是最新的列数据,具体请参照上图

1.4 存储的数据都是字节数组。

二、HBase的物理模型

2.1 HBase是适合海量数据(如20PB)的秒级简单查询的数据库。

2.2 HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。

如:在一个有1W行健的表中,每2K个行健拆分成一个region分别存储在不同的节点中,每个region记录着行健的起始位置和最终位置[startkey,endkey]

许多个region存储在region server(单独的物理机器)中的。

这样,对表的操作转化为对多台region server的并行查询。

HBase中有两种特殊的表,分别是-ROOT和.META

.META中记录着各个region的起止行健,当.META中的记录很大时,又会按照相同的规则拆分成不同的region记录中-ROOT表中

f18a5b08cc1cf561b1e0cf98f015bb55.png

如上图所示,当要查询数据时,先找-ROOT表中记录的region信息,找到对应的.META表中的region,在到实际的节点上的region查询数据

三、HBase的体系结构

3.1 HBase是主从式结构,HMaster、HRegionServer

四、HBase伪分布安装

HBase的安装是是建立在hadoop和zookeeper集群之上的

安装时确保hadoop和zookeeper集群已安装成功并启动

4.1 解压缩、重命名、设置环境变量

把hbase-0.94.2-security.tar.gz复制到/home/hadoop

解压hbase-0.94.2-security.tar.gz与重命名

#cd /home/hadoop

#tar -zxvf hbase-0.94.2-security.tar.gz

#mv hbase-0.94.2-security hbase

修改/etc/profile文件。

#vi /etc/profile

增加

export HBASE_HOME=/home/hadoop/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/java/jdk1.6.0_45

export HBASE_MANAGES_ZK=true

第一个配置java环境变量

第二个配置在本机器上的HBase可以自己启动zookeeper和使用

4.2 修改$HBASE_HOME/conf/hbase-site.xml,修改内容如下:

hbase.rootdir

hdfs://master:9000/hbase

hbase.cluster.distributed

true

hbase.zookeeper.quorum

master

dfs.replication

1

hbase.rootdir配置在hdfs文件系统上hbase存储的路径

hbase.cluster.distributed配置是否是分布式的

hbase.zookeeper.quorum配置zookeeper在哪个节点上

dfs.replication配置副本个数

注意:hbase.rootdir的主机和端口号与hadoop的配置文件core-site.xml的fs.default.name的主机和端口号一致

4.3 (可选)文件regionservers的内容为master,该文件记录regionserver的各个节点的主机名,因为是伪分布式安装,所只写一个,localhost或者主机名都可以

4.4 启动hbase,在bin目录下执行命令start-hbase.sh

******启动hbase之前,确保hadoop是运行正常的,并且可以写入文件*******

4.5 验证是否安装成功:

(1)执行jps,发现新增加了3个java进程,分别是HMaster、HRegionServer、HQuorumPeer

(2)使用浏览器访问http://master:60010,可以进入和hadoop类似的web管理页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java script创建对象_JavaScript七种非常经典的创建对象方式

JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产。接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点。一、工厂模式可以无数…

axis2开发webservice之编写Axis2模块(Module)

axis2中的模块化开发。能够让开发者自由的加入自己所需的模块。提高开发效率,减少开发的难度。 Axis2能够通过模块(Module)进行扩展。Axis2模块至少须要有两个类,这两个类分别实现了Module和Handler接口。开发和使用一个Axis2模块…

java 看书浏览器官_JAVA读取文件流,设置浏览器下载或直接预览操作

最近项目需要在浏览器中通过url预览图片。但发现浏览器始终默认下载,而不是预览。研究了一下,发现了问题:// 设置response的header,注意这句,如果开启,默认浏览器会进行下载操作,如果注释掉&…

scrapy抓取淘宝女郎

scrapy抓取淘宝女郎 准备工作 首先在淘宝女郎的首页这里查看,当然想要爬取更多的话,当然这里要查看翻页的url,不过这操蛋的地方就是这里的翻页是使用javascript加载的,这个就有点尴尬了,找了好久没有找到,这里如果有朋…

win10 iot core java_Windows 10 IoT Core 正式版初体验

今天收到Windows 10 IoT Core Team邮件,Windows 10 IoT Core正式发布。以下记录了今天在Raspberry Pi 2上的体验过程:准备工作一台运行着正版Windows 10且版本不小于10240的个人PCVisual Studio 2015 版本不小于14.0.23107.0 D14Rel Install Visual Stud…

VUE2 第五天学习--过渡效果

阅读目录 1.理解VUE---过渡效果回到顶部1.理解VUE---过渡效果 1. 过渡的-css-类名会有4个(css) 类名在 enter/leave 在过渡中切换。1. v-enter: 进入过渡的开始状态。在元素被插入时生效,在下一个帧移除。2. v-enter-active: 进入过渡的结束状态。在元素被插入时生效…

国家可持续发展议程创新示范区创建工作推进会在北京召开

2019独角兽企业重金招聘Python工程师标准>>> 为推进地方申报国家可持续发展议程创新示范区相关工作,根据国家可持续发展议程创新示范区创建工作的进展及需求,2017年4月23日—25日,科技部社会发展科技司、中国21世纪议程管理中心在…

BlockingQueue详解

前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所…

[QGLViewer]3D场景鼠标点击位置

重载鼠标事件: void AxMapControl::mousePressEvent(QMouseEvent* e) {switch(currentTool){case AX_DRAW_DIRECTION:{if (e->button() Qt::LeftButton) {QPoint screenPte->pos();qglviewer::Vec orig1, dir1;camera()->convertClickToLine(screenPt, or…

can收发器 rx_CANOpen系列教程03 _CAN收发器功能、原理及作用

1写在前面前面文章是从大方向介绍了CAN网络,让大家对CAN网络有一定的认识。本文将范围缩小,讲述整个CAN网络其中的一个CAN收发器。如下图标记出来的部分:本文结合众多初学者容易产生的疑问来讲述CAN收发器相关的知识点,大概有如下…

centos php fpm 停止_如何关闭php-fpm进程?

因为你是编译的,可以在源码中复制php-fpm的init文件到系统中:cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm然后就可以使用以下命令启动、停止、重启和重新加载php-fpm了:service php-fpm startservice php-fpm restartservice php-fpm…

Mongodb聚合函数

插入 测试数据 for(var j1;j<3;j){ for(var i1;i<3;i){ var person{Name:"jack"i,Age:i,Address:["henan","wuhan"],Course:[{Name:"shuxue",Score:i},{Name:"wuli",Score:i}]}db.DemoTest.Person.insert(pers…

php rename函数_php rename函数怎么用

PHP rename()函数用于重命名文件或目录&#xff0c;语法“rename(文件旧名称,新名称,句柄环境)”&#xff0c;使用用户指定的新名称更改文件或目录的旧名称&#xff0c;并且可以根据需要在目录之间移动&#xff1b;成功时返回True&#xff0c;失败时返回False。php rename()函数…

Spring Data Redis实战之提供RedisTemplate

为什么80%的码农都做不了架构师&#xff1f;>>> 参考&#xff1a; http://www.cnblogs.com/edwinchen/p/3816938.html 本项目创建的是Maven项目 一、pom.xml引入dependencies <dependency><groupId>org.springframework.data</groupId><artif…

php映射,PHP实现路由映射到指定控制器

自定义路由的功能&#xff0c;指定到pathinfo的url上,再次升级之前的脚本SimpleLoader.phpclass SimpleLoader{public static function run($rulesarray()){header("content-type:text/html;charsetutf-8");self::register();self::commandLine();self::router($rule…

Commonjs规范及Node模块实现

前面的话 Node在实现中并非完全按照CommonJS规范实现&#xff0c;而是对模块规范进行了一定的取舍&#xff0c;同时也增加了少许自身需要的特性。本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的&#xff0c;在javascript中的顶层对象是window&#xff0c;而在…

thinkphp3 php jwt,ThinkPHP5 使用 JWT 进行加密

- 使用 Composer安装此扩展- 代码示例<?php /*** [InterCommon-接口公用]* Author RainCyan* DateTime 2019-08-12T16:38:080800*/namespace app\hladmin\controller;use think\Controller;use \Firebase\JWT\JWT;class InterCommonController extends Controller {private…

JavaWeb网上图书商城完整项目--day02-14.登录功能的login页面处理

1、现在注册成功之后&#xff0c;我们来到登录页面&#xff0c;登录页面在于 在登录页面。我们也需要向注册页面一样对登录的用户名、密码 验证码等在jsp页面中进行校验&#xff0c;校验我们单独放置一个login.js文件中进行处理&#xff0c;然后login.jsp加载该js文件 我们来看…

php多线程是什么意思,多线程是什么意思

线程是操作系统能够进行运算调度的最小单位&#xff0c;它被包含在进程之中&#xff0c;是进程中的实际运作单位&#xff0c;而多线程就是指从软件或者硬件上实现多个线程并发执行的技术&#xff0c;具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程&#…

Activity中与ListActivity中使用listview区别

一.Activity中与ListActivity中使用listview区别&#xff08;本身没多大区别&#xff0c;只是ListActivity在listview的显示上做了一些优化&#xff09;Activity中使用Listview步骤&#xff1a;1.xml布局中,ListView标签id可以任意取值如&#xff1a;<ListView andro…