我有一个包含8G数据的HBase表
当我在该表上使用部分键扫描来检索给定键的值时,我得到了几乎恒定的时间值检索
当我使用Get时,所花费的时间远远大于扫描。然而,当我查看代码内部时,我发现Get本身使用了扫描
有人能解释这个时差吗?正确,当您发出Get时,会在幕后进行扫描。确认:“每次发出get或扫描时,HBase扫描(sic)每个文件以查找结果。”
我无法确认你的结果,但我认为线索可能在于你的“部分键扫描”。在比较部分键扫描和get时,请记住,用于get的行键可能比用于扫描的部分键长得多
在这
我有一个包含12个节点的集群,目前在HBase表中保存了约2.5 TB的数据。当前的复制系数是3,我实际上不需要那个完整性级别,我想把系数降到2
除了更改每个节点上的/etc/hbase/hbase site.xml文件中的复制因子外,我还需要做些什么才能迁移到新的复制因子?我相信以下几点:
./bin/hadoop dfs -setrep -R -w 2 /
这将更改现有文件的复制。在配置中更改复制可能会更改新文件的复制
在拉尔斯·乔治的书中,我读到你不应该将一个主服务器定义为区域服务器。如果这是真的,我应该在conf文件夹中的“regionservers”文件中放入什么来进行伪分发?那里已经有一个本地主机。我是否也应该删除它并将其保留为空
我需要一个动物园管理员吗
我已经安装了3个运行的mashines集群,但是我在单节点onw上遇到了问题
问候,
您可以将localhost保留在regionserver文件中
在您的hbase-site.xml中具有以下配置条目
hbase.zookeeper.quorum
在我的HBase安装(分布式模式主机+2个区域服务器)中,外部zookeeper运行在Hadoop分布式安装(主节点+辅助主节点+两个数据节点)之上,我无法启动HBase主机。区域服务器启动时没有问题。HbaseMaster失败,出现错误消息:
2013-09-06 13:00:13,503 FATAL org.apache.hadoop.hbase.master.HMaster: Master server abort: loaded coprocessors are: []
2013-09-
我是HBase的新手。通过安装后,有时在HBase shell中扫描my table mytable会引发以下错误:
1.8.7-p357 :005 > scan 'Customer'
ROW COLUMN+CELL
hadoop在哪里存储hbase数据?是否存在hbase数据的物理路径?
我想使用sqoop将hbase数据导出到MS sql。我需要指定参数export dir。但是我找不到hbase数据的目录。有人能帮忙吗
谢谢HBase表数据存储在$base\u dir/data/data/$schema\u name/$tablename下
但是,不能在这些文件夹下复制随机sqoop数据。HBase以HFile格式存储数据。
您需要将数据写入HFiles。也可以使用hbase api将数据写入hbase
当我使用Spark从Hbase扫描表时,我遇到了以下警告信息,但这不是例外,我仍然能够从Hbase查询出数据:
WARN mapreduce.TableInputFormatBase:
Cannot resolve the host name for h006.test.test.local/10.1.1.6 because of
javax.naming.NameNotFoundException: DNS name not found [response code 3];
remaini
我刚刚开始在HBase上使用ApachePhoenix。我们有一个设置,当从集群节点中调用Phoenix时,Phoenix正在工作,我们可以干净地在表中进行CRUD。现在,我们需要一个在网络之外运行的应用程序,比如一个托管移动应用程序的系统能够查询Phoenix表。为此,我们正在尝试的一个选项是使用Phoenix查询服务器PQS。我已确保可以从外部网络访问端口8765,因此,当我们使用下面的CURL命令时,我们期望得到预期的结果:
[root@externalsystem~]curl-XPOST
我正在使用hbase-0.90.0。我在独立模式下运行它。当试图从“hbase shell”执行任何命令时,它给了我以下错误
hbase(主):003:0>状态“详细”
错误:org.apache.hadoop.hbase.ZooKeeperConnectionException:org.apache.hadoop.hbase.ZooKeeperConnectionException:org.apache.zookeeper.KeeperException$ConnectionLossExcep
我尝试在每个regionserver上运行Thrift(用于mapreduce输入以及将来的负载平衡)
启动Thrift服务器失败,但是,12/01/30 15:52:32 INFO client.HConnectionManager$HConnectionImplementation:getMaster尝试10次中的9次失败;不再重试。
有一个到主机的路由(pings成功),hbase master在默认端口上运行(并使用lsof-i:60000确认存在),但我仍然得到
12/01/30 15
有没有办法通过sock代理调用HbaseAdmin/Htable?我想使用localhost:1080 socks代理映射到集群中的一个框,然后与Hbase(Zookeeper、Master、RegionServer)对话。有办法吗
谢谢。我也有同样的要求,并且发现ZooKeeper客户端连接是通过NIO(org.apache.ZooKeeper.ClientCnxnSocketNIO)实现的。NIO不支持通过袜子连接
如果有源代码,请在ZooKeeper.java上签出getClientCnx
我是hbase的新手。我在Ubuntu 12.04中安装了hbase-0.98.5-hadoop2单节点。
我已完成hbase安装,并尝试在终端中运行hbase shell命令
indi60@arrasyid:/hack/hbase-0.98.5-hadoop2$ ./bin/hbase shell
Error: Could not find or load main class org.jruby.Main
我试着用谷歌搜索这个错误,但没有找到任何解决办法。请告诉我该如何处理此错误。我应该添
HBase版本:0.94.15-cdh4.7.0
我有一个非常简单的设置:
表ttt及数据
表带计数器的计数器(增量字段)
为ttt表格准备
在ttt中插入/更新行时,协处理器检查同一行的d:k列中是否存在值。
如果没有值,协处理器会增加计数器表中的计数器,并通过checkAndPut方法将其分配给d:k列
代码如下:
@Override
public void prePut(final ObserverContext<RegionCoprocessorEnvironment>
我有我的HBase数据,行键为siteid\u时间戳
行-列+单元格
001_1454578003995 column=hd:abc,时间戳=1454578173766,值=2
001_1454578003996 column=hd:def,时间戳=1454578173766,值=2
002_1454578003997 column=hd:ijk,时间戳=1454578173766,值=2
002_1454578003998列=hd:lmn,时间戳=1454578173766,值=2
站点ID可
标签: Hbase
phoenixsecondary-indexes
我在Apache Phoenix/hbase中创建了一个表
带字段的产品:店铺标识、SKU、计数
和车间标识上的主键,SKU
和计数的二级索引,SKU
select * from PRODUCTS
返回:
SHOP_ID | SKU | COUNT
1 | product1 | 10
但是
返回
COUNT | SKU
10 | product1
6 | product1
我想,次要索引并不关心upsert数据
标签: Hbase
hortonworks-sandbox
当我使用下面的代码执行JavaAPI代码来连接Hbase表时,我遇到了下面的错误
Java代码
错误
6/07/22 10:08:02错误zookeeper.ZooKeeperNodeTracker:检查“zookeeper.znode.parent”中配置的值。可能有错配
与主设备中配置的一个连接。
java.lang.IllegalArgumentException:检查在“zookeeper.znode.parent”中配置的值。可能与一个配置不匹配
我在母版上看到了。
位于org.apa
我在HDP2.3上安装了ApachePhoenix 4.4。有人知道如何查看表上创建的所有索引吗?就像MySQL有show index on table\u namequery一样。我找不到有关文档的帮助。如果您使用的是sqlline,默认情况下,sqlline与Phoenix捆绑在一起,您应该能够通过发出命令查看现有索引
!indexes ${schema_name}.${table_name}
你能评论一下为什么这个问题被否决了吗?
我有要更新其TTL的hbase表。在更改这些表以更新TTL之前,是否必须禁用这些表?请添加您的代码,以便我们可以帮助您。谢谢我将hbase表的TTL设置为324000,即5周,我必须将其更新为2419200,即4周。因此,我必须运行这个命令:alter'tablename',{NAME=>'d',TTL=>2419200};为此,我必须在alter命令之前运行disable'tablename'命令。这是我的问题。请阅读有关hbase.online.schema.update.enablecon
下一本书暗示有一种方法可以将两个列放在一个列中,而不使用列族。这是一个实际的HBase功能,还是仅仅是一个开发人员的hack,比如“在将两个值发送到HBase之前,将它们连接到一列中,我会记住,实际上我在其中放了两列”——hack?如果这是一个特性,那么它的语法是什么
“Hadoop应用程序体系结构由Mark Grover,Ted Malaska,
乔纳森·塞德曼和格温·沙皮拉(奥雷利)。”
[将两列foo和bar设置为一个记录时,]每个列都是逻辑的
HBase表中的记录在HBase HFile
当我试图从客户端连接到HBase群集时,遇到了一个奇怪的问题。客户端似乎正在获取连接的主机名和IP,无法连接到主机。以下是日志文件的相关部分:
12/09/27 13:28:41 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 10 failed; retrying after sleep of 1000
java.net.UnknownHostException: **?13006
标签: Hbase
jaasweblogic12c
我们正在尝试从部署到WebLogic 12c的WebApp连接到HBase服务器
WebApp使用包含HBase客户端连接代码的jar文件。此代码通过HTablePool实例连接到HBase,当发出HTable的第一个请求时,HTablePool的初始化如下:
public HTableInterface getTable(String tableName) {
if (pool == null) {
logger.info("Initializing connect
可以在HBase中创建的最大表数是多少?。如果我创建用于保存每小时数据的表。例如,24/8/3013 8:00pm数据将存储在24_8_2013_8中
它会影响HBase的性能吗 看来您误解了HBase。它不是用来这样使用的。当我们需要存储大量数据时,我们使用HBase。一个人在一小时内能获得多少数据?听起来不太明智
如果您确实有这样的需求,最好考虑一个好的模式。可能是一行/小时,或者适合您的用例的东西。但是每小时一张桌子对我来说似乎不合逻辑
我需要知道HBase表中新添加/更新/删除的行是什么。
假设我有一个单独的表,我在其中维护这个更改列表(即已更改的键),并且有一个标志告诉我这是一个已更改的行(0-更改,1-已处理更改的行)
还有另一个进程对了解更改的行感兴趣,一旦它处理了这些行,它就会将这些行更新为1。
在hbase中执行此操作的最佳策略是什么 插入行时,如果将timestamp设置为curr date,则可以使用TimestampFilter查找新添加的行。要跟踪特定行键/值的更改内容,可以使用hbase的版本功能
标签: Hbase
clouderacloudera-cdh
在CDH 5.3.0中,在将HBase作为服务添加之后,我需要将一些JAR复制到HBase_HOME/lib目录中。我无法在部署的集群中找到它。对于Cloudera CDH5,$HBASE\u HOME/lib位于/usr/lib/HBASE/lib/目录中。
我已成功使用此位置放置Phoenix library第三方罐。谢谢SashaEgorov,我会尝试。
让我们假设这个情况
我在hbase-site.xml中声明了一个协处理器
<property>
<name>hbase.coprocessor.region.classes</name>
<value>my.co.processor</value>
<property>
如果我以后在协处理器中发现一个bug,我可以在所有区域服务器中替换该jar文件而不重新启动整个hbase吗
如果我想添加另一个协处理器,那么我想我必须重新
要检索Hbase中特定列的值,我应该使用scan.addcolumn还是限定符筛选器
哪种方法性能更好?如果您已经知道限定符,则必须使用scan.addColumn()。如果您不确定限定符,并且希望将限定符与特定值进行比较(使用诸如较大、较小、相等等运算符),则必须使用限定符筛选器。限定符过滤器的HBase文档中提到了它-
如果要查找已知的列限定符,请直接使用Get.addColumn(字节[],字节[]),而不是筛选器
我正在尝试为我们的hbase设置设置unittests。但是,测试失败,错误消息为“java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/hbaseCommonteStinguility”
我尝试将各种包添加到gradle文件中(希望找到这个难以捉摸的类)。我的gradle文件如下所示:
compile 'org.apache.hbase:hbase-client:1.1.2'
testCompile 'org.apache.hba
我已经安装了HBase 1.0.2、zookeeper-3.4.6和java版本“1.7.0_80”
Zookeeper工作正常。但是当我尝试启动hbase外壳时,我得到了以下错误。谁能帮帮我吗。在这一点上,我真的很坚定。
节点/hbase不在ZooKeeper中。这本应该是主人写的。检查“zookeeper.znode.parent”中配置的值。可能与主机中配置的不匹配。
我的hbase-site.xml文件是,
hbase.rootdir
file:///usr/local/hbase
hb
标签: Hbase
hortonworks-data-platformhortonworks-sandboxcouchbase-java-api
我编写了一个hbase java客户端,如下所示
package hbase;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Conn
看起来我可以得到这样的中间键:
RegionServerServices rss = null;
final List<Region> onlineRegions = rss.getOnlineRegions(tableName);
for (Region region : onlineRegions) {
final List<Store> stores = region.getStores();
我想在Hbase扫描中包括endrow。哪条路更好
第一种方式:[开始,停止]
Filter filter = new InclusiveStopFilter(stop);
Scan scan = new Scan();
scan.setStartRow(start);
scan.setFilter(filter);
第二种方式:
(1) 。扫描[开始,停止)
(2) 。然后获取停止:
Get get = new Get(stop)
我更喜欢第一个选项,因为我们正在扫描对象本身中设置筛选条件
当我连接到远程HBase群集时,我看到很多这样的消息:
17/07/26 03:17:21 INFO RpcRetryingCaller:Call exception,trys=12,retries=31,start=158602毫秒前,cancelled=false,msg=com.google.protobuf.ServiceException:org.apache.hadoop.net.ConnectTimeoutException:10000毫秒超时,等待通道准备好连接。ch:java.
标签: Hbase
amazon-emrphoenixmapr
我已经使用Spark+Hbase和Phoenix开发了我的应用程序。我想优化运营成本。因此,我考虑使用MapR M7()增强apachehbase应用程序的可靠性。仍然不明白我为什么需要MapR。我已经部署了许多使用Cloudera的项目,但由于我们使用的是S3,所以使用EMR是有意义的。在Cloudera中使用Hbase时,我们没有遇到很多问题。因此,我们试图找出为什么我们需要MapR
但是为什么是MapR呢?有人能帮我理解吗?我想知道是否有人在Hbase的EMR中使用过MapR,并从中发现了
我们当前的进程从源获取数据,禁用、删除并重新创建HBase表,然后在表中加载新数据
因此,当表没有数据/数据不完整时,有一定的时间
有没有一种方法可以在HBase中重新加载表数据而不存在这种不一致性
我正在考虑用新数据创建一个stage表,并将stage表重命名为main表。这可以使用HBase中的快照功能来完成,但即使这样,也需要禁用、删除现有表,这仍然会导致该表“不透明”这基本上是一种错误的设计。应用程序不应定期删除和重新创建HBase表。您是否检查过HBASE TTL是否可以满足您的需求?
如何从zookeeper获取最后一次偏移时间?当使用暴风喷口阅读卡夫卡的信息时。上下文:Kafka连续获取消息,使用者读取一段时间,然后由于任何原因关闭,然后使用者仅读取最新消息,但不读取上次读取的偏移量
消费者阅读一段时间,然后由于任何原因关闭
不确定你到底指的是什么,因为消费者应该无限运行,除非它被明确停止
现在假设您正在使用storm的实现,有一个名为forcestartoffsetime的配置,用于强制喷口倒回到先前的偏移量。使用它的方法如下
spoutConfig.forceS
我使用c#的thrift接口从Hbase获取实时数据。我的问题是,过滤查询占用了hbase太多的响应时间。示例代码如下所示:
string TableName="testtable";
Dictionary<byte[], byte[]> attributes = new Dictionary<byte[], byte[]>();
TScan scanFilter = new TScan();
scanFilter.FilterString = ToByteArra
我有办法找到泰坦的顶点总数
迭代器迭代器=g.getVertices().Iterator()
然而,这是一个非常昂贵的操作,基本上它会遍历所有的顶点,我找不到更快的方法。我使用唯一索引和Hbase作为后端
干杯,这就是我担心的事情的本质。如果使用Faunus,至少可以并行计算,但是hadoop本身就很慢。你不会说你的图有多大,但是如果你看到的是数十亿个顶点,那么等待Faunus完成计数比迭代的结果永远不会返回要好
while(iterator.hasNext()) {
iterator
出于测试目的,我在OpenTSDB中使用以下命令制作了两个度量值:
./build/tsdb mkmetric temperatures
./build/tsdb mkmetric meterreadings
我还使用Java在这些度量中输入了数据点:
put temperatures 1356998400 23.5 room=bedroom floor=1\n
put meterreading 1430568000 32800 accumulationBehaviour=4 commodit
使用phoenix sqlline连接hbase。在SecureCRT终端上,我只能看到表的三列,超过10列。我想显示表中的所有列,以测试数据是否正常。是否应设置任何配置
0: jdbc:phoenix:10.35.66.72:2181:/hbase> select * from WL.MSGCENTER_PUSHMESSAGE;
+--------------+---------+------------------------------------------------------
我试图在HBase中实现盐分。我已经阅读了Apache电子书,并尝试执行一些命令,但我仍然不清楚如何实现它。例如,如何创建启用了SALT的表?您可以通过指定值为1到256的表属性“SALT_bucket”来创建具有SALT字节的表。如果您使用的是Phoenix,下面是一个如何执行此操作的示例:
创建表表(a_key VARCHAR主键,a_col VARCHAR)SALT_bucket=20
希望这能有所帮助。谢谢您的回复。我在一个网页上看到过类似的命令&我尝试过执行它,但没有成功。今天早上我又
Hbase RegionServer似乎是单个节点,不像Cassandra那样有复制节点。我知道当一个区域服务器关闭时,HMaster会将崩溃的RS上的区域分配给其他RS
但是新的RegionServer可以为崩溃的区域服务多长时间,如果时间太长,客户端不能等待太长时间,客户端将抛出异常甚至丢失数据,对吗?您要寻找的是HBase平均恢复时间
有一些文章在谈论它。基于此回答您的问题:
Hbase从故障中恢复需要多长时间
这取决于您的设置、hbase版本、硬件……
此过程有3个步骤:
确定区域服务器
我是HBase的新手,尝试在Ubuntu 14.04上配置HBase。配置和启动HBase后(以访问HBase CLI)。如果我运行任何HBase命令,就会得到节点/HBase不在ZooKeeper中。
请在下面找到我的hbase site.xml和zoo.cfg
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://loca
为了避免HBase中区域服务器的热点,建议避免顺序行键。其中一种方法是对行键的第一个字节加盐。我想在我的客户机代码中使用这种技术
假设我有n个区域服务器,每个区域服务器最多可容纳m个个区域n*m将是当时的区域总数
x,对于Q1,第一个字节的值将为1
我在HDFS位置有一个文本文件,我想使用unixshell脚本(bash概要文件)读取该文件。您可以在web上找到此特定用例的许多操作方法。这是最具规模的业务之一
#!/bin/bash
hdfs dfs -cat /your/path/in/hdfs > some_file_on_local_computer
您可以在web上找到此特定用例的许多操作方法。这是最具规模的业务之一
#!/bin/bash
hdfs dfs -cat /your/path/in/hdfs > some
我们的要求是按列对phoenix表进行分区,并从SPARK在分区级别覆盖记录。phoenix表中没有分区的概念,我们有salting,它将以随机方式分发数据和排序
我们可以使用
df.write.format(“org.apache.phoenix.spark”).mode(“overwrite”).option(“table”,tableToSave).option(“query”,“select*from”“,where”“”).option(“zkUrl”,zkUrl).save()
根据
我正在使用HBase-1.1和Phoenix-4.7。我在HBase中创建了一个表,插入了一个示例值,并尝试根据Phoenix中插入的值进行查询
我在HBase中使用以下查询来创建和插入表数据
create 'T1', {NAME => 'F1', IS_MOB => true}
put 'MOBPHOENIXTEST', '1', 'F1:value', 'Initial Value'
并创建了一个Phoenix表来查看HBase数据,如下所示
CREATE TABLE t1 (
我在下面的链接中看到,HBase不支持更新,这些更新表示HBase是一个“仅附加”存储
另外,我知道可以使用put命令更新HBase中的现有单元格值,只需遵循相同的语法并提及新值即可
例如,可以执行以下操作将city列的值从“Boston”更新为“Chicago”:
put 'emp','row1','personal:city','Chicago'
当上一行为时:
row1 column = personal:city, timestamp = 1418275907, value = B
是否有任何方法可以将hbase外壳中的扫描结果输出到文件?我假设这很容易,但我在文档中找不到任何东西。我知道这篇文章很老,但我自己也在搜索有关HBase的内容,并发现了它
我不知道这是否是最好的方法,但您可以使用HBase提供的脚本选项。只需打开一个shell(最好转到HBase的目录bin)并运行
其中foo是要扫描的表的名称。如果你打开myText,你会在那里看到结果。希望我能帮忙 另一个使用EOF here doc的选项,可能更可定制:
hbase shell <<EOF &g
我的一个Hbase区域服务器由于HDFS进入安全模式而脱机,或者由于安全模式(鸡蛋问题)而无法恢复联机,因此我修复了这个问题,并使区域服务器重新工作,但随后我无法再查询Hbase。我收到一个错误,NotServingRegionException:区域未联机:…
另一个类似的建议是从Zookeeper中删除一些条目,但这听起来像是一条潜在的危险路线,特别是因为我们的错误消息不匹配
这个问题的安全解决方案是什么?我的解决方案是简单地重新启动Hbase Master
(在Ubuntu w CDH4上
centos 7.0
我安装了以下软件
apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
hadoop-3.2.1.tar.gz
hbase-2.3.1-bin.tar.gz
配置
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 32 页