HBASE基础

1、NoSQL 非关系型数据库

2、hbase是面向列存储结构,即类似于hash map

3、hbase是以hdfs作为基础存储

4、官网http://hbase.apache.org/

5、hbase的逻辑结构是由行与列族构成的,其中的行是由rowkey(行键唯一确定),列族是由多个列构成的

6、hbase中的数据都是以字节的形式存储

7、伪分布式安装Hbase:

(1)将hbase-1.2.0-cdh5.14.2.tar.gz上传到/opt/software

(2)解压:tar -zxf hbase-1.2.0-cdh5.14.2.tar.gz -C /opt/install

(3)创建软连接:ln -s /opt/install/hbase-1.2.0-cdh5.14.2 /opt/install/hbase

(4)修改/etc/profile:

export HBASE_HOME=/opt/install/hbase

export PATH=HBASE_HOME/bin:PATH

(5)生效/etc/profile:source /etc/profile

(6)修改conf/hbase-env.sh:【可注释第46,47行从而不再看到warning】

export JAVA_HOME=/opt/install/jdk 大概在第27行

export HBASE_MANAGES_ZK=false 大概在第129行

(7)修改hbase-site.xml:

<!--设置hbase的工作目录-->

<property>

<name>hbase.rootdir</name>

<value>hdfs://hadoop101:9000/hbase/data</value>

</property>

<!--开启hbase的集群工作模式-->

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<!--设置zookeeper节点-->

<property>

<name>hbase.zookeeper.quorum</name>

<value>hadoop101</value>

</property>

<!--设置zookeeper的工作目录-->

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/opt/install/zookeeper/zkData</value>

</property>

(8)修改 regionservers 文件:

hadoop101

(9)启动zookeeper:zkServer.sh start

(10)启动namenode和datanode:

hadoop-daemon.sh start namenode

hadoop-daemon.sh start datanode

(11)启动master:hbase-daemon.sh start master

(12)启动regionserver:hbase-daemon.sh start regionserver

(13)启动成功后,访问HBase管理页面:http://hadoop101:60010

(14)停止regionserver:hbase-daemon.sh stop regionserver

(15)停止master:hbase-daemon.sh stop master

(16)停止namenode和datanode:

hadoop-daemon.sh stop namenode

datanode:hadoop-daemon.sh stop datanode

(17)停止zookeeper:zkServer.sh stop

(18)停机做快照

完全分布式安装Hbase【注意:时间同步】:

(1)-(6)步同上

(7)修改hbase-site.xml:

<property>

<name>hbase.rootdir</name>

<value>hdfs://hadoop102:9000/hbase/data</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/opt/install/zookeeper/zkData</value>

</property>

(8)修改 regionservers 文件:

hadoop102

hadoop103

hadoop104

(9)从102机器上复制hbase目录到103,104机器上

scp -r /opt/install/hbase hadoop103:/opt/install

scp -r /opt/install/hbase hadoop104:/opt/install

(10)从102机器上复制/etc/profile文件复制103,104机器上并生效:source /etc/profile

(11)启动102,103,104机器上的zookeeper:zkServer.sh start

(12)从102机器启动hdfs集群:start-dfs.sh

(13)从102机器启动hbase集群:start-hbase.sh并通过jps检查

(14)启动成功后,访问HBase管理页面:http://hadoop102:60010

(15)从102机器停止hbase集群:stop-hbase.sh

(16)停止hadoop和zookeeper集群服务

(17)停机做快照

在HBASE客户端操作的命令

0、删除字符时要按住ctrl键和backspace键,del键

1、打开客户端:hbase shell

2、退出客户端:exit

3、查看帮助:help

4、查看命令组帮助:help '命令组名称'

5、查看命令帮助:help '命令'

6、查看hbase版本:version

7、查看当前登录用户:whoami

8、查看命名空间:list_namespace

9、创建命名空间:create_namespace 'myschool'

10、创建表:create 'myschool:info','student','course'

11、查看所有表名:list

12、查看表结构:describe 'myschool:info'

13、插入数据:

put 'myschool:info','1001','student:name','tom'

put 'myschool:info','1001','student:sex','male'

put 'myschool:info','1001','student:age','22'

put 'myschool:info','1001','course:chinese','99'

put 'myschool:info','1001','course:math','88'

14、查看指定行数据:get 'myschool:info','1001'

15、查看表数据:scan 'myschool:info'

16、删除数据:delete 'myschool:info','1001','course:chinese'

17、禁用表:disable 'myschool:info',再删除表:drop 'myschool:info'

18、删除命名空间:drop_namespace 'myschool'(命名空间必须是没有表的,否则需要先删除表)

19、导入文件数据到hbase

(1)建命名空间:create_namespace 'retail'

(2)建表:create 'retail:customer','order'

(3)上传数据文件到/root/data,若此目录不存要则需mkdir /root/data

(4)启动yarn:yarn-daemon.sh start resourcemanager;yarn-daemon.sh start nodemanager

(5)导入数据:【注意在linux中执行】

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \

-Dimporttsv.separator="," \

-Dimporttsv.columns="HBASE_ROW_KEY,order:numb,order:date" \

"retail:customer" "file:///root/data/hbase_import_data.csv"

(6)查看数据:scan 'retail:customer'

相关推荐
市场部需要一个软件开发岗位12 分钟前
JAVA开发常见安全问题:纵向越权
java·数据库·安全
海奥华215 分钟前
mysql索引
数据库·mysql
2601_949593651 小时前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
javachen__1 小时前
mysql新老项目版本选择
数据库·mysql
pearbing1 小时前
天猫UV量提高实用指南:找准方向,稳步突破流量瓶颈
大数据·uv·天猫uv量提高·天猫uv量·uv量提高·天猫提高uv量
Dxy12393102161 小时前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light1 小时前
MySQL相关问题
数据库·mysql
蜡笔小炘2 小时前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs
韩立学长2 小时前
基于Springboot泉州旅游攻略平台d5h5zz02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·旅游
Dxy12393102162 小时前
Elasticsearch 索引与映射:为你的数据打造一个“智能仓库”
大数据·elasticsearch·搜索引擎