Tag: hbase

如何在HBase中实现分页?

我是Hbase的新手,我需要使用Java和Jersey以及Hbase作为我的数据库来实现分页。 我需要一些帮助,我怎样才能实现与Hbase的分页,因为数据将在不同地区之间分配。 我想每页显示1000条记录。 请告诉我如何在不使用任何filter的情况下实现此目的。 真的很感激。

不推荐使用HTable(config,tablename)类型。 有什么用呢?

我可以使用什么代替HTable(config,tablename) ? 不推荐使用此方法。 在每个例子中,我都可以找到他们使用的这个或另一个Constuctor,它也被弃用了。

测试java HBase连接

我正在尝试使用HBase Java API将数据写入HBase。 我通过Ambari安装了Hadoop / HBase。 以下是当前配置的配置方式: final Configuration CONFIGURATION = HBaseConfiguration.create(); final HBaseAdmin HBASE_ADMIN; HBASE_ADMIN = new HBaseAdmin(CONFIGURATION) 当我尝试写入HBase时,我会检查以确保该表存在 !HBASE_ADMIN.tableExists(tableName) 如果没有,请创建一个新的。 但是,似乎在尝试检查表是否存在时会抛出exception。 我想知道我是否没有正确连接到HBase …是否有任何好方法来validation配置是否正确以及我是否连接到HBase? 我得到的例外情况如下。 谢谢。 java.lang.RuntimeException: java.lang.NullPointerException at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:209) at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:288) at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:268) at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:140) at org.apache.hadoop.hbase.client.ClientScanner.(ClientScanner.java:135) at org.apache.hadoop.hbase.catalog.MetaReader.fullScan(MetaReader.java:597) at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:802) at org.apache.hadoop.hbase.catalog.MetaReader.tableExists(MetaReader.java:359) at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:287) at org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:301) at com.business.project.hbase.HBaseMessageWriter.getTable(HBaseMessageWriter.java:40) at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:59) at com.business.project.hbase.HBaseMessageWriter.write(HBaseMessageWriter.java:54) […]

如何在类路径中包含hbase-site.xml

我目前正在尝试使用我的HBase代码来使用我的hbase-site.xml中指定的设置。 它似乎使用默认设置而不是hbase-site.xml配置文件中指定的设置。 我更新了文件后重新启动了HBase集群,但它仍然没有使用我更新的配置文件。 我使用的集群是2个节点,其中一个是主节点。 两个节点上的配置文件都将主节点的IP指定为zookeeper仲裁。 我认为问题是我的hbase-site.xml中指定的设置没有被使用,因为如果我通过代码将zookeeper仲裁设置为与我的hbase-site.xml中相同的值,代码运行正常,但第二个节点不能如果未通过代码指定仲裁,请联系主服务器。 config = HBaseConfiguration.create(); config.set(“hbase.zookeeper.quorum”, masterNodeIP); 我非常感谢有关如何将hbase-site.xml包含到我的代码的类路径中的说明或链接。 我在Windows机器上使用Eclipse进行开发,并在Linux集群上安装了HBase环境。 由于依赖性,我通常使用Eclipse来编译代码。 理想情况下,我希望群集中的每个节点都使用自己的配置文件。 提前致谢!

如何从Hbase读取数据?

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

hbase-site.xml中的zookeeper仲裁设置究竟是什么?

hbase-site.xml中的zookeeper仲裁设置究竟是什么?

如何在HBase客户端应用程序中抑制INFO日志?

我正在编写一个访问HBase的Java控制台应用程序,我无法弄清楚如何摆脱所有恼人的INFO消息: 13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT 13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:host.name=10.1.0.110 13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:java.version=1.7.0_15 13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation 13/05/24 11:01:12 INFO zookeeper.ZooKeeper: Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/Home/jre 等等… 我从客户端代码本身尝试了几个不同的东西,但没有一个明显的方法对我有用。 这是一个不起作用的例子: Logger log = Logger.getLogger(“log4j.logger.org.apache.zookeeper”); log.setLevel(Level.WARN);

连接到远程HBase实例

我有一个在ubuntu VM上运行的HBase-0.98.3-hadoop2实例,我无法使用以下代码连接到它(创建HTable实例时主线程卡住了): Configuration config = HBaseConfiguration.create(); config.set(“hbase.zookeeper.quorum”, “192.168.56.101”); HTableInterface usersTable = new HTable(config, “users”); 这是我在控制台中得到的 SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6, 1.7] SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details. 14/06/14 12:40:05 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.4.3-1240972, built on 02/06/2012 10:48 GMT 14/06/14 12:40:05 INFO zookeeper.ZooKeeper: Client environment:host.name=EL-OUED 14/06/14 12:40:05 […]

扩展Hadoop的TableInputFormat以使用用于分发时间戳键的前缀进行扫描

我有一个hbase表,其密钥是一个带有一个字节随机前缀的时间戳,用于分发密钥,因此扫描不会热点。 我正在尝试扩展TableInputFormat以便我可以在带有范围的表上运行单个MapReduce,为所有256个可能的前缀添加前缀,以便扫描具有指定时间戳范围的所有范围。 我的解决方案不起作用,因为它总是似乎扫描最后一个前缀(127)256次。 必须在所有扫描中共享某些内容。 我的代码如下。 有任何想法吗? public class PrefixedTableInputFormat extends TableInputFormat { @Override public List getSplits(JobContext context) throws IOException { List splits = new ArrayList(); Scan scan = getScan(); byte startRow[] = scan.getStartRow(), stopRow[] = scan.getStopRow(); byte prefixedStartRow[] = new byte[startRow.length+1]; byte prefixedStopRow[] = new byte[stopRow.length+1]; System.arraycopy(startRow, 0, prefixedStartRow, 1, startRow.length); System.arraycopy(stopRow, 0, prefixedStopRow, 1, […]

Hbase客户端无法与远程Hbase服务器连接

我为远程服务器编写了以下hbase客户端类: System.out.println(“Hbase Demo Application “); // CONFIGURATION // ENSURE RUNNING try { HBaseConfiguration config = new HBaseConfiguration(); config.clear(); config.set(“hbase.zookeeper.quorum”, “192.168.15.20”); config.set(“hbase.zookeeper.property.clientPort”,”2181″); config.set(“hbase.master”, “192.168.15.20:60000”); //HBaseConfiguration config = HBaseConfiguration.create(); //config.set(“hbase.zookeeper.quorum”, “localhost”); // Here we are running zookeeper locally HBaseAdmin.checkHBaseAvailable(config); System.out.println(“HBase is running!”); // createTable(config); //creating a new table HTable table = new HTable(config, “mytable”); System.out.println(“Table mytable obtained […]