./start-hbase.sh-权限被拒绝后,HBase不运行?
我想运行HBase.我已经完全安装了hadoop,当我运行start-all.sh时,它可以正常工作,并给我这个输出: hduser@CSLAP106:/usr/local/hadoop/bin$ jps 11956 SecondaryNameNode 12046 JobTracker 12193 TaskTracker 11800 DataNode 11656 NameNode 12254 Jps 但是,当我想运行start-hbase.sh时,它给了我一些许可的错误我不明白为什么: hduser@CSLAP106:/usr/local/hbase/hbase-0.94.6.1/bin$ ./start-hbase.sh localhost: starting zookeeper, logging to /usr/local/hbase/hbase-0.94.6.1/bin/../logs/hbase-hduser-zookeeper-CSLAP106.out loc
18 2023-05-25
编程技术问答社区
有没有关于HBase上的Thrift的性能基准?
我有一个可能为HBASE编写大量数据的系统. 该系统由C ++编写,发现HBase具有其他语言的节俭接口. 我的问题是, 在HBase上节俭有任何性能基准? 与Java Native API最不利的级别是什么? 解决方案 我推荐有关此主题的最近两个博客文章: hbase +节俭绩效 +节省性能部分 hbase +节俭性能 +节俭性能部分 这两个帖子提供了使用HBASE Thrift的详细性能测量.
0 2023-05-23
编程技术问答社区
当使用HBase作为MapReduce的源时,我是否可以扩展TableInputFormatBase来为每个区域创建多个分片和多个映射器?
我正在考虑将HBase用作我的MapReduce工作之一的来源.我知道TableInputFormat指定每个区域的一个输入拆分(以及一个映射器).但是,这似乎效率低下.我真的很想一次在给定区域上工作.我可以通过扩展TableInputFormatBase来实现这一目标吗?你能指出我的例子吗?此外,这是一个好主意吗? 感谢您的帮助. 解决方案 您需要扩展输入图的自定义输入格式.您可以了解从答案到问题我想扫描大量数据(基于范围的查询),我在编写数据时可以做什么,以使扫描变得更快.如果数据处理时间比数据检索时间更大,这是一个好主意. 其他解决方案 不确定是否可以为给定区域指定多个映射器,但请考虑以下内容: 如果您认为一个映射器每个区域效率低下(也许您的数据节点没有像#CPU这样的资源),则可以在文件hbase-site.xml中指定较小的区域. 如果您想考虑更改默认配置选项的网站: http://hbase.apache.org/configuration.
2 2023-05-23
编程技术问答社区
调整使用底层HBase表的Hive查询
我在hbase中有一张桌子,假设" tbl",我想使用它来查询它 蜂巢.因此,我映射了一张桌子以如下: CREATE EXTERNAL TABLE tbl(id string, data map) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,data:") TBLPROPERTIES("hbase.table.name" = "tbl"); 查询类似: select * from tbl", "select id from tbl", "select id, data from tbl 真的很快. 但是查询 select id from tbl where substr(id, 0, 5) = "12345" select id from t
0 2023-05-23
编程技术问答社区
我应该在HBase中使用前缀过滤器还是行键范围扫描?
我不知道为什么我使用前换器来查询,为什么会很慢.有人可以解释哪种是查询HBase的最佳方法,谢谢. hbase(main):002:0> scan 'userlib',{FILTER=>org.apache.hadoop.hbase.filter.PrefixFilter.new(org.apache.hadoop.hbase.util.Bytes.toBytes('0000115831F8'))} ROW COLUMN+CELL 0000115831F8001 column=track:aid, timestamp=1339121507633, value=aaa
0 2023-05-23
编程技术问答社区
开始学习大数据的书籍
我想开始学习大数据技术.我想将来在这个领域工作.有人知道好书开始学习吗? hadoop,hbase. 初学者 - 中间的 - 高级 - 预先感谢 解决方案 我认为初学者的一个好开端将是大数据课程来自Coursera 例如,我已经学到了MapReduce Techonlology的基础知识. 其他解决方案 hadoop:hadoop:最终的指南,来自O'Reilly Media .它涵盖了与Hadoop,MapReduce,HDFS等有关的一切. 其他解决方案 除了Cloudera资源,我强烈建议您从 o'reilly : hadoop:确定指南 编程猪 编程蜂巢 HBase:确定指南 您还可以检查它的数据科学工具包 .
2 2023-05-23
编程技术问答社区
HBase如何在区域服务器之间划分表?
请告诉我如何在跨区域的HBase分区表. 例如,假设我的行键是0到10m的整数,我有10个egienservers. 这是否意味着第一区域服务器将用具有值0-10m的键存储所有行,第二个1M-2M,第三2m-3m,...第十亿 -10M -10M? 我希望我的行键成为时间戳,但是我案例大多数查询都适用于最新日期,所有查询都只能由一个egeionserver处理,这是真的吗? 或这些数据会以不同的方式传播? 也许我可以以某种方式创建比我拥有的区域服务器更多的区域,因此(根据给定的示例)服务器1的键为0-0,5m和3m -35m,这样我的数据将更加平等地传播,是这样可能的? 更新 我刚刚发现有选项hbase.hregion.max.filesize,您认为这会解决我的问题吗? 解决方案 wrt分区,您可以阅读Lars'博客张贴在HBase的架构或Google的Bogtable Paper上,HBase"克隆". 如果您的行键只是时间戳,则是的是
0 2023-05-19
编程技术问答社区
如何使用hbase协处理器来实现groupby?
最近,我学习了HBase协处理器,我使用端点来累积HBase表的一列.例如,HBase表名为" Pendings",其家族是"资产",我积累了"资产:量"的所有值.该表有其他列,例如"资产:customer_name".我要做的第一件事是通过"资产:customer_name"来累积"资产:金额"组的价值.但是我发现Groupby没有API,或者我没有找到它.您知道如何实现Groupby或如何使用HBASE提供的API? 解决方案 您应该使用端点来完成这项工作. 您在本文中有一个总示例: https://blogs.apache.org.org/hbase/entry/coprocessor_introduction . 您基本上需要添加的是附加行键和客户名称以形成新密钥" mykey".您应该保留最后一个见过的mykey的变量,当当前的mykey与上一个的mykey不同时,您应该及时发出及其总和并覆盖以前的mykey. . 您必须确保在客户端执行汇总,就像在
4 2023-05-18
编程技术问答社区
按HBase中的分组
我几乎对HBase一无所知.抱歉,基本问题. 想象一下,我的表有1000亿行,带有10个INT,一个DateTime和一个字符串列. HBASE是否允许查询该表并基于键(甚至复合键)对结果进行分组? 如果是这样,是否必须运行地图/减少作业? 您如何喂这个查询? HBase一般可以在表上进行实时执行类似的查询? 解决方案 HBase中的数据聚合与"实时分析"需求相交.虽然HBase不是为此类型的功能而构建的,但仍有很多需求.因此,这样做的方法数量将/将开发. 1)将HBase表寄存在Hive中的外部表格,并进行聚合.数据将通过HBase API访问,这不是那么有效. 用hbase配置HBASE 这是关于如何完成的讨论. 这是通过HBase数据进行分组的最强大方法.它确实暗示着乔布斯先生,但不是由HBase进行. 2)您可以写自己的MR Job使用HBASE数据,位于HDFS中的HFiles中.这将是最有效的方法,但并非简单,而您处理的数据将有些陈旧.这
2 2023-05-18
编程技术问答社区
如何在Pandas Python中让空值不被存储在HBase中?
我有一些示例数据如下: test_a test_b test_c test_d test_date ------------------------------------------------- 1 a 500 0.1 111 20191101 2 a NaN 0.2 NaN 20191102 3 a 200 0.1 111 20191103 4 a 400 NaN 222 20191104 5 a NaN 0.2 333 20191105 我想让这些数据存储在HBase中,然后使用以下代码实现. from test.db import impala, hbasec
0 2023-05-18
编程技术问答社区
Flink Hbase连接器:在Hbase水槽表中写入数据 : 无法为写入表创建水槽
我想在HBASE接收器表中写入数据,我有兼容Flink版本1.14.4的HBASE版本2.2.0 我定义了水槽hbase表,如下: sink_ddl = """ CREATE TABLE hTable ( datemin STRING, family2 ROW, family3 ROW, PRIMARY KEY (datemin) NOT ENFORCED ) WITH ( 'connector' = 'hbase-2.2', 'table-name' = 'test', 'zookeeper.quorum' = '127.0.0.1:2181' ) "
14 2023-05-16
编程技术问答社区
为什么HBase要使用墓碑式标记?为什么不直接删除它
根据HBase,它永远不会删除任何记录,而不是为此添加墓碑标记.我的问题是为什么墓碑?我们可以在重大压实之前收回记录吗?如果不是,将其标记为墓碑来保留删除记录的目的是什么? 解决方案 HBase数据文件HFILE是不可变的,当您发送DELETE命令时无法从中删除一个删除记录,因此它添加了删除键的另一个记录,当发生主要紧凑型键时,它会删除记录并将小型HFiles组合在一起,如果是小于HFILE的记录.必要的.这是一个设计决定.
8 2023-05-16
编程技术问答社区
org.apache.flink.table.api.ValidationException: Unable to create a sink for writing table 'default_catalog.default_database.hTable';
我试图将Flink 1.14.4与HBase版本2.2.14连接起来; 我被添加了HBase SQL连接器jar flink-sql-connector-hbase-hbase-hbase-2.2-1.15.2.2.2.jar,但对于版本2.2.x,因为这是jar的最后版本. 但是我有以下错误: py4j.protocol.Py4JJavaError: An error occurred while calling o1.executeSql. : org.apache.flink.table.api.ValidationException: Unable to create a sink for writing table 'default_catalog.default_database.hTable'. Table options are: 'connector'='hbase-2.2' 'table-name'='test' 'zookeeper.quorum'=
12 2023-05-16
编程技术问答社区
使用spark-submit为Spark Job设置HBase属性
在HBase数据迁移期间,我遇到了java.lang.IllegalArgumentException: KeyValue size too large 长期: 我需要在/etc/hbase/conf/hbase-site.xml中增加属性hbase.client.keyvalue.maxsize(从1048576到10485760),但我现在无法更改此文件(我需要验证). 在短期内: 我成功地使用命令: 导入数据 hbase org.apache.hadoop.hbase.mapreduce.Import \ -Dhbase.client.keyvalue.maxsize=10485760 \ myTable \ myBackupFile 现在我需要使用Spark-Submit 运行火花作业 什么是更好的方法: 以"火花"为前缀HBase属性. (我不确定这是可能的,如果有效的话) spark-submit \ --con
4 2023-05-16
编程技术问答社区
为什么我们要同时刷新HBase中的所有MemStores?
我在这里浏览一些HBase架构注释: https://https://mapr.com/blog/in-depth-look-hbase-architecture/看到它说 每个列家族有一个模子;当一个人满时,它们都会冲洗.它还节省了最后的书面序列编号,因此系统知道到目前为止的持续存在. 我的问题是两个方面. 为什么我们一次冲洗所有备忘录?我们不能只是冲洗完整的模式吗?假设我们有两个备忘录:1和2.如果1被冲洗量比未来获得的,我们仍然可以检查2在检查磁盘(hfiles)的2的专栏一家,对吗? "最后的书面序列编号"是什么意思?我正在尝试可视化潮红模止的发生方式,但也许视觉示例会有所帮助.假设我有MEMSTORE 1带有行键a,b和d,然后我冲洗它们.什么是"最后的书面序列编号"? 解决方案 让我们从HBASE处理操作的方式开始.当您执行写入HBase时,它将执行以下(简化视图): 附加KV写信给Wal fsync wal 将写入置于memstore
12 2023-05-16
编程技术问答社区
HBase: 如何删除区域
由于法律问题,我需要从HBase中删除旧数据. 我找到了一种使用我的标准以及将旧数据移至新区域的方法,但是有没有办法删除该区域? 其他想法如何实现目标? 解决方案 尝试 delete '.META.', 'ROW_FROM_META_WITH_YOUR_TABLE' 如果您不确定要删除在" .meta"上运行扫描的行.或将其值转储到文件中: echo "scan '.META.'"| hbase shell &> dump.txt 然后找到您的行并将其删除. 由于这将使您的区域带有"孔",因此请确保您运行hbase hbck PlatformData -repair来修复这些. 这是一个小Java代码段这样做,并从基础HDFS中删除文件. 其他解决方案 在诸如0.96之类的较新版本中,命令是: deleteall 'hbase:meta', 'YOUR_ROW' 其他解决方案 HBase Rowkeys可以通过删除表
14 2023-05-16
编程技术问答社区
Hbase是否有区域复制
我知道HBase具有WAL和HFILE的复制品,但所有这些都存储在HDF中为持久性.因此,HBase还将提供区域级别的复制品.我们知道区域包含BlockCache和memcache,如果只有一个区域实例处理请求,则HBase如何求解热点请求. 此外,如果只有一个区域实例,那么HBase总是一致性,对吗?因为所有读者只是从一个区域中阅读,所以他们总是看到相同的数据?谢谢! 解决方案 HBase的最新版本具有称为"区域复制"的功能. 对于表的每个区域,可以在不同区域服务器中打开多个复制品.默认情况下,区域复制设置为1,因此只部署了一个区域副本,并且与原始模型没有任何更改.如果区域复制设置为2个或更多,则主分配表的区域的副本.负载平衡器确保区域复制品未在同一区域服务器中和同一机架中共同托管(如果可能的话). 启用,在hbase-site.xml中设置hbase.region.replica.replication.enabled to true 创建具有高区域可
10 2023-05-16
编程技术问答社区
在HBase中存储和检索字符串数组
我已经阅读了此答案(如何将复杂的对象存储到Hadoop HBase中?)关于用HBase存储字符串阵列. 据说使用ArrayWritable类来序列化数组.使用WritableUtils.toByteArray(Writable ... writable)我将获得一个可以存储在HBase中的byte[]. 现在,当我尝试再次检索行时,我会得到一个byte[],我可以以某种方式再次转换为ArrayWritable. 但是我找不到这样做的方法.也许您知道答案,或者我在根本上做错了我的String[]? 解决方案 您可以应用以下方法来恢复ArrayWritable(从我的早期答案中获取,请参阅在这里). public static T asWritable(byte[] bytes, Class clazz) throws IOException { T result = null
14 2023-05-16
编程技术问答社区
Hbase和BigTable的区别是什么?
谁能告诉我Apache HBase数据库和Bigtable有什么区别?还是一样? 哪一个支持关系(如果有)? 如果他们是大搜索者,有什么区别? 解决方案 它们是相似的,但不一样! Bigtable最初于2005年发布,但不是 直到2015年为止.数据在2008年初次发布. 一些相似之处: 两者都是nosql.这意味着两者都不支持加入,交易,打字列等 两者都可以处理大量的数据 - pB尺度!这是由于线性水平缩放的支持. 两者都强调高可用性 - 通过复制,版本化. 两者都是无模式的:您可以创建表并添加列族或列. 两者都有大多数流行语言的API -Java,Python,C#,C ++.支持语言的完整列表有所不同. 两者都支持Apache HBase Java的API:在Apache HBase的成功之后,Google为Bigtable提供了对HBase类似API的支持,但有一些限制 - 请参见 api差异. 一些差异: Apache HBase
16 2023-05-16
编程技术问答社区