快捷搜索:  手机  明星

hbase的集群架构(HBase集群部署与基础命令)

hbase的集群架构(HBase集群部署与基础命令)将 user 表中 rowkey 为 rk1 的 base_info 列族下的 name 修改为 xiaoliaoscan 'user' {FILTER =>"PrefixFilter('rk')"}更新数据更新操作同插入操作一模一样,只不过有数据就更新,没数据就添加source /etc/profile将 hbase-1.3.1 目录分发到其他 2 个节点scp -r hbase-1.3.1 linux3:/opt/lagou/servers/ scp -r hbase-1.3.1 linux4:/opt/lagou/servers/启动集群#启动命令 start-hbase.sh #停止命令 stop-hbase.sh启动完成后,可以访问地址:HMaster 的 ip:16010HBase shell 基本操作进入 HBase 客

hbase 集群部署

安装 HBase 之前需要先搭建好 hadoop 集群和 zookeeper 集群。

  1. 下载安装包 http://archive.apache.org/dist/hbase/1.3.1/
  1. 解压到安装目录

tar -zxvf hbase-1.3.1-bin.tar.gz

我解压到了/opt/lagou/servers/hbase-1.3.1 目录。

  1. 修改配置文件
  • 把 hadoop 中配置的 core-site.xml、hdfs-site.xml 拷贝到 hbase 下的 conf 目录下

ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /opt/lagou/servers/hbase-1.3.1/conf/core-site.xml ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /opt/lagou/servers/hbase-1.3.1/conf/hdfs-site.xml

  • 修改 hbase-env.sh

#添加java环境变量 export JAVA_HOME=/opt/module/jdk1.8.0_231 #指定使用外部的zk集群 export HBASE_MANAGES_zk=FALSE

  • 修改 hbase-site.xml

<configuration> <!-- 指定hbase在HDFS上存储的路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://linux2:9000/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zk的地址,多个用“ ”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>linux2:2181 linux3:2181 linux4:2181</value> </property> </configuration>

  • 修改 regionservers

linux2 linux3 linux4

  • 在 hbase 的 conf 目录下创建文件 backup-masters

内容如下:

linux2

  • 在每个节点上配置环境变量,vi /etc/profile

export HBASE_HOME=/opt/lagou/servers/hbase-1.3.1 export PATH=$PATH:$HBASE_HOME/bin

执行命令使配置生效

source /etc/profile

  • 将 hbase-1.3.1 目录分发到其他 2 个节点

scp -r hbase-1.3.1 linux3:/opt/lagou/servers/ scp -r hbase-1.3.1 linux4:/opt/lagou/servers/

  1. 启动集群

#启动命令 start-hbase.sh #停止命令 stop-hbase.sh

  1. 启动完成后,可以访问地址:
  2. HMaster 的 ip:16010

hbase的集群架构(HBase集群部署与基础命令)(1)

HBase shell 基本操作
  1. 进入 HBase 客户端命令操作界面

hbase shell

shell 命令行里如果输错了命令,删除需要使用 Ctrl Backspace

  1. 查看帮助命令

help

  1. 查看当前数据库里有哪些表

list

  1. 创建一个 user 表,包含 user_info、extra_info 两个列族

create 'user' 'base_info' 'extra_info' #或者指定版本 create 'user2' {NAME => 'base_info' VERSIONS => '3'} {NAME => 'extra_info' VERSIONS => '3'}

  1. 添加数据
  • 向 user 表中 row key 为 rk1,列族 base_info 的 name 列上插入值’xiaowang’

put 'user' 'rk1' 'base_info:name' 'xiaowang'

  • 向 user 表中 row key 为 rk1,列族为 base_info 的 age 列插入值 30

put 'user' 'rk1' 'base_info:age' 30

  • 向 user 表中 row key 为 rk1,列族为 extra_info 的 address 列插入值’shanghai’

put 'user' 'rk1' 'extra_info:address' 'shanghai'

  1. 查询数据
  • 查询 user 表中 row key 为 rk1 的所有信息

get 'user' 'rk1'

  • 查询 user 表中 row key 为 rk1 的 base_info 列族的所有信息

get 'user' 'rk1' 'base_info'

  • 查询 user 表中指定列族,指定字段的值

get 'user' 'rk1' 'base_info:name' 'base_info:age'

  • 查询 user 表中多个列族的信息

get 'user' 'rk1' 'base_info' 'extra_info'

  • 根据 rowkey 和列值进行查询

get 'user' 'rk1' {FILTER => "ValueFilter (= 'binary:shanghai')"}

  • 根据 row key 和列名进行模糊查询

查询出列名:address

get 'user' 'rk1' {FILTER => "QualifierFilter (= 'substring:add')"}

  • 查询表中所有数据

scan 'user'

  • 查询表中列族为 base_info 的信息

scan 'user' {COLUMNS => 'base_info'} # Scan时可以设置是否开启Raw模式 开启Raw模式会返回包括已添加删除标记但是未实际删除的数据 # VERSIONS指定查询的最大版本数 scan 'user' {COLUMNS => 'base_info' RAW => true VERSIONS=> 3}

  • 查询 user 表中列族为 base_info、extra_info,且列名中含 add 字符的数据

scan 'user' {COLUMNS => ['base_info' 'extra_info'] FILTER => "(QualifierFilter(= 'substring:add'))"}

  • rowkey 的范围值查询

scan 'user' {COLUMNS => 'base_info' STARTROW => 'rk1' ENDROW => 'rk3'}

  • 指定 rowkey 模糊查询

查询 user 表中 row key 以 rk 开头的数据

scan 'user' {FILTER =>"PrefixFilter('rk')"}

  1. 更新数据

更新操作同插入操作一模一样,只不过有数据就更新,没数据就添加

  • 更新数据值

将 user 表中 rowkey 为 rk1 的 base_info 列族下的 name 修改为 xiaoliao

put 'user' 'rk1' 'base_info:name' 'xiaoliao'

  1. 删除数据和表
  • 指定 rowkey 以及列名进行删除

delete 'user' 'rk2' 'base_info:name'

  • 指定 rowkey 以及列名、时间戳进行删除

delete 'user' 'rk2' 'base_info:age' 1662245345710

  • 删除列族

alter 'user' 'delete' => 'extra_info'

  • 清空表数据

truncate 'user'

  • 删除表

#先disable,再drop,否则会报错 disable 'user' drop 'user'

猜您喜欢: