- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这样的 GIS 数据 -
'111, 2011-02-01 20:30:30, 116.50443, 40.00951'
'111, 2011-02-01 20:30:31, 116.50443, 40.00951'
'112, 2011-02-01 20:30:30, 116.58197, 40.06665'
'112, 2011-02-01 20:30:31, 116.58197, 40.06665'
第一列是 driver_id
,第二个是 timestamp
, 第三个是 longitude
&第四个是latitude
.
我正在使用 Flume 摄取此类数据,我的接收器是 HBase(类型 - AsyncHBaseSink
)。
默认情况下,HBase 将 rowkey 分配为第一列(如 111)。我想创建一个复合行键(例如前两列 111_2011-02-01 20:30:30 的组合)。
我尝试将所需的更改放入 ' AsyncHbaseLogEventSerializer.java
' 但他们没有反射(reflect)出来。
请建议我该怎么做。
最佳答案
复合键应该在 AsyncHbaseSerializer 中工作
下面是示例代码片段。
在类级别声明privae List<PutRequest> puts = null;
/**
* Method joinRowKeyContent. (with EMPTY string separation)
*
* Joiner is google guava class
* @param objArray Object...
*
* @return String
*/
public static String joinRowKeyContent(Object... objArray) {
return Joiner.on("").appendTo(new StringBuilder(), objArray).toString();
}
/**
* Method preParePutRequestForBody.
*
* @param rowKeyBytes
* @param timestamp
*/
private void preParePutRequest(final byte[] rowKeyBytes, final long timestamp) {
// Process
LOG.debug("Processing ..." + Bytes.toString(rowKeyBytes));
final PutRequest putreq = new PutRequest(table, rowKeyBytes, colFam, Bytes.toBytes("yourcolumn"), yourcolumnasBytearray, timestamp);
puts.add(putreq);
}
Your get actions method looks like...
@Override
public List<PutRequest> getActions() {
//create rowkey like this
final String rowKey = joinRowKeyContent(driver_id, timestamp, longitude , latitude);
// call prepare put requests method here
final byte[] rowKeyBytes = Bytes.toBytes(rowKey);
puts.clear();
preParePutRequest(rowKeyBytes ,<timestamp>)
return puts;
}
关于hadoop - 使用 Flume Serializer 生成复合 hbase rowkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37696145/
我已将 PrimeFaces 从 5.1 final 升级到 5.2 final(社区版本)。我有一个 延迟加载如下(仅出于纯测试目的重现问题的最小示例)。
我想知道 HBase 是否支持 RowKey 扫描的通配符。类似于: select * from TABLE where KEY like '%SEARCH_KEY%'; 我知道如果我们对行键的前缀有
我想 reshape /融化一个非对称矩阵,以便当两个列单元格根据 rowKey 都非零时,任何两行都跨列求和。我尝试了各种选项,但没有一个有效。我正在寻找适用于大型不对称矩阵的通用解决方案。 #Du
Azure TableStorage RowKey 中是否存在受限制的字符模式?我通过大量搜索未能找到任何记录。但是,我在某些性能测试中得到了暗示此类行为的行为。 我在由随机字符组成的 RowKey
我正在使用 HBase 来存储 webtable 内容,例如 google 如何使用 bigtable。 供google bigtable引用 我的问题是 行键 ,我们应该如何形成它。 正如您在 PD
我需要从开始日期到结束日期获取产品的页面 View 。所以我设计了这样的 Hbase rowkey。 ProductId(md5)_productId_dateKey(yyyymmdd) d:pag
我想知道像下面这样的行键是否不好: 用户名-时间戳 这些行将从 MapReduce 作业中读取,并将使用 java 客户端 API 放置。此外,将使用 STARTROW、ENDROW 选择一个子集。
我需要架构设计方面的帮助。 我有数十亿个实体,每个实体都有一个静态生命周期。意味着一个实体毕业于状态 S1->S2->S3->S4;其中 S1 是开始,S4 是结束。 一个典型的查询是:显示在 Sn-
那么,让我们看看我能否简要解释一下我的问题。 假设我们有一个 HBase 表,其中包含每次访问迪斯科舞厅的信息:每个迪斯科舞厅都会记录其姓名、访问者的姓名以及访问者的日期。 (是的,这是一个愚蠢的例子
我将我的 key 保存为字节数组。在 HBase Shell 中,当我查看我的 key 时,我看到非十六进制值......我没有启用任何编码,我没有启用任何压缩。 这是一个示例...什么是 VNQ?什
我的实体是一个键值对。 90% 的时间我会根据键检索实体,但 10% 的时间我还会进行反向查找,即我将按值搜索并获取键。 键和值都保证是唯一的,因此它们的组合也保证是唯一的。 使用Key作为Parti
我正在使用 Azure 表存储,它提供的查询表存储的选项非常少。我通过以下方式将 RowKey 作为组合键: "b844be0d-2280-49f7-9ad7-58c36da80d22_2518908
我正在 Azure 表存储中存储一些日志。我已经确定了应该使用的 PartitionKey。但是,我无法确定应该使用什么作为 RowKey。如果我使用 Sql Server,我会使用自动递增整数。据我
我正在 Azure 表存储中存储一些日志。我已经确定了应该使用的 PartitionKey。但是,我无法确定应该使用什么作为 RowKey。如果我使用 Sql Server,我会使用自动递增整数。据我
我需要知道 Azure 存储表是否已将 RowKey 与 PartitionKey 分开索引,以便执行此类查询... 假设:我的表中有论坛帖子,其 PartitionKey = UserEMail、R
我正在使用 Linux 诊断监视附加到 Azure VM 的 VHD。使用 CLI 启用诊断时,监控数据最终位于 PublicConfig.json 中指定的表 (LinuxDiskMetric) 中
我打算在 HBase 中存储流式天气数据。我的行键是:[5 个字母的城市代码][时间戳] 其中时间戳是 [日期][HH:mm:ss.SSS 中的时间]我只有一栏叫做“温度”。所以样本数据看起来像: N
我创建 DynamicTableEntity 如下: string env = "envTest"; stting ver = "1.0"; siring id = "12356"; string m
我正在尝试创建一个通用类: public class ClassName { public T AccessEntity(string id) { return (fr
支持我有键/值,其中值是一个逻辑字符串列表,我可以在其中附加字符串。为了避免将单个字符串项插入队列导致重写整个列表的情况,我将使用多个键值对来表示它。 Key -> 值的元数据,例如长度和子键格式Ke
我是一名优秀的程序员,十分优秀!