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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: (要求先配置好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'




相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库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
目录
相关文章
|
2月前
|
SQL 分布式计算 运维
如何对付一个耗时6h+的ODPS任务:慢节点优化实践
本文描述了大数据处理任务(特别是涉及大量JOIN操作的任务)中遇到的性能瓶颈问题及其优化过程。
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
61 4
|
3月前
|
Java 大数据 分布式数据库
Spring Boot 与 HBase 的完美融合:探索高效大数据应用开发的新途径
【8月更文挑战第29天】Spring Boot是一款广受好评的微服务框架,以其便捷的开发体验著称。HBase则是一个高性能的大数据分布式数据库系统。结合两者,可极大简化HBase应用开发。本文将对比传统方式与Spring Boot集成HBase的区别,展示如何在Spring Boot中优雅实现HBase功能,并提供示例代码。从依赖管理、连接配置、表操作到数据访问,Spring Boot均能显著减少工作量,提升代码可读性和可维护性,使开发者更专注业务逻辑。
246 1
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何开发ODPS Spark任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
24天前
|
边缘计算 人工智能 搜索推荐
大数据与零售业:精准营销的实践
【10月更文挑战第31天】在信息化社会,大数据技术正成为推动零售业革新的重要驱动力。本文探讨了大数据在零售业中的应用,包括客户细分、个性化推荐、动态定价、营销自动化、预测性分析、忠诚度管理和社交网络洞察等方面,通过实际案例展示了大数据如何帮助商家洞悉消费者行为,优化决策,实现精准营销。同时,文章也讨论了大数据面临的挑战和未来展望。
|
1月前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
122 5
|
1月前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
70 4
|
2月前
|
存储 分布式计算 分布式数据库
深入理解Apache HBase:构建大数据时代的基石
在大数据时代,数据的存储和管理成为了企业面临的一大挑战。随着数据量的急剧增长和数据结构的多样化,传统的关系型数据库(如RDBMS)逐渐显现出局限性。
387 12
|
1月前
|
SQL 消息中间件 分布式计算
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(一)
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(一)
80 0
|
1月前
|
SQL 大数据
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(二)
大数据-143 - ClickHouse 集群 SQL 超详细实践记录!(二)
59 0
下一篇
无影云桌面