- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法让批处理扫描仪只扫描特定行,当设置启动和停止键到相同的东西时我没有返回任何条目,当使用扫描仪时我得到这个异常:
"java.lang.IllegalArgumentException: Start key must be less than end key in range (Test : [] 0 false, Test : [] 0 false)"...
我在 Visual Studio 2010 中使用 C# 编写代码,并在项目中使用 Thrift(0.9.1.1 版)和 Accumulo(1.5.0 版)proxy.thrift 代码。
这是我的代码,一切都“有效”,但我没有从 client.nextK
class Program
{
static byte[] GetBytes(string str)
{
return Encoding.ASCII.GetBytes(str);
}
static string GetString(byte[] bytes)
{
return Encoding.ASCII.GetString(bytes);
}
static void Main(string[] args)
{
try
{
/** connect **/
TTransport transport = new TSocket("192.168.58.62", 42424);
transport = new TFramedTransport(transport);
TCompactProtocol protocol = new TCompactProtocol(transport);
transport.Open();
AccumuloProxy.Client client = new AccumuloProxy.Client(protocol);
Dictionary<string, string> passwd = new Dictionary<string,string>();
passwd.Add("password", "password");
var login = client.login("root", passwd);
/** connect end **/
/** Get all data from one "Row" **/
var bScanner = new BatchScanOptions();
Range range = new Range();
range.Start = new Key();
range.Start.Row = GetBytes("Test");
range.Stop = new Key();
range.Stop.Row = GetBytes("Test");
bScanner.Ranges = new List<Range>();
bScanner.Ranges.Add(range);
var scanId = client.createBatchScanner(login, "firstTable", bScanner);
var more = true;
while (more)
{
var scan = client.nextK(scanId, 10);
more = scan.More;
foreach (var entry in scan.Results)
{
Console.WriteLine("{0} {1}:{2} [{3}] {4}", GetString(entry.Key.Row), GetString(entry.Key.ColFamily), GetString(entry.Key.ColQualifier), GetString(entry.Key.ColVisibility), GetString(entry.Value));
}
}
client.closeScanner(scanId);
Console.WriteLine();
/** Get data end **/
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
Accumulo 1.5 的用户手册显示了这个代码片段,这与我正在做的相同(但在 C# 中):( http://accumulo.apache.org/1.5/accumulo_user_manual.html#_basic_table )
Range r = new Range(userid, userid); // single row
Scanner s = conn.createScanner("userdata", auths);
s.setRange(r);
s.fetchColumnFamily(new Text("age"));
for(Entry<Key,Value> entry : s)
System.out.println(entry.getValue().toString());
最佳答案
问题很可能是你的范围。在 Java API 中,您可以为单行构造一个范围,使用:
Range r = new Range("myRow");
在 thrift Proxy API 中,您只能将 Key 赋予 Range 构造函数,而不仅仅是 RowID(这也是 Java API 中的一个选项,但它是 Proxy API 中的唯一选项)。键代表单个条目,因此扫描:
R1:CF1:CQ1:CV1 -> R1:CF1:CQ1:CV1
只会对那个确切的条目进行扫描(如果您没有为表配置 VersioningIterator,则可能会扫描它的所有版本)。
所以,如果你想扫描“a”行中的所有条目,你不会像这样扫描:
"a":null:null:null(inclusive) -> "a":null:null:null(inclusive)
相反,您像这样扫描行 == "a":
"a":null:null:null(inclusive) -> "a\0":null:null:null(exclusive)
或者这个,对于 row startsWith "a":
"a":null:null:null(inclusive) -> "b":null:null:null(exclusive)
关于c# - Accumulo createBatchScanner 范围未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19055132/
我的虚拟机详细信息: Cloudera 快速入门 VM 5.5.0 VM = VM 工作站 12 播放器 Windows = Windows 10/64 位 Java = Java 1.8 当我运行“
我想为我的本地机器清除 accumulo 中的所有记录,并想删除在测试时创建的未使用的表。我发现可以从 accumulo shell 使用 delete table 命令,但是这将需要大量手动工作来删
我正在使用 Accumulo 1.6,并且希望通过 Nodejs 中的 Accumulo 代理客户端给定的 rowkey 来删除一些记录。 但是当我尝试将相同的行键放入deleteRows API 时
我在初始化 accumulo 时创建了一个实例,方法是调用 累积初始化 但现在我想删除该实例,并且我想创建一个新实例。 任何人都可以帮助做到这一点吗? 最佳答案 从 HDFS 中删除 $ACCUMUL
在我的系统中,Hadoop和Zookeeper正常工作。现在我刚刚配置了Accumulo。但是当我要通过以下方式初始化Accumulo时 累积初始 它显示以下错误。 [root@hydDev32 bi
我一直在尝试安装 Accumulo 并试用了几天,但它甚至在开始之前就已经备货了。我最终使用了安装了 Hadoop 和 Zookeeper 的 HortonWorks Sandbox。我按照 Accm
我想将流数据写入accumulo!。有任何用于累积写入数据的API。可以用python代替java吗? 最佳答案 通过BatchWriter实例化查看Connector。 Accumulo Thrif
有没有办法对扫描仪获得的条目进行排序?我遇到的问题是,我有后缀索引来减少重复的行 ID,并且当我扫描时,我没有得到完美的升序有序列表。例如,我得到如下所示的内容: RowId: 2013-08-05
我已将一些行插入到 Accumulo 的表格中。有些行是新创建的,有些行是更新的。 如何找到插入或更新到Java 中的累加表? def obj= jsonObject["obj"] for(entry
我正在努力学习 Accumulo。但我有几个问题无法直接找到: 首先,我们能否在不停机的情况下向现有的 Accumulo 系统添加新服务器?如果是,则新节点将由 master 安排其共享(DB 数据)
Accumulo 无法加载、删除或创建新表。我的默认用户是 root。 Master 和 tablet server 和 zookeeper 还活着。 早些时候我试图通过使用 accululo ini
我的 Accumulo 实例已损坏。当我启动我的实例时,它抛出了一个错误,指出我的元数据表已损坏。然后我从 hdfs 的 Accumulo 目录备份了我的数据,并在我的实例上做了一个初始化。我没有意识
./bin/accumulo shell -u root Password: ****** 2015-02-14 15:18:28,503 [impl.ServerClient] WARN : The
简而言之,我有一个客户想要将一堆 ASCII 文本文件(又名“输入文件”)中包含的数据摄取到 Accumulo 中。 这些文件是从不同的数据馈送设备输出的,并将在非 Hadoop/非 Accumulo
我一直在运行一个单节点 Accumulo 应用程序,只要客户端应用程序在同一台机器上运行,它就一直运行良好。现在我需要将客户端迁移到另一台机器,但运行应用程序会给出以下警告,不允许程序继续: WARN
我正在学习 Accumulo,似乎无法让 Range 中指定的结束键包含在内。我的代码如下。我尝试在 Range 中将 endKeyInclusive 显式设置为 true,但这没有帮助。 Batch
请问有没有办法让accumlo限制用户的扫描量?例如,每天只允许其他用户进行 10 次扫描。 最佳答案 Accumulo 有一个可插拔接口(interface) authentication和 tab
我想使用 GeoMesa(Accumulo 的 GIS 扩展)并使用 Docker 对其进行虚拟化,就像 this repo 一样。现在我想使用 Java 连接到 Accumulo 实例: Inst
我无法让批处理扫描仪只扫描特定行,当设置启动和停止键到相同的东西时我没有返回任何条目,当使用扫描仪时我得到这个异常: "java.lang.IllegalArgumentException: Star
当您向总大小超过设置缓冲区的 BatchWriter 添加 Mutations 集合时会发生什么? BatchWriter 是否只是说好的,我将处理我设置的内容,然后再处理其余的? 最佳答案 Accu
我是一名优秀的程序员,十分优秀!