在HBase shell中,帮助文件向我们展示了创建表时允许使用的几种语法:
create 'tableName', {NAME => 'colFamily', VERSIONS => 5 }
create 'tableName', {NAME => 'cf1'}, {NAME => 'cf2'}
create 'tableName', 'cf1', 'cf2', 'cf3'
create 'tableName', 'cf1', {SPLITS => ['1
请有人帮助我了解Hbase如何在内部工作
列的值是否可以引用另一个表的键
例如:
假设我有一个Student表,其中subjectId作为外键,Subject表的id作为主键,那么表示方式会是什么呢?
我们如何将学生和学科联系起来?有人请帮助我了解HBase的内部工作原理。
这是一件非常大的事情,在这里无法完全解释。请参考链接了解更多详细信息
一列的值是否可以引用另一个表的键?
列可以肯定地将另一行的键存储在同一个表或另一个表中。您必须从第一个表中读取该值,然后转到第二个表以获取该行(如果两行位
我正在学习HBase shell命令,对drop和delete表感到困惑
有人能评论一下删除表和删除表之间的区别吗
谢谢。没有区别。我推测这两个名字的原因是因为它是第一个创建的,并且使用了“删除”。然后,在创建shell时,人们意识到drop table tablename是摆脱表的标准方法*
但我确认(无论对其起源的猜测如何),通过查看以下内容,它们是相同的:
*但准确地说。。。它们并没有使用删除table tablename,而是在HBase shell中删除'tablename'。只是为了
我想使用以下内容:
List<Cell> cells = sourcePut.get(CfBytes, QualBytes);
List cells=sourcePut.get(CfBytes,QualBytes);
但它返回一个空列表,因为我没有指定正确的列族和/或限定符
对于我的源表,如何查看所有列族和限定符
我还没有创建HBase表,它已经可用。我找到了如下解决方案:
1.要获取列族,扫描表应该是可行的
2.要获取限定符,我使用了以下代码:
Get g = new Get(
当我在cacheRows=100或10000的情况下运行上述代码时,它会打印出来
总行数=480000
当我在cacheRows=100000的情况下运行上述代码时,它会打印出来
总行数=10090
cacheRows=10083打印480000
cacheRows=10084打印191595
cacheRows=10085打印20169
cacheRows=10086打印20170
cacheRows=10087打印20171
cacheRows=10088打印20172
cacheRows=
我有一个非常大的hbase/phoenix表,我正试图使用sqlline查询它。我得到以下例外情况。我尝试更改客户端和服务器上的各种设置:
phoenix.query.keepAliveMs
phoenix.query.timeoutMs
dfs.client.socket-timeout
我尝试将上述所有设置为6000000,但仍然得到相同的问题。有什么想法吗?最初的异常似乎是HBaseClient.CallTimeoutException
sqlline版本1.1.8
0:jdbc:pho
我正在尝试从Phoenix中的现有结构创建一个新表。Phoenix中是否有CREATE as Select语句。我正在努力,但他们失败了,只有以下例外
欢迎提出任何建议。提前谢谢
CREATE TABLE TEST AS (SELECT * FROM TEST_2 WHERE 1 =2);
org.apache.phoenix.exception.PhoenixParserException: ERROR 601 (42P00): Syntax error. Encountered &quo
我正在尝试使用ApachePhoenix获取Hbase中(“默认”)模式的表数据。我的请求机构如下:
{"request": "getTables","connectionId":"1875901652","schemaPattern":"default"}
响应中包含的行为空,否则将作为内部服务器错误返回。注意:我已经更改了每个请求的connectionId,但问题仍然存在。其他模式也是如此。只有“系统”模式才能获得数据。请告知原因和解决方法。提前谢谢
由于rowkey的设计,我需要执行一个regex扫描过滤器,据我所知,它扫描该表的整个rowkey集
我面临的问题是,默认情况下,限制是默认的callTimeout=60000,我正在超出该值
我一直在寻找解决方案,但到目前为止,我希望避免使用两种方法:
方法1:修改hbase-client.xm文件,增加以下值:
<property>
<name>hbase.client.operation.timeout</name>
<value&
我正在使用lucene的搜索系统。默认情况下,它不是分布式的,所以我正在考虑转向HBase或Hadoop之类的东西
像HBase或Hypertable这样的解决方案有内置搜索功能吗?或者我需要在它们上面实现Lucene吗?Lucene与像HBase或Hypertable这样的BigTable克隆非常不同。如果您只是在寻找分布式Lucene,那么您应该看看诸如Elastic Search或Katta之类的项目
Solr/Lucene还能够在集群上运行,但分区不是自动的。您必须手动创建碎片和副本,以
我需要对HBase表进行扫描,以便进行临时查询。目前我只使用一个节点。我想知道在多台机器上以分布式模式运行HBase是否会使它更快。目前,在m1.2大型EC2机器上扫描300万行大约需要5分钟。
欢迎提供任何有关如何加快扫描速度的想法。目前,我启用了scan.setCaching,这有很大帮助。不,添加节点不会加快扫描速度。HBase扫描是串行的,有几个原因
当您这样调用HTable.getScanner(scan)时,返回的是Result对象的迭代器——在调用next()项时,HBase实际上
我是HBase和OpenTSBD的新手。
我遵循了OpenTSDB手册中的所有步骤:
但是,当我进入最后一步时,出现以下错误:
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_07]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChann
流程是否对同一个表使用多个“创建”命令?它的语法是什么 答案是使用ruby列表:下面创建一个包含三个列族m、f、c的表“app”:
create 'app',['m','f','c']
语法如下:
create '<table name>' , '<column-family1>' , '<column-family2>' etc..
创建“”、“”等。。
创建具有多个列族和版本的Hbase表的语法如下:
create 'test', {NAME =>
我想在Cloudera CDH 5.2的HBase之上安装ApachePhoenix
我下载了Phoenix的最新版本(4.2.2),并将服务器jar文件放入每个区域服务器上的一个目录中(我没有修改主服务器)
然后,我将hbase env.sh文件更改为指向前缀为hbase\u CLASSPATH\u变量的文件
当我运行以下命令时:
hbase classpath
列表中报告了phoenix serer jar
在主计算机上,当我尝试使用/sqlline.py qourumserver时,出现
标签: Hbase
squirrel-sqlphoenix
我已经使用SQuirrel SQL client 3.6创建了hbase表。下面是我尝试过的问题-
create table test (mykey integer not null primary key, mycolumn varchar);
upsert into test values (1,'Hello');
upsert into test values (2,'World!');
create view "TEST" (ID BIGINT NOT NULL PRIMARY KEY
我一直在使用java和python测试table.put
在java中,可以将int或float值写入列中。使用happybase
table.put(line_item_key, {'allinone:quantity': quantity})
它爆炸了
TypeError:类型为“int”的对象没有len()
happybase不支持除字符串以外的任何内容,这是真的吗?在Hbase中,所有内容都是字节数组。没有任何奇特的数据类型,如int、string、float、double等。所以,每
我想在我的项目中实现实时消息处理的Storm。我观察到许多人使用“阿帕奇卡夫卡”和“风暴”
在我的项目中,客户端应用程序将向服务器端发送消息,服务器端应该对消息进行身份验证、处理并存储到HBase中。唯一的限制是消息不应该被丢弃,每一条消息都必须被持久化到HBase中,若处理该消息需要几分钟的时间,那个就没问题了
我想知道
卡夫卡和暴风雪一起使用是强制性的吗
在Storm中使用卡夫卡有什么好处
如果我不在《暴风雨》中使用卡夫卡会发生什么
请你告诉我卡夫卡的用法
没有必要将卡夫卡与暴风雪一起使用。
如何通过两个值(与列帐户id和时间戳相关联的值)从单个列族中筛选扫描
我已经提到了这一点,但我没有看到一个明确的方法来实现上述目标
是否可以将Tableau服务器连接到Hortonworks Apache Phoenix?在tableau桌面中,可以使用ODBC,但在tableu服务器中不存在此连接器。还可以将其连接到HBase?因为您通过ODBC成功地从Tableau桌面连接Tableau桌面,我建议您将数据源转换为摘录,然后将工作簿发布到Tableau服务器。
是,但这不是一个好的选择,因为Phoenix中的数据每10分钟更新一次。您是否尝试在Tableau服务器上创建计划以更新摘录?[链接]()
我有一个场景,在这个场景中,我们必须以拨号方式定期将HFiles加载到HBase表中
每个区域每次运行的文件大小可能在50到150 MB之间。这些负荷可能是每天12次,在某些情况下每15分钟一次
在进行测试时,我发现即使在区域中立即有3个以上的文件,也不会触发轻微压缩。这可能会导致问题出现,因为有很多文件为同一行键保存行
我已经看到压缩线程在10000秒(大约2小时45分钟)后被唤醒,开始压缩并将压缩任务放入队列
是否有任何配置可以告知在批量加载(completebulkload)写入3个或更多
有没有一种方法可以在sqoop命令中设置复合键--hbase行键。
类似于:--hbase行键column1,column2
另外,我们可以从1开始hbase中的键,并对mysql中的每一个新行条目自动递增它。当另一个sqoop进程运行时,我们可以提取最后一个max id,并从那里增加它本身。不幸的是,sqoop当前不支持您的任何一个请求。只能指定一列作为HBase的行键。我建议您在上创建一个新票证以请求此类功能
编辑:
通过SQOOP 1.4.4中的SQOOP-1038添加了使用多列作为行键导
我正在为我参与的一个项目使用TTL。
我知道,在功能方面,当我执行扫描时,我不会将过期数据取回。
我只是想知道过期数据(在主要压缩之间)的性能影响是什么。
我们有10分钟的TTL和大量收集(和过期)的数据,因此我想知道使用TTL是否是正确的方法,或者可能使用时间戳作为密钥的一部分,并执行实际上不包括过期范围的扫描。您可以在扫描时使用HBase筛选器来过滤掉HBase服务器端的过期行。从内存中,我不记得单元格时间戳是否可以用作筛选器表达式的一部分
如果是,您可以直接将它们与任何过滤器一起使用(我
标签: Hbase
database-schema
我想在HBase行中存储一个集合,现在的计划是简单地将字符串存储为列名,将一个伪0x01值存储为列值
例如,假设我想存储用户和他们阅读的书籍列表,因此我将userId作为行键,对于用户阅读的每本书,我将书籍名称存储为列名,字符串“1”存储为值
有更好的设计方法吗?您的方法通常是合理的。您可能还希望了解一下这是一种合理的方法,例如,将列表序列化为一个JSON列,或将每本书的一行作为前缀,并将该书作为复合键的第二部分-问题是您想用它做什么,以及您的读/写模式是什么
当我从远程系统连接hbase时,我会给配置提供Hmaster、zookeeper ip和端口号,然后只提供主机名(其中配置了Hmaster)。它没有连接
创建HTable对象时,控制台挂起
但是,当我在主机文件中指定RegionServer的所有ip地址时,就会连接相同的代码
我的问题是“我是否需要在主机文件中指定区域服务器的所有IP地址?”
请帮助我理解这一点
问候,
KG我认为您只需要提供Zookeeper主机和端口即可从hbase进行连接。
见下文
Configuration hadoop
我正在通过练习来学习HBase。我了解了如何从customWritableObject转换字节数组。我已经使用创建了一个字节数组
byte[]byteArray=WritableUtils.toByteArray(customWritableObject)
无法获取如何从byteArray将其转换回customWritableObejct。您可以通过在hbase列值中序列化对象,然后再次对其进行反序列化,然后将其类型转换为相应的类来轻松实现
有关更多详细信息,请参阅博客-
谢谢
我想在HBase中启用身份验证和授权。我阅读了他们的文档,其中说明可以使用Kerberos启用它,但我仍然无法找到一种正确的方法来实现它。我正在使用HBase Java API。请建议如何使用HBase的安全功能。请查看以下文档:
必须在服务器端(主服务器和区域服务器)和客户端的hbase-site.xml中添加配置属性
从代码的角度来看,这取决于您必须做什么。
您可以在kinit之后运行应用程序
或者可以使用AuthUtil类
ApachePhoenix允许创建跨区域服务器分发数据的服务器。e、 g
CREATE TABLE table (a_key VARCHAR PRIMARY KEY, a_col VARCHAR) SALT_BUCKETS = 20;
要使用此功能,必须选择多个盐桶。如何选择这个数量的盐桶?是否应基于区域服务器的数量?如果我计划以后添加更多区域服务器,该怎么办?HBase表分为多个区域。RegionServer可以容纳100个区域。因此,理想情况下,它应该取决于:
您希望数据中有多少随机分布?
存储文件和HFile之间的区别是什么
我有压缩的基本概念,即将存储文件合并在一起,以减少从磁盘搜索
这是正确的吗??有人能解释一下压实的具体过程和工作原理吗 存储文件和HFile是同义词,模棱两可地用于定义相同的概念
当某些内容写入HBase时,首先将其写入内存存储(memstore),一旦该memstore达到一定大小,它将被刷新到磁盘中的存储文件中(为了持久性,所有内容也会立即写入日志文件)。在磁盘上创建的存储文件(或HFiles)是不可变的。有时存储文件会合并在一起,这是通过一个称为压缩的
标签: Hbase
hortonworks-data-platformphoenix
我遵循文档,在Phoenix 4.2中创建:
CREATE VIEW "t20" ( pk VARCHAR PRIMARY KEY, "f2"."name" VARCHAR );
然后创建了一个索引:
create index idx on "t20" ("name");
(引用或取消引用的结果相同)
并获得:
ERROR 1029 (42Y88): Mutable secondary indexes must have the hbase.regionserver.wal.codec pr
现在我正在基于HBase和卡夫卡工作
我的要求是:
假设HBase数据库中存在一些数据。现在我需要捕获卡夫卡的数据库。在这里,我的HBase数据库就像一个生产者,当我在数据库/生产者中创建任何内容时,它会自动捕获到Kafka消费者
我遵循了许多链接,但我没有得到确切的解决方案。请给我建议,并提供一些基于要求的链接。如果您想了解更多信息,请与我联系。如果您想将数据库用作制作人,您可能需要查看Kafka Connect
它允许将外部来源的数据可靠地摄取到卡夫卡中
我能够在创建表时给出HBase表的TTL。如何在创建后更改表的TTL。是否可以在不禁用表的情况下在运行时更改TTL?
提前感谢:)
使用Hortonworks 2.6 HDP
凤凰城4.7版
HBase 1.2.1版您可以使用不同的TTL值再次执行create if not existsDDL。例如:
create table if not exists TEST_TABLE (...) TTL=86400
或删除TTL:
create table if not exists TEST_TAB
是否可以使用两个不同版本创建两个柱族。例如,对于表employee,两列族(个人、项目)。在这里,project column family包含了他的每周工作细节。项目列族应具有50个版本,个人列族应具有一个版本
我正在尝试使用flume将日志流式传输到hbase。我有一个正在运行的分布式flume设置和一个hbase集群;两者都使用同一个动物园管理员。Flume正在使用各种命令(文本、尾部、自定义水槽过滤器),但当我尝试在Flume shell或web UI中使用以下命令时:
exec config <node> 'tail("<sample file>")' '{ customDecorator => hbase("<table>","<row key&
我想将hbase中的记录从rowkey x扫描到rowkey y,我还想在这些扫描上指定一个过滤器,我知道当我们执行这样的操作时,我们会得到ResultScanner对象,有没有办法只获得结果的大小(在服务器端计算)
通常,我希望在mongo或sql中使用类似count()的操作,而无需迭代resultscanner
感谢您的帮助简单的方法是只请求可用的最小列,如果您为扫描提供了可接受的缓存,则该列可以正常工作
如果是大型客户端扫描,或者如果您想在RegionServer上执行所有操作,可以使
我访问了这么多链接,但找不到任何解决方案可以在hbase中创建多个表吗?如果可以,那么如何创建?现在不可能一次创建多个表。实现目前不支持此功能
作为替代方案,您可以创建一个表列表并在其中循环,在每次迭代中调用HBaseAdmin.createTableHTableDescriptor desc。基本上,您希望在同一区域中有多个表
这是不可能的,因为区域是表的一部分,而不是区域的一部分。
每个表被划分为多个区域,每个区域由一个区域服务器提供服务。
创建时,除非指定,否则每个表只有一个区域
HBas
此链接介绍了一种通过JavaAPI编写HBase的极好方法
如何从HBase读取数据
例如,我有一个属性名->文件,它提供了开始行和停止行(每行提供一个单独的开始行和停止行,可以在不同的服务器之间划分)
其他属性告诉我服务器名和表名。
可以任何请提供样品我,如何可以做到,我尝试了,但我不断得到不可序列化的错误
(这就是我试过的,)
任何帮助都将不胜感激。首先,您没有给出任何细节。没有人能帮助确定什么不是以这种方式序列化的
默认情况下,您在Spark中执行的函数所使用或引用的任何对象都必须是可序
我很难通过HBase REST创建带有协处理器的HBase表
hbase\u table\u ttt.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<TableSchema name="ttt" coprocessor="hdfs:///my_coprocessor-1.0.jar|com.mycompany.MyCoprocessor|1001|">
<ColumnSchema name="d" BLOCKCAC
上面的代码有一些奇怪的结果。HBase扫描程序确实会返回正确过滤的结果(通过列表中的两个过滤器),但是服务器不会在结果中传回filterOnA列。只有过滤器B的CF的KV存在
我尝试了很多方法,比如scan.addFamily(Constants.CF\u META),但这会导致扫描仪为空。默认情况下,扫描仪不应该返回满足两个过滤器的所有KV的所有列吗
我想知道复合过滤器逻辑是否足够“智能”来处理在不同位置/区域服务器的2个不同CF上应用的2个过滤器 SingleColumnValueFilte
如何为类TableName创建对象并传递truncateTable()方法所需的表名
下面是我试图执行的代码
HBaseAdmin admin = new HBaseAdmin(hbaseConfiguration);
admin.truncateTable(tableName, false);
使用TableName类的静态方法,如下所示
admin.truncateTable(TableName.valueOf("your_table_name"), true);
Hbase版本:1.1.3
凤凰版本:4.7.0
升级数据后,我能够使用phoenix从Hbase读取数据
在重新启动集群后,我发现以下错误
Sqlline日志
0: jdbc:phoenix:localhost> select count(*) from PRICEDATA;
16/06/01 12:39:39 WARN ipc.CoprocessorRpcChannel: Call failed on IOException
org.apache.hadoop.hbas
地位:
动物园管理员正在跑步
Hbase主机也正常运行,正在等待任何regionserver
现在,当我启动区域服务器时,我收到以下错误:
17/04/24 20:13:23 ERROR master.HMaster: Region server icosa4,60020,1493045002304 reported a fatal error:
ABORTING region server icosa4,60020,1493045002304: Unhandled exception: Una
我从Hbase 1.2.5上的源代码编译Apache Pig 0.16,如下所示:
ant jar -Dhadoopversion=23 -Dhbase95.version=1.2.5
A = LOAD 'test.csv' USING PigStorage('\t') as (id:chararray,note:chararray);
STORE A into 'hbase://test_me' using org.apache.pig.backend.hadoop.hbase.HBase
我们正试图制定我们的MPP解决方案,其中一个想法是坚持我们的Hadoop环境。所以排除了Hive、Impala等。我们关注HBase+Phoenix,是否有人在整体解决方案中使用HBase/Phoenix作为MPP?在这种情况下有什么问题吗?如果您定义了“MPP解决方案”所期望的确切功能,这会有所帮助。我猜你指的是大规模并行处理(但这并不明显),你进一步指的是MPP数据库(而不是用于天气预报的数字运算超级计算机)。但即使我猜对了,你需要什么样的数据库功能?@SamsonScharfrichter
我尝试在Geomesa HBase集群中存储一些数据,但没有空间索引。表架构如下所示。但是,我无法使用属性索引(在本例中为“nodeId”列)查询数据。我使用的导出命令是:geomesa hbase export-c atlas-f OSMWayNodesTest3-m 10-q“nodeId='node1'和geomesa hbase export-c atlas-f OSMWayNodesTest3-q”nodeId='node1'--histquery\u INDEX=attr:8:nod
我正在使用HDP Distibution。我启用了hbase复制。首先,它工作正常,但过了一段时间,一个RS复制中断,我在日志中发现:
regionserver.ReplicationSourceWALReader:未能读取复制项流259735-java.io.EOFEException:无法在EOF 259779之后查找-位于org.apache.hadoop.hdfs.dfInputStream.seek
我正在hbase中实现一个potput函数,我需要获取该函数中特殊列的值
class AccessControlCoprocessor extends BaseRegionObserver {
@Override
public void postPut(ObserverContext<RegionCoprocessorEnvironment> e,
Put put,
WALEdit edit,
我使用配置单元创建了以下HBase表,如下所示:
CREATE TABLE HBWeather (key struct<USAF:INT, WBAN:INT, `Date`:STRING>, TEMP INT)
ROW FORMAT DELIMITED
COLLECTION ITEMS TERMINATED BY '~'
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
目前,我正在将数据保存到Opentsdb,在某个时候,我遇到以下错误:
ERROR [AsyncHBase I/O Worker #13] RegionClient: Uncaught error during de-serialization of MultiAction(batch=...........
我进行了一些搜索,并在以下网站上找到了此问题的原因,该网站解释了原因并提供了修补程序文件:
问题是我找不到将修补程序文件应用于我的hbase-1.4.2的方法。这些修补程序只是Git d
在直接讨论这个问题之前,让我先介绍一下背景
我正在使用hbase作为我的nosql存储。我正在使用JavaHBase API与hbase进行接口。我正在存储用户信息,其中一列是用户执行的操作。每当用户执行某个操作时,我们都会在“操作”列中更新该特定操作,并随操作执行的时间更新“上次更新的时间”列。我的排看起来像
reverse_time_stamp#user_id(这里我在计算reverse_time_stamp=max_number_)-
当前(时间戳)
现在我的问题来了,我必须根据上次更新的
我在HBase中有一个person表,如下所示-
ROW_KEY COLUMN+CELL
dinesh column='details:code',value=dr-01
dinesh column='status:is_error',value=false
dinesh column='time:date_created',value=1553747864740
dinesh column='time:last_updated',value=15
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 32 页