标签: hbase

如何从Hbase读取数据?

您好我在那里使用SQL,但我需要从HBase表中读取数据.对此的任何帮助都会很棒.一本书或者可能只是从表中读取的一些示例代码.有人说使用扫描仪可以解决问题,但我不知道如何使用它.

java hbase

6
推荐指数
2
解决办法
3万
查看次数

加速HBase读取响应

我在Amazon XLarge实例(16Gb RAM,4核CPU)上部署了4个节点HBase v0.90.4-cdh3u3集群,其中8Gb堆-Xmx分配给HRegion服务器,2Gb用于数据节点.HMaster\ZK\Namenode位于单独的XLarge实例上.目标数据集是1亿条记录(每条记录是10个字段,100个字节).基准测试从并行100个线程同时执行.

与YCSB团队在YCSB论文中所取得的成绩相比,我对阅读延迟感到困惑.它们的吞吐量高达7000 ops/sec,延迟为15 ms(第10页,读取延迟图表).在90%读取/ 10%写入工作负载时,我无法获得高于2000 ops/sec的吞吐量.写入非常快,禁用自动提交(响应在几毫秒内),而读取延迟平均不低于70毫秒.

这些是我使用的一些HBase设置:

  • hbase.regionserver.handler.count = 50
  • hfile.block.cache.size = 0.4
  • hbase.hregion.max.filesize = 1073741824
  • hbase.regionserver.codecs = LZO
  • hbase.hregion.memstore.mslab.enabled =真
  • hfile.min.blocksize.size = 16384
  • hbase.hregion.memstore.block.multiplier = 4
  • hbase.regionserver.global.memstore.upperLimit = 0.35
  • hbase.zookeeper.property.maxClientCnxns = 100

您建议使用哪些设置来查看\ tune以加快HBase的读取速度?

benchmarking hbase latency database-performance ycsb

6
推荐指数
1
解决办法
4084
查看次数

如何在hbase中向列族添加列

我是hbase的新手.您能告诉我如何将列添加到列族中.我有这样的数据:

{
name: abc
addres: xyz
}
Run Code Online (Sandbox Code Playgroud)

我有一个列家庭人员的表测试.如何将姓名和地址作为列添加到此人.请在hbase命令行以及java中显示.

java command-line hbase

6
推荐指数
2
解决办法
3万
查看次数

如何过滤掉给定列的行(非空)?

我想用过滤器进行hbase扫描.例如,我的表有列族A,B,C,而A有一列X.有些行有X列,有些则没有.如何实现过滤器以过滤掉列X的所有行?

null hbase out filter

6
推荐指数
1
解决办法
7718
查看次数

HBase RowMutations替换行的所有列

我有一个HBase(v0.94.7)表,其中包含一个列族,并且随着时间的推移会添加列.这些列被命名为它们创建的时间戳,因此除非我查询该行,否则我不知道它具有的所有列.

现在给定一行,我想原子地删除此列族的所有现有列,并添加一组新的列和值.

所以我想到使用HBase的RowMutations,如:

RowMutations mutations = new RowMutations(row);

//delete the column family
Delete delete = new Delete(row);
delete.deleteFamily(cf);

//add new columns
Put put = new Put(row);
put.add(cf, col1, v1);
put.add(cf, col2, v2);

//delete column family and add new columns to same family
mutations.add(delete);
mutations.add(put);

table.mutateRow(mutations);
Run Code Online (Sandbox Code Playgroud)

但是这段代码最终做的只是删除列族,它不会添加新列.这种行为有望吗?

如果是这样,那么我如何实现我的目标,即用一组新的列原子替换列族的所有列?

以下是相同的测试用例:

import junit.framework.Assert;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableExistsException;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import java.util.NavigableMap;

public class …
Run Code Online (Sandbox Code Playgroud)

hbase atomicity

6
推荐指数
1
解决办法
2364
查看次数

HBase客户端的SocketTimeoutException问题

我们正在开发一个场景,我们需要在插入之前检查记录的存在.如果记录已经存在,我们不再插入它.我们正在分批进行.首先,我们创建一批获取,以查看我们要插入的记录的存在.当表大小较小且非常间歇时,不会出现此问题.Get的建议批量大小是多少.而什么是插入前检查记录的存在,最好的方法?感谢您的回复..

这是堆栈跟踪..

java.util.concurrent.ExecutionException: java.net.SocketTimeoutException: Call to b16-pf-dv-093.abc.com/10.106.8.103:60020 failed on socket timeout exception: java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for read. ch : java.nio.channels.SocketChannel[connected local=/10.106.8.133:41903 remote=b16-pf-dv-093.abc.com/10.106.8.103:60020] 
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) 
        at java.util.concurrent.FutureTask.get(FutureTask.java:83) 
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1604) 
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1456) 
        at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:757) 
        at org.apache.hadoop.hbase.client.HTable.get(HTable.java:726) 
        at org.apache.hadoop.hbase.client.HTablePool$PooledHTable.get(HTablePool.java:367) 
        at com.abc.psp.core.metering.util.HBaseClient.get(HBaseClient.java:263) 
        at com.abc.psp.core.metering.dao.MeteringHBaseDAOImpl.addMeteredRecords(MeteringHBaseDAOImpl.java:374) 
        at com.abc.psp.core.metering.dao.MeteringHBaseDAOImpl.addMeteredRecords(MeteringHBaseDAOImpl.java:342) 
        at HBaseTest.main(HBaseTest.java:32) 
Caused by: java.net.SocketTimeoutException: Call to b16-pf-dv-093.abc.com/10.106.8.103:60020 failed on socket timeout exception: java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for read. …
Run Code Online (Sandbox Code Playgroud)

hbase

6
推荐指数
2
解决办法
1万
查看次数

OLAP CUBE可以在HBase中完成吗?

有没有办法用它在HBase或OLAP中创建CUBE DIMENSIONS?我想用我的HBASE或HIVE创建CUBE DIMENSIONS类应用程序并将其与SSAS连接以用于报告目的,这可能吗?如果是soo,请指导我一些链接和代码.

我试图在hive中创建多维数据集视图,我想知道HBase是否可行.

谢谢...

ssas hadoop hbase hive olap-cube

6
推荐指数
1
解决办法
7245
查看次数

Hadoop中“ AM容器”中的AM是什么意思

在Hadoop中,“ AM容器”中的AM是什么意思?

关于MapReduce错误,有很多帖子,“两次由于AM容器而失败” ...“容器启动时出现异常:org.apache.hadoop.util.Shell $ ExitCodeException” ...但没有一个解决我的问题的我的HBase工作)。

我是一个初学者,我想从了解AM代表什么开始。我在网上找不到任何东西。

hadoop hbase mapreduce

6
推荐指数
1
解决办法
2840
查看次数

如何在HBase UI中清除死区服务器?

我从HBase集群中删除了一个regionserver.我从中删除了主机名 $HBASE_HOME/conf/regionservers,并重新启动了HBase集群,但是HBase UI仍然将删除的区域服务器显示为"死"区域服务器.

hbase shell中的'status'命令也将其显示为死区服务器.我该怎么摆脱它?

hadoop hbase

6
推荐指数
1
解决办法
7078
查看次数

多个colummnFamily和qualifierRange上的Hbase过滤器返回0行

单列上的过滤列表家庭工作,但多个columnFamily返回0行.问题陈述与如何将多个QualifierFilter应用于HBase中的行相同

但我不能使用SingleColumnValueFilter,因为列限定符是时间戳.所以我的过滤器看起来像:

    val master_filter_list = new FilterList()

    val outer_fl_A = new FilterList()
    val cf_filter = new FamilyFilter (CompareOp.EQUAL, new BinaryComparator("ac".getBytes))
    val qualifier_range = new ColumnRangeFilter(Bytes.toBytes(fromDate.getMillis), true, Bytes.toBytes(toDate.getMillis), true)
    val ac_fl = new ValueFilter(comparison_operator, new BinaryComparator(Bytes.toBytes(value.toString.toInt)))
    outer_fl_A.addFilter(cf_filter)
    outer_fl_A.addFilter(qualifier_range)
    outer_fl_A.addFilter(ac_fl)
master_filter_list.addFilter(outer_fl_A)

    val outer_fl_B = new FilterList()
    val cf_filter = new FamilyFilter (CompareOp.EQUAL, new BinaryComparator("t".getBytes))
    val qualifier_range = new ColumnRangeFilter(Bytes.toBytes(fromDate.getMillis), true, Bytes.toBytes(toDate.getMillis), true)
    val ts_fl = new ValueFilter(comparison_operator, new BinaryComparator(value.toString.getBytes))
    outer_fl_B.addFilter(cf_filter)
    outer_fl_B.addFilter(qualifier_range)
    outer_fl_B.addFilter(ts_fl)
    master_filter_list.addFilter(outer_fl_B)
Run Code Online (Sandbox Code Playgroud)

只从表中获得具有outer_fl_A AND outer_fl_B的行的正确方法是什么?

hbase

6
推荐指数
1
解决办法
189
查看次数