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

简介: (要求先配置好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'




目录
相关文章
|
5月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
5月前
|
数据采集 SQL 搜索推荐
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
OneData是阿里巴巴内部实现数据整合与管理的方法体系与工具,旨在解决指标混乱、数据孤岛等问题。通过规范定义、模型设计与工具平台三层架构,实现数据标准化与高效开发,提升数据质量与应用效率。
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
|
6月前
|
数据采集 存储 大数据
大数据之路:阿里巴巴大数据实践——日志采集与数据同步
本资料全面介绍大数据处理技术架构,涵盖数据采集、同步、计算与服务全流程。内容包括Web/App端日志采集方案、数据同步工具DataX与TimeTunnel、离线与实时数仓架构、OneData方法论及元数据管理等核心内容,适用于构建企业级数据平台体系。
|
6月前
|
分布式计算 监控 大数据
大数据之路:阿里巴巴大数据实践——离线数据开发
该平台提供一站式大数据开发与治理服务,涵盖数据存储计算、任务调度、质量监控及安全管控。基于MaxCompute实现海量数据处理,结合D2与DataWorks进行任务开发与运维,通过SQLSCAN与DQC保障代码质量与数据准确性。任务调度系统支持定时、周期、手动运行等多种模式,确保高效稳定的数据生产流程。
大数据之路:阿里巴巴大数据实践——离线数据开发
|
6月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
222 4
|
6月前
|
分布式计算 DataWorks 数据处理
在数据浪潮中前行:记录一次我与ODPS的实践、思考与展望
本文详细介绍了在 AI 时代背景下,如何利用阿里云 ODPS 平台(尤其是 MaxCompute)进行分布式多模态数据处理的实践过程。内容涵盖技术架构解析、完整操作流程、实际部署步骤以及未来发展方向,同时结合 CSDN 博文深入探讨了多模态数据处理的技术挑战与创新路径,为企业提供高效、低成本的大规模数据处理方案。
351 3
|
6月前
|
机器学习/深度学习 存储 分布式计算
ODPS驱动电商仓储革命:动态需求预测系统的落地实践
本方案基于ODPS构建“预测-仿真-决策”闭环系统,解决传统仓储中滞销积压与爆款缺货问题。通过动态特征工程、时空融合模型与库存仿真引擎,实现库存周转天数下降42%,缺货率下降65%,年损减少5000万以上,显著提升运营效率与GMV。
669 1
|
5月前
|
存储 SQL 分布式计算
大数据之路:阿里巴巴大数据实践——元数据与计算管理
本内容系统讲解了大数据体系中的元数据管理与计算优化。元数据部分涵盖技术、业务与管理元数据的分类及平台工具,并介绍血缘捕获、智能推荐与冷热分级等技术创新。元数据应用于数据标签、门户管理与建模分析。计算管理方面,深入探讨资源调度失衡、数据倾斜、小文件及长尾任务等问题,提出HBO与CBO优化策略及任务治理方案,全面提升资源利用率与任务执行效率。
|
7月前
|
资源调度 安全 Java
Java 大数据在智能教育在线实验室设备管理与实验资源优化配置中的应用实践
本文探讨Java大数据技术在智能教育在线实验室设备管理与资源优化中的应用。通过统一接入异构设备、构建四层实时处理管道及安全防护双体系,显著提升设备利用率与实验效率。某“双一流”高校实践显示,设备利用率从41%升至89%,等待时间缩短78%。该方案降低管理成本,为教育数字化转型提供技术支持。
193 1
|
3月前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)