官方教程有几个问题:不能直接运行;key和value为16进制值;因为副本数量为2,单机无法运行
下面代码基于cassandra 1.2
import static junit.framework.Assert.assertEquals; import java.util.Arrays; import me.prettyprint.cassandra.serializers.LongSerializer; import me.prettyprint.cassandra.serializers.StringSerializer; import me.prettyprint.cassandra.service.ColumnSliceIterator; import me.prettyprint.cassandra.service.ThriftKsDef; import me.prettyprint.cassandra.service.template.ColumnFamilyResult; import me.prettyprint.cassandra.service.template.ColumnFamilyTemplate; import me.prettyprint.cassandra.service.template.ColumnFamilyUpdater; import me.prettyprint.cassandra.service.template.ThriftColumnFamilyTemplate; import me.prettyprint.hector.api.Cluster; import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition; import me.prettyprint.hector.api.ddl.ComparatorType; import me.prettyprint.hector.api.ddl.KeyspaceDefinition; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.factory.HFactory; import me.prettyprint.hector.api.query.SliceQuery; import org.junit.Test; public class Hector5Min { String clusterName = "test-cluster"; String keyspace = "ks1"; String cfName = "cf1"; Cluster cluster = HFactory.getOrCreateCluster(clusterName, "localhost:9160"); Keyspace ksp = HFactory.createKeyspace(keyspace, cluster); ColumnFamilyTemplate<String, String> template = new ThriftColumnFamilyTemplate<String, String>(ksp, cfName, StringSerializer.get(), StringSerializer.get()); @Test public void createKeySpaceAndCf() { ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition(keyspace, cfName, ComparatorType.UTF8TYPE); // 下面两行我加的,为了让key和value以UTF8格式保存 cfDef.setKeyValidationClass(ComparatorType.UTF8TYPE.getClassName()); cfDef.setDefaultValidationClass(ComparatorType.UTF8TYPE.getClassName()); // 副本数我修改为1,官方为2,单机无法测试使用 KeyspaceDefinition newKeyspace = HFactory.createKeyspaceDefinition(keyspace, ThriftKsDef.DEF_STRATEGY_CLASS, 1, Arrays.asList(cfDef)); cluster.addKeyspace(newKeyspace, true); } @Test public void insert() { ColumnFamilyUpdater<String, String> updater = template.createUpdater("rowkey1"); updater.setString("name", "heipark"); try { template.update(updater); } catch (HectorException e) { System.out.println(e); } } @Test public void read() { try { ColumnFamilyResult<String, String> res = template.queryColumns("rowkey1"); assertEquals("heipark", res.getString("name")); } catch (HectorException e) { System.out.println(e); } } @Test public void delete() { try { template.deleteColumn("rowkey1", "name"); } catch (HectorException e) { // do something } } @Test // 根据单个key查询所有columns public void testSliceQuery2() { SliceQuery<String, String, Long> query = HFactory.createSliceQuery(ksp, StringSerializer.get(), StringSerializer.get(), LongSerializer.get()); query.setColumnFamily(cf1); query.setKey(yourRowkey); ColumnSliceIterator<String, String, Long> iterator = new ColumnSliceIterator<String, String, Long>(query, null, "\uFFFF", false); while (iterator.hasNext()) { HColumn<String, Long> element = iterator.next(); System.out.println(element.getName() + ":" + element.getValue()); } } }
参考:
Getting started (5 minutes)
https://github.com/hector-client/hector/wiki/Getting-started-%285-minutes%29
--end
相关推荐
### rplidar使用hector_slam的hector_mapping与geotiff创建地图方法详解 #### 一、前言 在机器人技术领域,特别是在自主导航和环境感知方面,使用激光雷达(LiDAR)来构建环境地图是十分常见的做法。本文将详细...
3、熟练GAMIT/GLOBK软件的安装流程与使用方法; 4、熟练GLOBK平差流程和处理策略; 5、掌握应用GAMIT/GLOBK软件进行高精度GNSS工程控制网数据处理与精度评估; 6、掌握应用GAMIT/GLOBK软件进行CORS站网坐标时间序列...
标题中的“Hector quadrotor tutorial”指的是一个关于Hector四旋翼无人机的教程,它主要涉及使用Hector SLAM(Simultaneous Localization And Mapping)技术。Hector SLAM是一种广泛应用于机器人领域的算法,用于...
标题中的“Hector slam_slam_”指的是Hector SLAM(Simultaneous Localization and Mapping,同时定位与建图)算法,这是一个广泛应用于机器人导航领域的技术。SLAM是机器人在未知环境中构建地图的同时进行自我定位...
标题中的“Hector slam-master.zip_Hector slam介绍_hector_slam_laser slam_slam”表明这是一个关于Hector SLAM(Simultaneous Localization and Mapping,即同时定位与建图)的项目压缩包,其中包含了相关代码和...
Hector SLAM是一种用于机器人自主导航和地图构建的算法,尤其适用于末世搜索与救援(USAR)环境中的应用。它能够在机器人定位和地图构建(SLAM)的范畴内实现实时的环境感知和机器人自我定位。本文将详细探讨Hector ...
数据包:Team_Hector_MappingBox_RoboCup_2011_Rescue_Arena.bag
- `HectorMapping::publishMap()`: 将构建的地图发布为ROS话题,供其他节点使用。 - `HectorMapping::optimizeGraph()`: 执行图优化,提高地图的精度和一致性。 - `hector_pose_estimation`: 提供姿态估计功能,...
5. 高级功能:Hector还支持更复杂的操作,如超级列、时间戳控制、批量操作等,以及CQL(Cassandra Query Language)的使用。 Cassandra_demo示例: 在提供的"Cassandra_demo"压缩包中,可能包含了一个简单的Java...
"激光SLAM Hector官方论文A Flexible and Scalable SLAM System with Full 3D Motion Estimation" 提出了一种灵活且可扩展的SLAM系统,该系统具有完整的三维运动估计功能,特别适用于城市搜索和救援(USAR)等应用。...
标题中的"hector-object-mapper-3.1-07.zip"表明这是一个关于Hector对象映射器的软件包,版本为3.1.07。Hector是Cassandra数据库的一个客户端库,它提供了Java API,使得开发者可以方便地与Cassandra进行交互。对象...
标题"hector_slam源码"指的是源自德国斯图加特大学的 Hector SLAM(Simultaneous Localization And Mapping)算法的源代码。Hector SLAM是一种适用于移动机器人定位和建图的开源算法,尤其适用于低计算资源的硬件...
"基于Hector SLAM算法的全场景自动驾驶护士床设计" 本文档概括了基于Hector SLAM算法的全场景自动驾驶护士床设计,旨在解决医院中的病床及轮椅都不具有自动行驶的功能的问题。该设计采用ROS机器人操作系统和激光...
根据提供的文件内容,本教程涵盖的ROS相关知识点如下: 一、ROS简介 1. ROS定义:机器人操作系统(Robot Operating System,ROS)是一个用于机器人的开源元操作系统,提供了一系列工具、库、约定,用于帮助软件...
在包hector_slam仓库被释放到noetic运行发行版/usr/local/bin/bloom-release hector_slam --ros-distro noetic上Mon, 12 Apr 2021 17:51:56 -0000 这些软件包已发布: hector_compressed_map_transport hector_...
标题 "hector-urquijo.github.io:信息存储库" 暗示这是一个个人或项目的网页源代码存储库,很可能托管在GitHub上。这个存储库是Hector Urquijo的个人网页,它可能包含了关于他的个人信息、项目展示、博客文章或者...
GMAPPING是最早被广泛使用的开源SLAM算法之一,由Grisetti等人在2007年提出的。该算法基于概率框架,采用贝叶斯滤波方法,特别是扩展卡尔曼滤波(EKF)进行状态估计。GMAPPING利用扫描匹配技术来更新机器人位置,...
HECTOR 9000最低要求- RaspberryPi 3- Debian bases Linux (to use installscript)在RaspberryPi上安装首先,您必须克隆Hector的github回购git clone https://github.com/H3c702/Hector9000.git该存储库不包含前端。...
2. **索引设计**:在Hadoop的SQL引擎中,虽然索引机制不同于传统的RDBMS,但可以创建辅助表或使用Hive的索引功能来加速查询。 3. **查询优化**:编写高效的SQL查询,避免全表扫描,利用WHERE子句筛选数据,减少JOIN...