hbase scan命令(四、HBase客户端)

2024-07-26 14:30:05 2

hbase scan命令(四、HBase客户端)

大家好,今天小编来为大家解答以下的问题,关于hbase scan命令,四、HBase客户端这个很多人还不知道,现在让我们一起来看看吧!

本文目录

四、HBase客户端

1、通过Configuration初始化集群Connection 1.1、Connction维持了客户端到整个HBase集群的链接,如一个HBase集群有2个Master、5个RegionServer,那么一般来说整个Connection会维持一个到Active Master的TCP连接和5个到ReginonServer的TCP链接。 1.2、通常一个进程只需要为一个独立的集群建立一个Connection即可,并不需要建立连接池。 1.3、Connection还缓存了访问的Meta信息,后续的大部分请求都可以通过缓存的Meta信息定位到对应的Region Server。 2、通过Connection初始化Table 2.1、Table是一个非常轻量级的对象,它所使用的连接资源、配置信息、线程池、Meta缓存等都来自于Connection。 2.2、由同一个Connection创建的多个Table,都会共享连接、配置信息、线程池、Meta缓存这些资源 2.3、在branch-1以及之前的版本中,Table并不是线程安全的类,所以不建议在多个线程中使用同一个Table实例。在HBase 2.00及之后,Table已经实现了线程安全。 2.4、由于Table是一个非常轻量级的对象,所以可以通过Connection为每个请求创建一个Table,但是记住,在该请求执行完毕之后需要关闭Table资源。 3、hbase:meta 3.1、hbase:meta用来保存整个集群的region信息 3.2、hbase:meta在HBase中保证始终只有一个Region,这是为了确保meta表多次操作的原子性,因为HBase本质上只支持Region级别的事务《所谓Region级别的事务是指:当多个操作落在同一个Region内时,HBase能保证这一批操作执行的原子性。如果多个操作分散在不同的Region,则无法保证这批操作的原子性》 3.3、hbase:meta的一行就对应一个Region. 它的rowkey主要由TableName、StartRow、TimeStamp、EncodeName、标识这个Region是属于哪个表,表Rowkey的起始行以及Region的创建时间戳 3.4、hbase:meta只有一个列簇《info》他有4列,info:regioninfo、info:seqnumDuringOpen、info:server、info:serverstartcode,表示这个表rowkey的起始位置,region落在哪个RegionServer上以及所在RegionServer的启动时间戳 4、HBase超时参数设置 hbase.rpc.timeout:表示单次RPC请求的超时时间,默认是60 000ms。 hbase.clinet.retries.number:最多允许发生多少次RPC重试操作默认是35次。 hbase.clinet.pause:表示连续两次RPC重试之间的休眠时间,默认是100ms。重试休眠时间是按照随机退避算法设计的。也就是重试次数越多,休眠间隔时间就会越来越长。按照默认的重试次数35,则可能长期卡在休眠和重试两个步骤中 hbase.clinet.operation.timeout:表示单次API的超时时间,默认值为1 200 000ms.一次API可能会有多次RPC重试,这个参数是API操作的总超时。 5、CAS《checkAndPut、inCrementColumnValue》操作是Region级别串行执行的,吞吐受限,在HBase 2.x版本已调整设计,对于同一个Region内部的不同行可以并行执行CAS,这样大大提交了Region内部的CAS吞吐 6、Filter使用避坑指南 6.1、PrefixFilter 前缀过滤 低效使用方式: Scan scan = new Scan(); scan.setFilter(new PrefixFillter(Bytes.toBytes("def"))); 这个Scan虽然能得到预期的效果,但是并不高效,因为对于rowKey在区间(-∞,def)的数据,会一条条扫描,发现前缀不为def,就读下一行,直到找到第一个rowkey为def的行为止 高效使用方式: Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes("def")); scan.setFilter(new PrefixFillter(Bytes.toBytes("def"))); 增加了一个startRow。RegionServer发现Scan设置了startRow,首先会寻址定位到startRow。这样就跳过了大量的(-∞,def)的数据。 最高效的使用方式: Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes("def")); scan.setStopRow(Bytes.toBytes("deg")); 将PrefixFilter直接展开,扫描[def,deg)区间的数据,这样效率是最高的。 6.2、PageFilter:表有5个Region起始key为(-∞,1)、[1,2)、[2,3)、[3,4)、[4,+∞)每个Region 都有超过100条数据 错误的使用方式: Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes("1")); scan.setStopRow(Bytes.toBytes("3")); scan.setFilter(new PageFilter(100)) 这样写得出来的分页每页数据就会有200 条。但是明明设置了分页每页条数是100。原因是,它需要scan 2个Region.scan从一个region切换到另一个region之前的那个Filter的内部状态就无效了,新的region内部用的是一个全新的Filter.Filter计数器被清零。Filter不是全局的, 所以它分别从2个region各查了100 条,总共200 条返回。 正确的使用方式: 如果想实现分页功能,可以不通过Filter而直接通过limit来实现。 Scan scan = new Scan(); scan.setStartRow(Bytes.toBytes("1")); scan.setStopRow(Bytes.toBytes("3")); scan.setLimit(100); 所以对于用户来说,正常情况下PageFilter并没有太多的存在价值 6.3、SingleColumnValueFilter 使用方式: Scan scan = new Scan(); SingleColumnValueFilter scvf = new  SingleColumnValueFilter(Bytes.toBytes("family"),Bytes.toBytes("qualifier"), CompareOp.EQUAL,Bytes.toBytes("value")); scan.setFilter(scvf); 表面上是将列簇为family,列为qualifier,值为value的cell返回给用户,但事实上那些不包含family:qualifier的行也会默认返回给用户,如果用户不希望读取那些不包含family:qualifier的数据,需要设计如下scan Scan scan = new Scan(); SingleColumnValueFilter scvf = new  SingleColumnValueFilter(Bytes.toBytes("family"),Bytes.toBytes("qualifier"), CompareOp.EQUAL,Bytes.toBytes("value")); scvf.setFiterIfMisssing(true); scan.setFilter(scvf); 另外当SingleColumnValueFilter设置为filterIfMisssing为true时,和其他Filter组合成FilterList时可能导致返回的结果不正确。建议是不要使用SingleColumnValueFilter与其他Filter组合成FilterList。 直接指定列,通过ValueFilter替换掉SingleColumnValueFilter Scan scan = new Scan(); ValueFilter vf = new ValueFilter(CompareOf.EQUAL,new BinaryComparatoe(Bytes.toBytes("value"))); scan.addColum(Bytes.toBytes("family"),Bytes.toBytes("qualifier")); scan.setFilter(vf); 7、HBase写入方式对比 7.1、table.put(Put): 每次执行都会执行一次RPC和磁盘持久化,写入吞吐受限于磁盘带宽、网络带宽,不会有数据丢失能保证put操作的原子性。 7.2、table.put(List《Put》): 客户端打包一批put提交,执行一次RPC,一次WAL。相比第一种省略了多次往返的RPC和磁盘持久化。但是时间会变长。如果打包的put分布在多个Region。则不能保证这一批put的原子性,应为HBase不支持跨Region的多行事务,失败的put会经历若干次重试。 7.3、bulk load: 将待写入的数据生成HFile,然后采用bulk load方式将HFile直接加载到对于的Region的CF内。这是一种完全离线的快速写入方式。它应该是最快的批量写入手段,同时不会对线上的集群产生巨大压力,在load完HFile之后,CF内部会进行Compaction,但是Compaction是异步的且可以限速,所以bulk load对线上集群非常友好。 使用场景举例: 7.3.1、两个集群互为主备,其中一个集群由存在数据丢失,想通过另一备份集群的数据来修复异常集群。最快的方式是:把备份集群的数据导一个快照拷贝到异常集群,然后通过copyTable工具扫快照生成HFile,然后bulk load 到异常集群,完成数据的修复。 7.3.2、当用户写入大量数据后,发现选择的split keys不合适,想重新选择split keys见表,这时也可以通过 snapshort生成HFile再bulk load的方式生成新表。

hbaseshell命令显示已杀死

1、HBase的命令行工具,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况。status是查询当前服务器状态,Version是查看当前版本,Whoami是查询当前hbase用户,Table_help是表的引用,通过获取一张表的引用来对这张表进行添加删除数据等等操作。2、数据操纵语言是put是把指定列在指定的行中单元格的值在一个特定的表,get是取行或单元格的内容,delete是删除表中的单元格值,deleteall是删除给定行的所有单元格,scan是扫描并返回表数据,count是计数并返回表中的行的数目,truncate是禁用,删除和重新创建一个指定的表。3、HBaseShell添加了一种新的非交互模式。非交互模式捕获HBaseShell命令的退出状,并将该状态返回给命令解释器,HBaseShell将只会返回自己的退出状态,这几乎总是会0成功的

hbase的scan怎样支持通配符

一般情况下,我们使用Linux的shell命令,就可以非常轻松的操作Hbase,例如一些建表,建列簇,插值,显示所有表,统计数量等等,但有时为了提高灵活性,我们也需要使用编程语言来操作Hbase,当然Hbase通过Thrift接口提供了对大多数主流编程语言

描述hbase的scan和get功能以及实现的异同

HBase的查询实现只提供两种方式: 1、按指定RowKey获取唯一一条记录,get方法(org.apache.hadoop.hbase.client.Get) 2、按指定的条件获取一批记录,scan方法(org.apache.hadoop.hbase.client.Scan) 实现条件查询功能使用的就是scan方式

hbase如何根据某个列的值,查询出这个列的ro

刚才理解错了,你是要在C列显示对应A列的B列值,修改一下答案在c列第一个单元格C1复制如下公式:=VLOOKUP(A1,sheet1!$A$1:$B$n,2,0)其中n为A列最后一个单元格行数然后把B1向下填充到其他B列单元格,公示应该会自动变为=VLOOKUP(A2,sheet1!$A$1:$B$n,2,0)=VLOOKUP(A3,sheet1!$A$1:$B$n,2,0)......=VLOOKUP(An,sheet1!$A$1:$B$n,2,0)这样应该可行,我没试验过你这种情况。你应该仔细看看VLOOKUP()这个函数的用法下面是我给别人写的,不过对方说没看懂,你看看:如果你有一个数据表,而另一个表格需要自动读取这个数据表内的数据,函数VLOOKUP()就很有用了。下面简单说一下:函数VLOOKUP()用法:例子 公式如下=VLOOKUP(F5,Sheet2!$F$4:$W$957,2,0)其中第一个参数F5为查找值,即使用该公式的单元格内的数据是根据F5单元格内的数据查找出来的,例如你把姓名放在F列,其中F5是一个叫张三的人,G列是身份证号。G5要查找张三的身份证号,就可以在G5用函数VLOOKUP()第二个参数是数据表,就是由哪一个数据表的哪几列数据为查找范围,【Sheet2!】就是数据表名,$F$4(F4)就是范围的左上角单元格,$W$957(W957)就是右下角单元格,查找范围就是在这个矩形内。其中F列数据必须是第一个参数F5的比照列,简单来说就是第一个参数F5的数值应该在查找的数据表的F列内。且F列必须是查找范围的第一个列该公式才起作用。举例你要查找张三,那么张三在Sheet2数据表查找范围内的所在列必须是查找范围内的第一列。F4写成$F$4是为了固定该单元格,否则在复制公式的时候excel会自动递加单元格数值,F4在复制的时候可能会变成F5、F6...,造成查找范围改变第三个参数是列数,就是该函数返回的是第几列的数值,该列数是相对列数,即查找范围内的第几列。例如Sheet2工作表内的F列在整个表格内属于第6列,但在查找范围内的相对列数是第1列。假如张三的身份证在G列内,那么就是返回查找范围的第二列。第四个参数是匹配条件,一般为0。下面举一个具体使用的例子。假设你有一个excel文件,里面的sheet1工作表记录的是单位人员姓名及人员身份证号,你现在需要创建一个新excel文件,记录单位人员的三险一金,里面需要输入人员的身份证号,如果再一个一个输入,重复劳动效率低不说,很有可能输错了,这时候你就可以从以前那个excel文件中读取这些人员的身份证号。在新表中先输入人员姓名(如果你用人员序号作比对的话,姓名也可以自动读取),然后在需要输入身份证号的地方点击上面的【fx】,出现【插入函数】的对话框,在类别中选择【查找和引用】,最后一个就是VLOOKUP,选中它,点【确定】,然后出现【函数参数】对话框,【Lookup-value】为第一个参数,点击旁边的表格红箭头图标,选中新表中需要查找身份证号的那个人的姓名单元格;【table-array】为第二个参数,顾名思义是表格数组,包含行列的一个范围,就是查找范围,点击旁边表格红箭头图标,在老表sheet1中框选所有姓名和身份证号,保证老表中姓名在第一列;【col-index-num】为第三个参数,看看老表中身份证号在选择范围是第几列,就写上几。假如老表内身份证号紧跟着姓名,因为姓名列是范围内的第一列,那么身份证号就是第二列;【range-lookup】为第四个参数,写上0。全部弄好以后,回到新表看看身份证号是不是已经自动读出来了。如果没有一是查查这个人在老表中有没有,名字有没有空格,还有你选择的第三个参数列数对不对,注意有没有隐藏列,因为隐藏列虽然看不到,但是也计算在列数里面。如果没问题,将公示复制到所有需要读取身份证的单元格内。这样有一个问题,因为你新表读取的是文件外的数据,所以必须保证老表文件位置不能变动,否则新表就不知道去哪里找数据了。解决方法有三个,一是保证老表文件位置永远不动(废话);二是在操作前先把老表数据复制到新表所在的文件内,单独作为一个sheet工作表存在,然后再查找新表复制后的数据,因为在同一个文件内,不用担心数据源丢失问题;三是不复制老表,新表读取数据后,选中读取的数据,点击【复制】,然后在原位置点击【选择性粘贴】,选中粘贴【数据】,这样公式会被公式读取的数据覆盖,就和数据源没有关系了。还会遇到一个问题,如果老表没有数据,比如说老表内李四这个人当时就没有输入身份证号,那么新表内李四用公式查出来的身份证号并不是空,而是0,解决这个问题需要加一个if判断语句,如下:=IF(你的公式=0,"",你的原公式)还有就是,如果数据查找出错,会出现#N/A或者#VALUE,也可以用if语句取消,如下:=IF(ISERROR(你的公式),"",你的公式)不过不建议这样做,有错误提示才能知道去查找公式是不是有问题,公式没问题自然不会出现错误提示,没必要人为取消。

关于hbase scan命令到此分享完毕,希望能帮助到您。

hbase scan命令(四、HBase客户端)

本文编辑:admin

更多文章:


商务小本(商务小本宏基b115怎样更换内存)

商务小本(商务小本宏基b115怎样更换内存)

商务小本宏基b115怎样更换内存关于“商务小本宏基B115怎样更换内存”的相关内容,条理明确的解释如下:一、准备工作1. 备份重要数据:在开始更换内存之前,请确保备份所有重要数据,以防止意外丢失。2. 工具准备:准备好相应的螺丝刀、撬棒等工

2024年7月29日 06:51

联想笔记本电脑y480(联想笔记本电脑y480参数)

联想笔记本电脑y480(联想笔记本电脑y480参数)

联想笔记本电脑y480参数联想笔记本电脑Y480是一款较为经典的机型,以下是关于其参数的详细解释:1. 处理器:该机型搭载了英特尔的处理器,具体型号可能会因市场和配置的不同而有所差异。通常来说,高端机型会采用i7或者i5等高性能处理器。2.

2024年7月20日 03:20

tcl笔记本(TCL笔记本电脑)

tcl笔记本(TCL笔记本电脑)

TCL笔记本电脑TCL笔记本电脑是TCL集团旗下的一个电脑品牌,以下是关于TCL笔记本电脑的详细解释:一、品牌概述TCL是一家全球知名的电子消费品制造商,其笔记本电脑产品主要面向中低端市场,以性价比高、品质稳定而受到消费者的喜爱。二、产品特

2024年7月19日 02:06

石家庄买电脑(石家庄买电脑的实体店有哪些)

石家庄买电脑(石家庄买电脑的实体店有哪些)

石家庄买电脑的实体店有哪些关于“石家庄买电脑的实体店有哪些”的问题,以下是相关信息:1. 电脑城与电子产品市场:* 石家庄太和电子城:是当地较大的电子产品市场之一,拥有多家电脑及相关电子产品销售店铺。* 石家庄电脑城:是石家庄市另一个重要的

2024年7月24日 05:44

三星笔记本电脑售后(三星笔记本电脑售后服务维修中心)

三星笔记本电脑售后(三星笔记本电脑售后服务维修中心)

三星笔记本电脑售后服务维修中心关于“三星笔记本电脑售后服务维修中心”的相关内容,这里为你做一个简单的条理化解释:一、定义和概述1. 三星笔记本电脑售后服务维修中心是三星公司为旗下笔记本电脑用户提供的专业售后服务中心。2. 主要提供服务包括维

2024年7月16日 09:01

nvidia geforce 410m(nvidia geforce 410M 是独显吗)

nvidia geforce 410m(nvidia geforce 410M 是独显吗)

nvidia geforce 410M 是独显吗关于“nvidia geforce 410M是独显吗”的相关内容,条理清晰的解释如下:1. NVIDIA GeForce 410M的属性: NVIDIA GeForce 410M是一个显卡

2024年7月28日 17:36

显卡更新(显卡更新驱动)

显卡更新(显卡更新驱动)

显卡更新驱动当然可以,以下是关于“显卡更新驱动”的详细解释:一、什么是显卡驱动?显卡驱动是计算机系统中控制显卡运作的驱动程序。它是硬件和操作系统之间的接口,为硬件提供了良好的工作环境和最优的性能表现。二、为何需要更新显卡驱动?1. 优化性能

2024年7月22日 04:06

华硕ux30(华硕ux305)

华硕ux30(华硕ux305)

华硕ux305华硕UX305是一款笔记本电脑,以下是关于它的相关内容:1. 硬件配置:华硕UX305采用轻薄的设计,搭载了高性能的处理器和独立显卡,提供出色的计算能力和图形处理性能。此外,它还配备了足够的内存和存储空间,满足用户日常使用需求

2024年7月20日 13:11

最好的笔记本品牌(售后最好的笔记本品牌)

最好的笔记本品牌(售后最好的笔记本品牌)

售后最好的笔记本品牌“售后最好的笔记本品牌”这一说法通常基于消费者对不同品牌售后服务质量、产品可靠性及整体满意度等因素的评估。以下是对这一主题的详细解释:1. 售后服务的重要性: - 对于笔记本等电子产品而言,售后服务是其用户体验和满意

2024年7月15日 22:52

笔记本显卡驱动(笔记本显卡驱动怎么更新)

笔记本显卡驱动(笔记本显卡驱动怎么更新)

笔记本显卡驱动怎么更新笔记本显卡驱动的更新是维护电脑性能和稳定性的重要步骤,以下是详细的步骤和注意事项:一、更新显卡驱动的步骤1. 备份旧驱动:在更新显卡驱动之前,建议先备份旧的驱动文件,以备不时之需。2. 访问显卡品牌官网:访问显卡品牌的

2024年7月19日 07:26

三星笔记本好吗(三星笔记本好吗值得买吗)

三星笔记本好吗(三星笔记本好吗值得买吗)

三星笔记本好吗值得买吗关于“三星笔记本好吗值得买吗”的问题,以下是对此的条理清晰的解释:1. 三星笔记本的品质: - 三星是全球知名的电子产品制造商,其笔记本电脑以品质优良、设计精美著称。 - 三星笔记本通常采用高质量的材料和工艺制

2024年7月20日 22:56

三防笔记本(三防笔记本什么意思)

三防笔记本(三防笔记本什么意思)

三防笔记本什么意思“三防笔记本”通常指的是具有防震、防水、防尘功能的笔记本电脑。具体解释如下:1. 防震:这种笔记本在内部结构上会采用特殊设计,比如更坚固的材质或特殊的缓冲材料,来确保在受到一定程度的震动时,内部的硬件如硬盘、主板等不会因震

2024年7月10日 07:00

分期付款笔记本(分期付款笔记本电脑)

分期付款笔记本(分期付款笔记本电脑)

分期付款笔记本电脑当然可以。以下是与“分期付款笔记本电脑”相关的内容:一、概念定义分期付款是指消费者购买某项商品(如笔记本电脑)时,并不需要一次性支付全款,而是与销售商签订一个合同,将应付款项分多次支付完毕。这种方式可以让消费者轻松地购买更

2024年7月19日 02:26

联想乐phone s880(联想乐phones880)

联想乐phone s880(联想乐phones880)

联想乐phones880“联想乐Phones 880”是一款由联想(Lenovo)公司生产的智能手机。以下是关于“联想乐Phones 880”的有关内容:1. 性能:该手机采用了高性能的处理器,可以提供流畅的操作体验。此外,它还配备了较大的

2024年7月19日 18:26

y480n(y480内存条是标压还是低压)

y480n(y480内存条是标压还是低压)

y480内存条是标压还是低压“Y480内存条是标压还是低压”这一问题涉及到的是笔记本内存条的电压类型问题。对于这一问题,以下将为你条理清晰地解释:1. 内存条的电压类型:内存条的电压类型通常分为标压和低压两种。标压内存条通常适用于性能要求较

2024年7月25日 16:00

电脑故障查询(电脑故障查询网站)

电脑故障查询(电脑故障查询网站)

电脑故障查询网站电脑故障查询网站是一个为计算机用户提供各种电脑故障诊断和解决方案的在线平台。以下是关于“电脑故障查询网站”的详细解释:一、定义与作用电脑故障查询网站是专门针对计算机用户在操作过程中可能遇到的硬件、软件或其他相关技术问题而设计

2024年7月23日 05:06

宏基4752怎么样(宏基 4752)

宏基4752怎么样(宏基 4752)

宏基 4752“宏碁(Acer)4752”是一款由宏碁公司生产的笔记本电脑。以下是关于宏碁4752的相关内容条理明确的解释:1. 外观设计:宏碁4752通常采用简约、时尚的设计风格,拥有良好的便携性和耐用的材料,确保了其外观的吸引力和实用性

2024年7月26日 04:46

pconline显卡天梯图(PConline显卡天梯图)

pconline显卡天梯图(PConline显卡天梯图)

PConline显卡天梯图"PConline显卡天梯图"是一款由国内知名的电子产品信息发布平台PConline所制作的显卡性能排名图。这款图表的主要作用是帮助消费者更好地了解市场上各类显卡的性能表现,以便于他们根据自己的需求和预算选择合适的

2024年7月22日 15:56

ibm笔记本报价(ibm笔记本报价大全)

ibm笔记本报价(ibm笔记本报价大全)

ibm笔记本报价大全关于“IBM笔记本报价大全”的相关内容,以下是一些条理清晰的解释:一、概述IBM笔记本报价大全是指包含了各种型号、配置的IBM笔记本电脑的价格列表。IBM是一家知名的电脑制造商,其笔记本电脑因其高品质和出色的性能而备受用

2024年7月22日 18:21

z580(z5806列车座位表)

z580(z5806列车座位表)

z5806列车座位表关于“Z5806列车座位表”的相关内容,以下是条理清晰的解释:1. 列车座位表的概念:列车座位表是指列车的座位布局图,可以清晰地展示出每一节车厢的座位数量、类型和排列方式等信息。2. Z5806列车的座位类型:不同类型列

2024年7月25日 20:56

近期文章

among的用法?among用法
2024-10-06 13:15:26
本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2336
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1732
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1154
标签列表

热门搜索