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 treemap_Java TreeMap firstEntry()方法及示例

java treemapTreeMap类的firstEntry()方法 (TreeMap Class firstEntry() method) firstEntry() method is available in java.util package. firstEntry()方法在java.util包中可用。 firstEntry() method is used to retrieve the key-value pairs linked with the lowest valu…

linux常用网络命令ping和arping

linux常用网络命令ping和arping ping 向目标主机发送icmp请求包 常用来测试当前主机与目标主机网络连接状况 常见选项 -c 设置发包的个数 -s 设置发的包的块大小,最大不超过65507 -W 设置接收回应超时时间 -i …

java printwriter实例_PrintWriter做过滤流+FileWriter案例分析

package com.mstf.ui;import java.io.*;public class TestWriter{public static void main(String args[]){//PrintWriter做过滤流FileWriter//doFilter1();//2、PrintWriter做过滤流OutputStreamWriter//doFilter2();//3、PrintWriter可以作为节点流//doNode();//4、PrintWrit…

treemap比较器_Java TreeMap比较器()方法与示例

treemap比较器TreeMap类的compare()方法 (TreeMap Class comparator() method) comparator() method is available in java.util package. 比较器()方法在java.util包中可用。 comparator() method is used to return the key element in this TreeMap based on the Comparator…

洛谷P1204 [USACO1.2]挤牛奶Milking Cows 前缀和

这题数据比较水 暴搜都能够过去 1 #include <cstdio>2 #include <cmath>3 #include <cstdlib>4 #include <algorithm>5 #include <string>6 #include <iostream>7 #include <iomanip>8 #include <cstring>9 using namespace s…

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

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

java 方法 示例_Java扫描仪具有示例的NextNextInt()方法

java 方法 示例扫描器类的hasNextInt()方法 (Scanner Class hasNextInt() method) Syntax: 句法&#xff1a; public boolean hasNextInt();public boolean hasNextInt(int rad);hasNextInt() method is available in java.util package. hasNextInt()方法在java.util包中可用…

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

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

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

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

Java PriorityQueue poll()方法与示例

PriorityQueue类poll()方法 (PriorityQueue Class poll() method) poll() method is available in java.util package. poll()方法在java.util包中可用。 poll() method is used to return the first element with removing an element from this PriorityQueue. poll()方法用于…

scrapy抓取淘宝女郎

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

map在Java集合_java集合之Map

MapMap用于保存具有映射关系的数据。Map中key不允许重复&#xff0c;value可以重复&#xff0c;key和value之间存在单向一对一关系HashMap和Hashtable区别1 Hashtable线程安全、HashMap线程不安全&#xff0c;所以HashMap性能高一点2 Hashtable不允许用null做key和value&#x…

Java OutputStream close()方法与示例

OutputStream类close()方法 (OutputStream Class close() method) close() method is available in java.io package. close()方法在java.io包中可用。 close() method is used to close this OutputStream stream and free all system resources linked with this stream and …

怎样在fastboot 里面加入新的命令

fastboot 是android 默认的一种debug 方法。它的优点是在进入linux kernel 之前就可以操作。默认fastboot 支持的命令&#xff1a; usage: fastboot [ <option> ] <command>commands: update <filename> reflash device …

java编写字符串连接程序注释_Java 注解自动化处理对应关系实现注释代码化

public class EsQuery { private static int DEFAULT_SIZE 100; private final Map termFilter;private final Map rangeFilter;private final Map matchFilter;private int size;private String orderBy null;private String order null; // query 查询语法, 是否需要 filtere…

getlanguage_Java语言环境getLanguage()方法与示例

getlanguage区域设置类getLanguage()方法 (Locale Class getLanguage() method) getLanguage() method is available in java.util package. getLanguage()方法在java.util包中可用。 getLanguage() method is used to retrieve this Locale language code and the language co…

[转]Anaconda

安装 Anaconda Anaconda 可用于 Windows、Mac OS X 和 Linux。可以在 https://www.continuum.io/down... 上找到安装程序和安装说明。 如果计算机上已经安装了 Python&#xff0c;这不会有任何影响。实际上&#xff0c;脚本和程序使用的默认 Python 是 Anaconda 附带的 Python。…

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

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

filterwriter_Java FilterWriter flush()方法与示例

filterwriterFilterWriter类flush()方法 (FilterWriter Class flush() method) flush() method is available in java.io package. flush()方法在java.io包中可用。 flush() method is used to flush out the string from this FilterWriter stream. flush()方法用于从此Filter…

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

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