实训7 HBase命令行之Shell操作_第1页
实训7 HBase命令行之Shell操作_第2页
实训7 HBase命令行之Shell操作_第3页
实训7 HBase命令行之Shell操作_第4页
实训7 HBase命令行之Shell操作_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训4.2HBase命令行之Shell操作1.实训目的(1)理解HBase的系统架构(2)熟悉Shell的基本操作2.实训内容通过本实训,了解HBase的系统架构,使更加熟悉HBase命令行操作表,学会ColumnFamily、TableSchema与RowKey的设计等等。3.实训要求以小组为单元进行实训,每小组5人,小组自协商选一位组长,由组长安排和分配实训任务,具体参考实训操作环节。需要确保HBase环境安装正确。4.准备知识(1)DDL操作语法,如表4-6所示。表4-6DDL操作语法操作命令表达式注意创建表creat'table_name,'family1','family2','familyN'添加记录put'table_name','rowkey','family:column','value'查看记录get'table_name','rowkey'查询单条记录,也是hbase最常用的查看表中的记录总数count'table_name'这个命令并不快,且目前没有找到更快的方式统计行数删除记录delete'table_name','rowkey','family_name:column'deleteall'table_name','rowkey'第一种方式删除—条记录单列的数据第二种方式删除整条记录删除一张表1、disable'table_name'2、drop'table_name'查看所有记录scan“table_name”,{LIMIT=>10}LIMIT=>10只返回10条记录,否则将全部展示①列出所有表,结果如图4-29所示。list图4-29list命令的查看结果②创建表#语法:create<table>,{NAME=><family>,VERSIONS=><VERSIONS>}#例如:创建表t1,有两个familyname:f1,f2,且版本数均为2,如图4-30所示。create't1',{NAME=>'f1',VERSIONS=>2},{NAME=>'f2',VERSIONS=>2}图4-30创建t1表创建表user,列族为info。创建结果如图4-31所示。create'user','info'图4-31创建user表③删除表。

分两步:首先disable,然后drop

例如:删除表t1,操作结果如图4-32所示。HBase(main)>disable't1'HBase(main)>drop't1'图4-32删除t1表④查看表的结构#语法:describe<table>#例如:查看表t1的结构HBase(main)>describe't1'注意:由于上一步删除了表,此处先创建一个t1,然后再查看,如图4-33所示。图4-33查看t1表结构⑤修改表结构

修改表结构前必须先禁用表#语法:alter't1',{NAME=>'f1'},{NAME=>'f2',METHOD=>'delete'}#例如:修改表test1的cf的TTL为180天,操作结果如图4-34所示。HBase(main)>disable't1'HBase(main)>alter't1',{NAME=>'body',TTL=>'15552000'},{NAME=>'meta',TTL=>'15552000'}图4-34修改t1表结构修改好表后需要启用表,操作结果如图4-35所示。HBase(main)>enable

't1'图4-35启用t1表⑥添加数据(用法比较单一)#语法:put<table>,<rowKey>,<family:column>,<value>,<timestamp>#例如:给user表的添加一行记录:rowKey是001,family是name,valuse是lishi。操作结果如图4-36所示。HBase(main)>put'user','001','info:name','lishi'图4-36添加user表的数据⑦查询表查询表中的所有数据#语法:scan<table>,{COLUMNS=>[<family:column>,....],LIMIT=>num}#另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能#例如:扫描表user的前2条数据,查询结果如图4-37所示。HBase(main)>scan'user',{LIMIT=>2}图4-37查询user表数据查询某条数据#例如:查询user表的001行中的info下的所有列值,查询结果如图4-38所示。HBase(main)>get'user','001'图4-38查询user表001行信息查询表中的数据行数#语法:count<table>,{INTERVAL=>intervalNum,CACHE=>cacheNum}#INTERVAL设置多少行显示一次及对应的RowKey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度#例如,查询表user中的行数,每100条显示一次,缓存区为500,查询结果如图4-39所示。HBase(main)>count'user',{INTERVAL=>100,CACHE=>500}图4-39查询user表的行数⑧删除数据删除行中的某个列值#语法:delete<table>,<rowKey>,

<family:column>,<timestamp>,必须指定列名#例如:删除表user中001行的info:name的数据,删除结果如图4-40所示。HBase(main)>delete'user','001','info:name'图4-40删除name列的数据删除表中的所有数据#语法:truncate<table>#其具体过程是:disabletable->droptable->createtable#例如:删除表user的所有数据,删除结果如图4-41所示。HBase(main)>truncate'user'图4-41删除user表中所有数据⑨检查表是否存在,检查结果如图4-42所示。exists'user'图4-42检查user表是否存在(2)划分ColumnFamily的原则推荐ColumnFamily的个数为1~3个,对于有以下两个特点的ColumnFamily可以考虑合并: ①是否具有相似的数据格式。 ②是否具有相似的访问类型。(3)表的Schema的设计四大原则 ①每一个Region的大小在10G~50G。 ②每一个Table控制在50~100个Regions。 ③每一个Table控制在1~3个ColumnFamily。 ④每一个ColumnFamily的命名尽可能短,因为ColumnFamily是会存储在数据文件中。(4)RowKey设计的四大原则 ①RowKey的长度一般被建议在10~100个字节,不过建议是尽量短比较好。 ②RowKey是按照字典顺序进行存储的,所以将Region反转作为RowKey的话使性能更好。 ③避免出现Hotspotting(热点)的三种设计:Salting(散布、加盐)、加Hashing 、反转RowKey。 ④在设计RowKey时可以这样做:采用UserID+CreateTime+FileID组成RowKey,这样既能满足多条件查询,又能有很快的查询速度。5.实训步骤(1)Shell的操作①启动HBaseShell,启动结果如图4-43所示。说明:需确保HDFS、ZooKeeper和HBase均已启动。cd/opt/software/hbase-2.5.0/bin./hbaseshell图4-43启动hbaseshell②创建表,如图4-44所示。create'bigdata','teacher'图4-44bigdata表的创建③查看所有表,如图4-45所示。list图4-45查看list列表④查看表结构信息,如图4-46所示。describe'bigdata'图4-46描述bigdata表信息⑤插入表数据,如图4-47所示。put'bigdata','001','teacher:name','shao'图4-47向bigdata表中插入数据⑥在shell里查询,如图4-48所示。scan'bigdata'图4-48查询bigdata表⑦删除表(要先disable,再drop),如图4-49所示。disable'bigdata'drop'bigdata'图4-49删除bigdata表⑧重新查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论