问题标签 [hfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
99 浏览

hbase - 何时删除或失效旧 Hfile 中对行键的引用?

hbase 将记录更新(对于行键 RK1)写入 Hfile。但是,较旧的 Hfile 之一将包含对此行键 RK1 的引用。对这个 RK1 的旧引用是如何以及何时失效的?

假设有 Hfile 包含 rowkey RK1 的记录。然后这个 RK1 被更新,这意味着这个更新被写入一个新的 HFile。包含引用 RK1 的旧 Hfile 必须无效。这是如何以及何时在 Hbase 中完成的?

谢谢。

0 投票
3 回答
244 浏览

hbase - Mapr-Db 批量加载在减速器端失败

处理减速器时批量加载失败,出现以下错误。我们在 M5 集群上运行 mapreduce,试图更新 m7 表。

hbase 版本是 0.98.12-mapr-1506。

Mapr-Db 表已启用批量加载。减速器处理所有数据,并且在批量加载时它会以某种方式失败。

请帮忙。

0 投票
2 回答
4329 浏览

hadoop - 如何将 HBase 表以 Parquet 格式移动到 HDFS?

我必须构建一个工具,它将我们的数据存储从 HBase(HFiles) 以 parquet 格式处理到 HDFS。

请建议将数据从 HBase 表移动到 Parquet 表的最佳方法之一。

我们必须将 4 亿条记录从 HBase 移动到 Parquet。如何实现这一点以及移动数据的最快方法是什么?

提前致谢。

问候,

帕迪普·夏尔马。

0 投票
1 回答
941 浏览

hbase - hbase NameError:未初始化的常量 IS_MOB

我是 hbase-0.98.18-hadoop2 的用户,当我尝试创建表时:

有一个错误:

但是我在 hbase-site.xml 中添加了以下行:

为了支持 Hfile version3。然而问题依然存在。我怎么解决这个问题?

0 投票
0 回答
108 浏览

hbase - 自动化 hbase 升级

我有一个带有独立 hbase 服务器的设备,它将数据存储在文件系统上。它正在运行 hbase 版本 0.94.17。这基本上是用来支持 Open TSDB 的。

我正在尝试自动化升级到 1.2.4 的过程。数据不包含任何 hfile v1。

当我运行以下命令时,

./hbase hfile -f 路径/到/hbase/data/files -m

我得到所有文件的majorVersion = 2。

我已经阅读了这份文件:https ://github.com/apache/hbase/blob/master/src/main/asciidoc/_chapters/upgrading.adoc

我需要对以下方面进行一些澄清:

  • hbase 控制的需要运行升级才能工作的 zookeeper - 它应该来自 0.94 版本本身还是 1.2.4 附带的 zookeeper 是否足够?- 我问这个是因为,当设备升级时,我将无法访问 0.94 hbase 二进制文件和服务

  • 我已阅读此答案: http ://apache-hbase.679495.n3.nabble.com/HFile-V2-vs-HFile-V3-td4060405.html#a4060408 - 这是否意味着 hfile v2 和 v3 兼容?1.2.4 可以与 hfile v2 一起运行吗?我知道 hfile v3 在 1.2.4 中默认打开 - 有没有办法强制 hbase 使用 hfile v2?- 如果我的数据没有额外的元标记字段怎么办?

  • 我想要的只是结转数据。是否有一种备份和恢复策略只能在系统上使用 1.2.4 并且系统中保留了 0.94 二进制文件的某些部分?

我仍然掌握这些事情的窍门,并且在做出决定之前我正在尝试收集尽可能多的信息。鉴于我的情况,如果我错过了什么,请告诉我。

0 投票
1 回答
146 浏览

hadoop - 关于如何通过 HFile 将协议缓冲区文件批量加载到 HBase 的任何想法?

这是我正在尝试做的事情:

将数据从 Hive 加载到由协议缓冲区序列化的 HBase 中。

我尝试了多种方法:

  1. 直接创建与 HBase 的连接并放入 HBase。这有效,但显然效率不高。

  2. 我从 S3 中的 Hive 导入 json 表并将它们存储为文本文件(由选项卡分隔),然后使用 importTsv 实用程序生成 HFile 并将它们批量加载到 HBase 中,这也可以。

但现在我想以更有效的方式实现这一目标:

从 S3 中的 Hive 表中导出我的数据,将它们序列化为协议缓冲区对象,然后生成 HFile 并将 HFile 直接挂载到 HBase 上。

我正在使用 Spark 作业从 Hive 读取数据,这可以给我 JavaRDD,然后我可以构建我的协议缓冲区对象,但我不知道如何从那里开始。

所以我的问题是:如何从协议缓冲区对象生成 HFile。我们不想将它们保存为本地磁盘或 HDFS 上的文本文件,如何直接从那里生成 HFile?

非常感谢!

0 投票
1 回答
598 浏览

java - 通过 HFile 将数据加载到 HBase 中不起作用

我写了一个映射器,通过 HFile 从磁盘加载数据到 HBase,程序运行成功,但是我的 HBase 表中没有加载数据,请问有什么想法吗?

这是我的java程序:

这是我的映射器类:

我已经在steve1集群中创建了表,但程序成功运行后得到了 0 行:

我试过的:

我尝试像在映射器类中一样添加打印输出消息,以查看它是否真的读取了数据,但打印输出从未在我的控制台中打印出来。我不知道如何调试它。

任何想法都非常感谢!

0 投票
1 回答
1743 浏览

hadoop - 无法为大型数据集运行 Spark 作业

我编写了一个 Spark 作业来读取 S3 中的 Hive 数据并生成 HFile。

这项工作在只读取一个 ORC 文件(大约 190 MB)时工作正常,但是,当我用它来读取整个 S3 目录时,大约 400 个 ORC 文件,所以大约 400*190 MB = 76 GB 数据,它不断抛出以下错误/堆栈跟踪:

我的集群足够大,可以处理它:(这已经验证过了)

它有 40 个节点、超过 800 GB 的可用内存、320 个 VCore。

这是我的Java代码:

主程序:

我试过的:

我在 Stackoverflow 上看到了最近的一篇文章。然后我设置了这个 builder.config("spark.shuffle.blockTransferService", "nio"); ,但仍然没有运气。

任何帮助是极大的赞赏!

0 投票
1 回答
951 浏览

java - Spark job failed due to not serializable objects

I'm running a spark job to generate HFiles for my HBase data store.

It used to be working fine with my Cloudera cluster, but when we switched to EMR cluster, it fails with following stacktrace:

My questions:

  1. What could cause the difference between the two runs? Version difference between the two clusters?
  2. I did research and found this post: then I added the Kyro parameters into my spark-submit command, now my command looks like below: spark-submit --conf spark.kryo.classesToRegister=org.apache.hadoop.hbase.io.ImmutableBytesWritable,org.apache.hadoop.hbase.KeyValue --master yarn --deploy-mode client --driver-memory 16G --executor-memory 18G ... but still, I got the same error.

Here's my Java code:

0 投票
1 回答
470 浏览

hbase - Cloudera CDH 5.7.2 / HBase:如何设置 hfile.format.version?

对于 CDH 5.7.2-1.cdh5.7.2.po.18,我正在尝试使用 Cloudera Manager 配置 HBase 以使用可见性标签和授权,如下面的 Cloudera 社区帖子中所述:

Cloudera Manager Hbase 可见性标签

使用 Cloudera Manager,我已成功更新以下属性的值:

  • hbase.coprocessor.region.classes:设置为 org.apache.hadoop.hbase.security.visibility.VisibilityController
  • hbase.coprocessor.master.classes:设置为 org.apache.hadoop.hbase.security.visibility.VisibilityController
  • hbase.security.authorization:设置为 true

不幸的是,无论出于何种原因,Cloudera Manager 都没有公开 hfile.format.version 变量,因此我无法将其设置为 3。

当我只更新了上述三个变量后重新启动 HBase 时,角色日志中会出现如下错误:

错误 org.apache.hadoop.hbase.coprocessor.CoprocessorHost:协处理器 org.apache.hadoop.hbase.security.visibility.VisibilityController 抛出 java.lang.RuntimeException:保持安全标签所需的最低 HFile 版本为 3。考虑相应地设置 hfile.format.version。

我很想相应地设置 hfile.format.version,但是......当它没有在 Cloudera Manager 中公开时,我该怎么做?例如,文件系统上是否有一些我可以修改的配置文件?Cloudera Manager 必须从某个地方获取当前设置。

谢谢!