标签: hbase

Django + 什么NOSQL在生产中使用最成熟?

我想将 Django 与 NOSQL 解决方案一起使用。是否有任何生产就绪的 NOSQL 解决方案可以与最新的 Django 1.3 很好地配合?

django hbase mongodb cassandra nosql

5
推荐指数
1
解决办法
1109
查看次数

HBase 对 RowKey 中通配符的支持

我想知道 HBase 是否支持 RowKey 扫描的通配符。类似于:

select * from TABLE where KEY like '%SEARCH_KEY%';
Run Code Online (Sandbox Code Playgroud)

据我所知,如果我们对行键的前缀有一定的了解,我们可以使用部分键扫描(并且 HBase 在该扫描方面非常有效)。但是,如果我们没有信息前缀(意味着搜索键可能位于 RowKey 中的任何位置),那么 Hbase 必须运行全表扫描,对吗?

另外,如何在 HBase 中形成这样的查询(代码或通过 shell)?

hbase

5
推荐指数
1
解决办法
6628
查看次数

通过 sock 代理的 Hbase API

有没有办法通过 sock 代理调用 HbaseAdmin/Htable?我想使用 localhost:1080 袜子代理映射到集群中的一个盒子,然后与 Hbase(Zookeeper、Master、RegionServer)交谈。有没有办法做到这一点?

谢谢。

hbase socks apache-zookeeper

5
推荐指数
1
解决办法
923
查看次数

在 scan.setCaching(cacheRow) 中设置较高值时,Hbase 扫描不返回所有行

    Scan s = new Scan();
    s.addFamily(Bytes.toBytes("cf1"));
    s.setCaching(cacheRows);
    s.setCacheBlocks(false);
    s.setStartRow("30.0.2.2\01441756800\0");
    s.setStopRow("30.0.2.3\01441756800\0");

    ResultScanner scanner = table.getScanner(s);

    long rows = 0;
    try {
        for (Result rr = scanner.next(); rr != null; rr = scanner.next()) {
            rows++;
        }
    } finally {
        scanner.close();
    }

    System.out.println("Total no of rows = " + rows);
Run Code Online (Sandbox Code Playgroud)

当我使用 cacheRows = 100 或 10000 运行上面的代码时,它会打印 Total no of rows = 480000

当我使用 cacheRows = 100000 运行上面的代码时,它会打印 Total no of rows = 10090

cacheRows = 10083 打印 480000

cacheRows = 10084 打印 …

hbase

5
推荐指数
1
解决办法
1245
查看次数

如何在 Hbase shell 中组合过滤器?

我想从 hbase 表中选择一些行,如何设置多重过滤器?看来这AND不起作用。我尝试过两种方法。

scan 'hbase_table', { FILTER => "(RowFilter(=, 'regexstring:39$') AND SingleColumnValueFilter ('binary:family','binary:qualifier', '=', 'value')" }
Run Code Online (Sandbox Code Playgroud)

或者

scan 'hbase_table', {LIMIT => 10, FILTER => "(RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), RegexStringComparator.new("39$")) AND SingleColumnValueFilter.new(Bytes.toBytes('family'), Bytes.toBytes('qualifier'), CompareFilter::CompareOp.valueOf('EQUAL'), Bytes.toBytes('value')))", COLUMNS => 'family:qualifier'}
Run Code Online (Sandbox Code Playgroud)

非常感谢

shell command hbase filter

5
推荐指数
1
解决办法
8909
查看次数

Hbase从单元格中提取值和时间戳

在 hbase 中,我有列数:名称、城市……
并非所有列都有值(例如,某些行只能有“名称”)

我想提取行中的所有列+列的时间戳(按特定顺序),如果值为空,我想返回空字符串。

我面临的问题是,我必须Result通过“family”和“qualifier”访问列(我无法通过索引访问,result.listCells().get(i)因为会跳过空值)

scan.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("name"));
scan.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("city"));

ResultScanner scanner = table.getScanner(scan);

for (Result result = scanner.next(); result != null; result = scanner.next()){

    byte [] valCity = result.getValue("personal data", "city"); //can't get timestamp using this
  //check if valCity null write ("") else write the value
  //next column... 
}
Run Code Online (Sandbox Code Playgroud)

java hbase

5
推荐指数
1
解决办法
4720
查看次数

如何在 HbaseTestingUtility 中更改 HBase 基本目录

我在 IntelliJ IDE 中运行 HbaseTestingUtility 时遇到问题,我可以看到以下错误可能是由于文件名太长造成的:

16/03/14 22:45:13 WARN datanode.DataNode: IOException in BlockReceiver.run(): 
java.io.IOException: Failed to move meta file for ReplicaBeingWritten, blk_1073741825_1001, RBW
getNumBytes()     = 7
getBytesOnDisk()  = 7
getVisibleLength()= 7
getVolume()       = C:\Users\user1\Documents\work\Repos\hadoop-analys\reporting\mrkts-surveillance\target\test-data\9654a646-e923-488a-9e20-46396fd15292\dfscluster_6b264e6b-0218-4f30-ad5b-72e838940b1e\dfs\data\data1\current
getBlockFile()    = C:\Users\user1\Documents\work\Repos\hadoop-analys\reporting\mrkts-surveillance\target\test-data\9654a646-e923-488a-9e20-46396fd15292\dfscluster_6b264e6b-0218-4f30-ad5b-72e838940b1e\dfs\data\data1\current\BP-429386217-192.168.1.110-1457991908038\current\rbw\blk_1073741825
bytesAcked=7
bytesOnDisk=7 from C:\Users\user1\Documents\work\Repos\hadoop-analys\reporting\mrkts-surveillance\target\test-data\9654a646-e923-488a-9e20-46396fd15292\dfscluster_6b264e6b-0218-4f30-ad5b-72e838940b1e\dfs\data\data1\current\BP-429386217-192.168.1.110-1457991908038\current\rbw\blk_1073741825_1001.meta to    C:\Users\user1\Documents\work\Repos\hadoop-analys\reporting\mrkts-surveillance\target\test-data\9654a646-e923-488a-9e20-46396fd15292\dfscluster_6b264e6b-0218-4f30-ad5b-72e838940b1e\dfs\data\data1\current\BP-429386217-192.168.1.110-1457991908038\current\finalized\subdir0\subdir0\blk_1073741825_1001.meta
   at     org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.moveBlockFiles(FsDatasetImpl.java:615)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.BlockPoolSlice.addBlock(BlockPoolSlice.java:250)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsVolumeImpl.addBlock(FsVolumeImpl.java:229)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.finalizeReplica(FsDatasetImpl.java:1119)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.finalizeBlock(FsDatasetImpl.java:1100)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver$PacketResponder.finalizeBlock(BlockReceiver.java:1293)
at org.apache.hadoop.hdfs.server.datanode.BlockReceiver$PacketResponder.run(BlockReceiver.java:1233)
at java.lang.Thread.run(Thread.java:745)
Caused by: 3: The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

知道吗,我如何指定 Hbasetestingutility 的基目录而不使用这个庞大的起始目录?

谢谢,

windows hbase scala intellij-idea hbasetestingutility

5
推荐指数
1
解决办法
1296
查看次数

存储传入流数据的最佳方式是什么?

对于通过 Spark Streaming 处理的数据的长期存储(多次写入,少量读取),哪个更好的选择:Parquet、HBase 还是 Cassandra?或者是其他东西?有哪些权衡?

hbase cassandra apache-spark parquet spark-streaming

5
推荐指数
1
解决办法
2727
查看次数

运行命令“hbase classpath”时出错

我想将 hbase 类路径添加到我的 spark 中,但是在运行hbase classpath命令时出现错误。

我在 env 中使用 java 1.8 在本地设置了 hadoop 3.2.0。

$ hbase 类路径

/usr/lib/hadoop/libexec/hadoop-functions.sh:第 2364 行:HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:无效的变量名称 /usr/lib/hadoop/libexec/hadoop-functions.sh:第 2459 行:HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS:无效的变量名错误:无法找到或加载主类org.apache.hadoop.hbase.util.GetJavaProperty

hadoop hbase

5
推荐指数
1
解决办法
680
查看次数

当我能够从 Kafka 恢复数据时的 HBase ASYNC WAL

我想优化我对 HBase 的使用以加快写入速度。我有一个任务从 Kafka 主题中读取,然后基于该主题写入 HBase。由于 Kafka 将记录所有要写入的内容,因此很容易从中恢复。我正在阅读“HBase High Perormance Cookbook”,并有以下说明:

请注意,这带来了关于何时使用 WAL 以及何时不使用的有趣想法。默认情况下,WAL 写入处于开启状态,并且数据始终写入 WAL。但是,如果您确定可以重写数据或少量丢失不会影响处理的整体结果,则可以禁用对 WAL 的写入。WAL 提供了简单而明确的恢复。这是默认情况下始终启用它的根本原因。在无法预料数据丢失的情况下,您应该将其保留为默认设置;否则,将其更改为使用 memstore。或者,您可以计划 DR(灾难恢复)

如何将此恢复配置为自动?我看到两个选项:

  1. 我在没有 WAL 的情况下写入 HBase(仅写入 memstore),并以某种方式通知写入丢失且未提交到磁盘。然后我回到 Kafka 日志并重播。或者
  2. 我在没有 WAL 的情况下写入 HBase(仅写入 memstore),并且经常从 HBase 收到通知,可以提交什么 Kafka 偏移量。

我该怎么做?

java hbase disaster-recovery apache-kafka

5
推荐指数
0
解决办法
189
查看次数