广告
返回顶部
首页 > 资讯 > 数据库 >HBase操作注意事项
  • 170
分享到

HBase操作注意事项

2024-04-02 19:04:59 170人浏览 泡泡鱼
摘要

1.HBase如果加了列限定,如果该列不存在时返回的结果为empty. 看下面的代码:        Get get = ne

1.HBase如果加了列限定,如果该列不存在时返回的结果为empty. 看下面的代码:      

  Get get = new Get(Bytes.toBytes("100"));
    get.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"));

这里加入了列限定,也就是只返回列族info下面的name字段。但是如果name字段根本不存在,返回的Result在调用 result.isEmpty()时则返回为true,也就是说就算其他字段存在,也什么都没返回来,包括rowkey也没有返回来。当然,如果是限定多 个列,只要一个列存在就可以正常返回。所以需要注意。

2.HBase在scan时指定的StartRow里面不能加“-” 看下面的代码:

Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes("3136947-")); scan.setStopRow(Bytes.toBytes("3136947-" + 1));

我的本意是查询rowkey以 3136947- 开头的行,但是因为我的里面有一个-(“杠”),所以什么都没返回,去掉-后正常。这说明这里是不能使用-,-也并不是转义字符,转义后也还是scan不出来的。不知道其他字符是不是也不行,没有测试。 所以需要注意。


3.HBase在scan时过滤掉指定列不存在的记录

如果想返回某个字段必须存在的行,不存在该字段的记录过滤掉不返回,方法如下:

Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes("3136947"));
scan.setStopRow(Bytes.toBytes("3136947" + 1));
scan.addColumn(Bytes.toBytes("info"),Bytes.toBytes("name"));
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("info"),
                Bytes.toBytes("name"),
                CompareFilter.CompareOp.NOT_EQUAL, Bytes.toBytes("0"));
filter.setFilterIfMissing(true);
scan.setFilter(filter);

注意:如果是判断某个列是否存在,必须在addColumn里面加上该列,也就是必须返回的字段里面必须包含该列,否则也不会返回,因为在处理的时候是调用addColumn然后才会调用过滤器。

这里的过滤器里面指定该列的字段值必须不等于0(当然,如果你的name里有等于0的当然不能使用0),并且设置setFilterIfMissing为true,也就是设置为如果该列不存在就过滤掉这条数据,默认为false。

4.利用mapReduce导出hbase数据

如果hbase作为数据的输出,job设置如下:

Configuration conf = HBaseConfiguration.create();
Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes("3136947"));
scan.setStopRow(Bytes.toBytes("3136947" + 1));
scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"));
scan.addFamily(UserStoreHelper.FAMILY_INFO);
scan.addColumn(UserStoreHelper.FAMILY_INFO, UserStoreHelper.USER_ID);
scan.addColumn(UserStoreHelper.FAMILY_INFO, UserStoreHelper.FRIENDS);
scan.addColumn(UserStoreHelper.FAMILY_INFO, UserStoreHelper.LEVEL_CODE);
final Job job = new Job(conf, "exportHBaseUser");
job.setjarByClass(TestJobCreator.class);
job.setOutputFORMatClass(TextOutputFormat.class);
FileOutputFormat.setOutputPath(job, new Path("test1"));
TableMapReduceUtil.initTableMapperJob(Bytes.toBytes("usertable"),
                scan,
                TestMapper.class,
                Text.class,
                NullWritable.class,
                job);

在initTableMapperJob里面设置的map必须继承org.apache.hadoop.hbase.mapreduce.TableMapper,并且最后两个设置的参数是自己定义的map的输出时的key和value的类型。

5.利用mapReduce插入数据到HBase

如果hbase作为数据的输入。代码如下:

final Configuration conf = HBaseConfiguration.create();
final Job job = new Job(conf, "Sync-To-HBase");
job.setJarByClass(PostStoreExportHBaseJobCreator.class);
//我这里是以mongoDB为输入     
job.setInputFormatClass(MonGoInputFormat.class);
TableMapReduceUtil.initTableReducerJob("usertable", null, job);
//把数据转换为hbase表格式的map
job.setMapperClass(TestMapper.class);
//直接入hbase库不需要reduce    
job.setNumReduceTasks(0);

这里map的输出必须是key为ImmutableBytesWritable,value为 Put 


您可能感兴趣的文档:

--结束END--

本文标题: HBase操作注意事项

本文链接: https://www.lsjlt.com/news/42575.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HBase操作注意事项
    1.HBase如果加了列限定,如果该列不存在时返回的结果为empty. 看下面的代码:        Get get = ne...
    99+
    2022-10-18
  • Python开发注意事项:处理文件和IO操作时的注意事项
    Python作为一种功能强大且易于学习的编程语言,在开发过程中经常涉及处理文件和IO操作。然而,在处理文件和IO操作时,开发者需要注意一些重要事项,以确保代码的稳定性和可靠性。本文将就Python开发中处理文件和IO操作时的注意事项进行探讨...
    99+
    2023-11-22
    文件处理:文件IO 异常处理:错误处理 性能优化:性能调优
  • win7操作系统安装注意事项
    1、安装Vista和Windows 7系统,在高级安装的时候不要格式化完C盘就安装,要删除c盘,建个c盘,并自动生成个100MB的隐藏未分配盘,此100MB永远不要乱动。如果没生成这个100MB空间,在Vista和Win...
    99+
    2023-06-04
    win7操作系统安装 win7 注意事项
  • 操作云主机要注意哪些事项
    操作云主机要注意的事项有:1、检查远程管理的工具,包括远程控制台、远程重启和救援模式是什么;2、检查应用程序更新,及时Web应用程序,如WordPress等;3、审查主机用户帐户,存放旧站点会使用户有安全法律风险;4、检查服务器的利用率,包...
    99+
    2022-10-15
  • Node.js与MySQL交互操作及其注意事项
    node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑。前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是node本身...
    99+
    2022-06-04
    注意事项 操作 Node
  • Python 中关于文件操作的注意事项
    文件操作 #打开文件 f = open('要打开的文件路径',mode = 'r/w/a', encoding = '文件原来写入时的编码') #操作 data = f.read() #读取 f.write('要写入的内容') ...
    99+
    2023-01-31
    注意事项 操作 文件
  • MySQL 重命名表的操作方法及注意事项
    目录 1.重命名表方法  2.注意事项总结: 1.重命名表方法 使用 RENAME TABLE 语句或 ALTER TABLE 语句都可以对表进行重命名,基本语法如下: # RENA...
    99+
    2022-05-16
    MySQL 重命名 MySQL 重命名表
  • python中字符串类型json操作的注意事项
    python操作json的方法有 json.dumps——将json对象(字典)转换为字符串对象 json.loads——将字符串对象转换为json对象(字典) 如果定义json对象 jsons...
    99+
    2022-06-04
    字符串 注意事项 类型
  • 详解Go操作supervisor xml rpc接口及注意事项
    目录1. 前言2. 管理web3. go处理库4. 实时日志处理代码片段1. 前言 之前提到过目前我们的进程都是通过supervisor(http://supervisord.org...
    99+
    2022-11-12
  • ADO.NET操作注意哪些事宜
    这篇文章主要介绍“ADO.NET操作注意哪些事宜”,在日常操作中,相信很多人在ADO.NET操作注意哪些事宜问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO.NET操作注意哪些事宜”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • DG-duplicate操作注意事项(各种报错应对方法)
    DG-duplicate 操作注意事项 log_file_name_convert='+orcl_DATA/orcldb','+orcl_data/orcldb_dg...
    99+
    2022-10-18
  • 使用PostgreSQL注意事项
    一、大小写特别敏感 大写字段需要用“”引号(pg字段名使用“”,MySQL字段名使用``)  ******表名以及字段名如果是小写但是为关键字,比如name,则也需使用""; 二、分页 limit ${limit} offset ...
    99+
    2016-07-18
    使用PostgreSQL注意事项
  • 服务器租用日常操作需要注意哪些事项
    服务器租用日常操作需要注意的事项有:1、需要及时检查服务器网卡,不要轻易禁用,从而影响服务器正常运行;2、需要及时修改服务器管理密码,防止被黑客暴力破解;3、需要重启服务器时,及时对服务器数据进行备份,避免数据丢失无法恢复;4、实时监测服务...
    99+
    2022-10-13
  • FreeRTOS实时操作系统Cortex-M内核使用注意事项
    前言 在阅读本文之前,有两个定义在FreeRTOSConfig.h中的宏,你必须先明白它们是什么意思,《FreeRTOS内核配置说明》一文中,讲解了这两个宏: configKERNE...
    99+
    2022-11-13
  • 制作网站需要注意哪些事项
    这篇文章将为大家详细讲解有关制作网站需要注意哪些事项,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一,尽量使用文字而不是flash、图片、javascript等来显示重要的内容和链接。Aj...
    99+
    2023-06-12
  • Python开发注意事项:处理数据时的注意事项和技巧
    Python开发是一项广泛应用的编程任务,无论是数据分析、机器学习、Web开发还是其他领域,都可以借助Python来完成。在处理数据时,有一些注意事项和技巧,可以帮助开发者更高效地完成任务和避免潜在的问题。本文将介绍一些Python开发中处...
    99+
    2023-11-22
    数据处理技巧: 数据转换 数据处理技巧: 数据分析
  • Python 中数组操作函数的注意事项及面试技巧!
    Python 中的数组操作是非常重要的,因为数组是一种常见的数据结构,它可以帮助我们存储和处理大量的数据。在 Python 中,有很多数组操作函数可以帮助我们快速地操作数组。但是,在使用这些函数时,我们也需要注意一些细节。本文将介绍 Pyt...
    99+
    2023-11-06
    函数 数组 面试
  • 阿里云备案换服务器如何操作及注意事项
    阿里云备案换服务器是一个涉及到服务器管理的重要步骤。在使用阿里云服务器的过程中,如果需要更换服务器,就需要进行备案换服务器的操作。这篇文章将会详细介绍如何进行阿里云备案换服务器,以及需要注意的事项。 步骤一:确定更换服务器在进行阿里云备案...
    99+
    2023-11-21
    阿里 注意事项 操作
  • Linux操作系统下C语言编程注意事项有哪些
    Linux操作系统下C语言编程注意事项有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、工具的使用本文引用地址:http://www.eepw.com.cn/articl...
    99+
    2023-06-16
  • C++虚函数注意事项
    目录一、虚函数注意事项1.构造函数2.析构函数3.友元4.没有重新定义5.重新定义将隐藏方法文章转自公众号:Coder梁(ID:Coder_LT) 一、虚函数注意事项 在之前的文章当...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作