大数据开发笔记(十):Hbase实践

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: (要求先配置好hadoop环境,版本hadoop2皆可,先启动zookeeper)

HBSAE实践


(要求先配置好hadoop环境,版本hadoop2皆可,先启动zookeeper)


1、安装(hbase-0.98.6-hadoop2)

(1)安装zookeeper(zookeeper-3.4.5)


首先,将zoo_sample.cfg改名为zoo.cfg(要求所有机器保持一致)


server.0=master:8880:7770
server.1=slave1:8881:7771
server.2=slave2:8882:7772


然后,zookeeper根目录创建myid(每个机器独立分配,不能重复)


启动,]# ./bin/zkServer.sh start


检查:]# ./bin/zkServer.sh status


(2)安装hbase

首先:hbase-env.sh设置环境变量


export JAVA_HOME=/usr/local/src/jdk1.8.0_172
export HBASE_MANAGES_ZK=false #用第三方
修改hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>150000</value>
</property>

接下来,创建regionservers文件,里面存储regionserver的master地址


1 slave1


2 slave2


将这些配置分发拷贝到其他节点(scp)


启动 ./bin/start-hbase.sh


(1)在主节点看到HMaster进程,在从节点看到HRegionServer进程


(2)]# hbase shell,进入终端执行status,查看状态


(3)web UI:192.168.179.10:60010


2、hbase shell的基础操作

list查看有哪些表格


删除表格:


> disable "m_table"
> drop "m_table"


创建表格:


> create 'm_table', 'meta_data', 'action'


查看数据(全表扫描)——不建议直接用


> scan "m_table"


增加cf:


> alter "m_table", {NAME=>'cf_new'}


删除cf:


> alter "m_table", {NAME=>'cf_new', METHOD=>'delete'}


查看表格有多少条记录:


> count "m_table"

删掉一条记录


delete "m_table", "user|4001", "meta_data:name"


写数据:


put "m_table", '1002', 'meta_data:name', 'li4'
put "m_table", '1001', 'meta_data:age', '18'
put "m_table", '1002', 'meta_data:gender', 'man'

查看数据


逐条读:get "m_table", '1002'


get "m_table", '1002', 'meta_data:name'


批量读:scan "m_table"


过滤

(1)找zhang3,值


--通过明确的value,反查记录


scan "m_table", FILTER=>"ValueFilter(=, 'binary:zhang3')"
scan "m_table", FILTER=>"ValueFilter(=, 'binary:wang5')"


(2)找包含‘a’的value


--通过value漫匹配,反查记录


scan "m_table", FILTER=>"ValueFilter(=, 'substring:a')"scan "m_table", FILTER=>"ValueFilter(=, 'substring:a')"


(3)列名匹配


两个条件同时限制,对列明的前缀做校验


scan "m_table", FILTER=>"ColumnPrefixFilter('na') AND ValueFilter(=, 'substring:zhang3')"
scan "m_table", FILTER=>"ColumnPrefixFilter('na')
put "m_table", '3001', 'meta_data:name', '777'


(4)rowkey匹配---查询rowkey prefix的方式:


以10开头:


> scan "m_table", FILTER=>"PrefixFilter('10')"
指定rowkey的范围,rowkey之后的数据
> scan "m_table", {STARTROW=>'1002'}
> scan "m_table", {STARTROW=>'1002', FILTER=>"PrefixFilter('10')"}


修改版本号:


> alter "m_table", {NAME=>'meta_data', VERSIONS => 3}
put "m_table", '1001', 'meta_data:name', 'wang5'
put "m_table", '1001', 'meta_data:name', 'zhao6'
put "m_table", '1001', 'meta_data:name', 'heng7'
get "m_table", '1001'


指定版本号读取:


get "m_table", '1001', {COLUMN=>"meta_data:name", VERSIONS => 1}
get "m_table", '1001', {COLUMN=>"meta_data:name", VERSIONS => 2}
> get "m_table", '1001', {COLUMN=>"meta_data:name", VERSIONS => 3}
get "m_table", '1001', {COLUMN=>"meta_data:name", TIMESTAMP=>1573349851782}
get "m_table", '1001', {COLUMN=>"meta_data:name", TIMESTAMP=>1573349547463}


正则过滤


1.行正则


import org.apache.hadoop.hbase.filter.RegexStringComparator
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.filter.RowFilter
scan 'm_table', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),RegexStringComparator.new('^10'))}


2.值正则


import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
scan "m_table", {FILTER=>RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), RegexStringComparator.new('^user\|\d+$'))}


值正则:


scan 'm_table', {COLUMNS => 'meta_data:name', FILTER => SingleColumnValueFilter.new(Bytes.toBytes('meta_data'),Bytes.toBytes('name'),CompareFilter::CompareOp.valueOf('EQUAL'),Bytes.toBytes('zhang3'))}

清空词表

> truncate "m_table"


查看行数

> count 'm_table'




相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
19天前
|
存储 大数据 API
大数据隐私保护策略:加密、脱敏与访问控制实践
【4月更文挑战第9天】本文探讨了大数据隐私保护的三大策略:数据加密、数据脱敏和访问控制。数据加密通过加密技术保护静态和传输中的数据,密钥管理确保密钥安全;数据脱敏通过替换、遮蔽和泛化方法降低敏感信息的敏感度;访问控制则通过用户身份验证和权限设置限制数据访问。示例代码展示了数据库、文件系统和API访问控制的实施方式,强调了在实际应用中需结合业务场景和平台特性定制部署。
118 0
|
19天前
|
数据采集 监控 算法
利用大数据和API优化电商决策:商品性能分析实践
在数据驱动的电子商务时代,大数据分析已成为企业提升运营效率、增强市场竞争力的关键工具。通过精确收集和分析商品性能数据,企业能够洞察市场趋势,实现库存优化,提升顾客满意度,并显著增加销售额。本文将探讨如何通过API收集商品数据,并将这些数据转化为对电商平台有价值的洞察。
|
19天前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
788 2
|
19天前
|
存储 SQL 分布式计算
开源大数据比对平台设计与实践—dataCompare
开源大数据比对平台设计与实践—dataCompare
89 0
|
19天前
|
SQL 存储 大数据
某互联网大厂亿级大数据服务平台的建设和实践
某互联网大厂亿级大数据服务平台的建设和实践
85 0
|
19天前
|
存储 分布式计算 大数据
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day12】——Hbase6
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day12】——Hbase6
40 1
|
19天前
|
消息中间件 大数据 Kafka
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day13】——Hbase7
大数据开发岗面试复习30天冲刺 - 日积月累,每日五题【Day13】——Hbase7
33 0
|
19天前
|
SQL 关系型数据库 MySQL
Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
【2月更文挑战第9天】Sqoop【付诸实践 01】Sqoop1最新版 MySQL与HDFS\Hive\HBase 核心导入导出案例分享+多个WRAN及Exception问题处理(一篇即可学会在日常工作中使用Sqoop)
108 7
|
11天前
|
存储 弹性计算 大数据
【阿里云弹性计算】阿里云ECS在大数据处理中的应用:高效存储与计算实践
【5月更文挑战第23天】阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,尤其大数据型实例适合离线计算。通过集成分布式文件系统如OSS,实现大规模存储,而本地存储优化提升I/O性能。弹性扩容和计算优化实例确保高效运行,案例显示使用ECS能提升处理速度并降低成本。结合阿里云服务,ECS构建起强大的数据处理生态,推动企业创新和数字化转型。
32 0
|
14天前
|
存储 分布式计算 Java
大数据存储技术(3)—— HBase分布式数据库
大数据存储技术(3)—— HBase分布式数据库
182 0

热门文章

最新文章