问题标签 [sequencefile]

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 回答
401 浏览

java - Hadoop SequenceFile 二进制安全吗?

我在 hadoop-1.0.4 源代码中阅读了 SequenceFile.java。并且我找到了sync(long)用于在 MapReduce 中将 SequenceFile 拆分为文件拆分时在 SequenceFile 中查找“同步标记”(在文件创建时生成 16 字节 MD5)的方法。

这些代码只是寻找包含与“同步标记”相同数据的数据序列。

我的疑问:
考虑到SequenceFile中的数据恰好包含与“同步标记”相同的16字节数据序列的情况,上面的代码会错误地将16字节数据视为“同步标记”,然后SequenceFile赢了'没有被正确解析?

我没有找到任何关于数据或同步标记的“转义”操作。SequenceFile 如何是二进制安全的?我错过了什么吗?

0 投票
1 回答
1515 浏览

hadoop - HBASE 导出实用程序创建的序列文件不可读

我尝试使用 HBase 导出工具将表传输到 HDFS。我试图hadoop dfs -text查看文件的内容集合。但是,我遇到了一个致命错误:

我是否需要集成任何配置以在我的 hadoop 运行时中包含该类?

0 投票
1 回答
1144 浏览

hadoop - 租约不匹配 LeaseExpiredException

我看过一些关于这个主题的帖子,但我无法解决我的问题。我正在使用 Hadoop 版本 Hadoop 2.0.0-cdh4.2.0 和 java 版本“1.7.0_09-icedtea”。我正在运行一个程序,该程序在一个简单的 mapreduce 示例中使用计数器来控制交互。我还使用序列文件来传递数据。代码很简单:它以一个数字开头,比如 3。映射器不会修改数字,而只是传递值;减速器每次运行时将数字减 1。如果数字大于零,则计数器增加。最终,数字必须减少到 0,并且程序应该在该点停止。但是,在第一次迭代后(在第二次迭代期间)我总是收到以下错误:

有人可以帮忙吗?谢谢你。

问候...

0 投票
0 回答
813 浏览

hadoop - 无法将化简器的输出写入序列文件

我有一个 Map 函数和一个 Reduce 函数,输出类 Text 和 IntWritable 的 kep-value 对。这只是 Main 函数中 Map 部分的要点:

这是我在 Main 函数中的 Reducer 部分,它将输出写入 HDFS

我如何让reducer改为写入序列文件

我尝试了以下代码但不起作用

编辑:这是我运行时得到的输出消息

0 投票
1 回答
2305 浏览

hadoop - 对象序列文件到 Hive

我们从存储在 NetCDF 文件中的一堆数据开始。从那里,编写了一些 Java 代码来从 NetCDF 文件创建序列文件。我们对代码的初衷了解不多,但是对于序列文件本身,我们已经能够了解一点。最终,我们正在尝试使用这些序列文件在 Hive 中创建表,但目前似乎无法这样做。

我们知道序列文件中的键和值存储为实现 WritableComparable 的对象。我们还能够创建 Java 代码来遍历序列文件中的所有数据。

那么,要真正让 Hive 正确读取这些序列文件的对象中的数据,需要什么?

先谢谢了!

更新:很难准确描述我在哪里遇到问题的原因是因为我不一定会遇到任何错误。Hive 只是错误地读取了序列文件。在我的序列文件上运行 Hadoop -text 命令时,我得到一个对象列表,如下所示:

NetCDFCompositeKey@263c7e3f , NetCDFRecordWritable@4d846db5

数据在这些对象本身内。所以,目前在@Tariq 的帮助下,我相信为了实际读取这些对象,我必须做的是创建一个自定义 InputFormat 来读取键和一个自定义 SerDe 来序列化和反序列化对象?

0 投票
1 回答
172 浏览

bigdata - 将单个键映射到多个值的序列文件

我正在尝试对将馈送到 LucidWorks 大数据进行索引的数据进行一些预处理。LWBD 以 Sequencefile 文件的形式接受 SolrXML。我想创建一个 Pig 脚本,它将获取目录中的所有 SolrXML 文件并以格式输出它们

Pig 的本机PigStorage()加载函数可以自动创建一个列,其中包含从中提取数据的文件的名称,理想情况下应该如下所示:

但是,PigStorage() 也自动使用 '\n' 作为行分隔符,所以我最终得到的是一个看起来像这样的包:

我相信你明白了。我的问题是,如果我要将这个包写入 SequenceFile,其他应用程序将如何读取它?可以合并为

,由我提供给它的应用程序的默认处理?或者我可以做一些后处理来把它变成这种格式吗?谢谢您的帮助。

0 投票
1 回答
1280 浏览

java - 扩展 SequenceFileInputFormat 以包含文件名+偏移量

我希望能够创建一个自定义 InputFormat 来读取序列文件,但另外公开文件路径和记录所在文件中的偏移量。

退后一步,这是用例:我有一个包含可变大小数据的序列文件。键大多是不相关的,值最多为几兆字节,包含各种不同的字段。我想在 elasticsearch 中索引其中一些字段以及文件名和偏移量。这样我就可以从elasticsearch中查询到那些字段,然后使用文件名和偏移量返回到序列文件中获取原始记录,而不是把整个东西存储在ES中。

我将整个过程作为单个 java 程序工作。SequenceFile.Reader 类方便地提供了实现这一点的方法getPositionseek

但是,最终会涉及到许多 TB 的数据,因此我需要将其转换为 MapReduce 作业(可能仅限 Map)。由于序列文件中的实际键无关紧要,我希望采用的方法是创建一个自定义 InputFormat 扩展或以某种方式利用 SquenceFileInputFormat,但不是返回实际键,而是返回由文件组成的复合键和抵消。

然而,事实证明这在实践中更加困难。看起来应该是可能的,但考虑到实际的 API 和暴露的内容,这很棘手。有任何想法吗?也许我应该采取另一种方法?

0 投票
2 回答
1088 浏览

serialization - 处理 Hadoop SequenceFile 中的 Writables 完全限定名称更改

我有一堆 Hadoop 序列文件,它们是用我写的一些 Writable 子类编写的。我们称它为 FishWritable。

这个 Writable 运行了一段时间,直到我决定为了清楚起见需要重命名包。所以现在 FishWritable 的完全限定名称是com.vertebrates.fishes.FishWritable而不是com.mammals.fishes.FishWritable. 鉴于所讨论的一揽子计划的范围是如何演变的,这是一个合理的变化。

然后我发现我的 MapReduce 作业都不会运行,因为它们在尝试初始化 SequenceFileRecordReader 时会崩溃:

处理此问题的几个选项立即显而易见。我可以简单地重新运行我以前的所有作业,以使用最新的键类名称重新生成输出,按顺序运行任何相关作业。这显然会非常耗时,有时甚至是不可能的。

另一种可能性可能是编写一个简单的作业,将 SequenceFile 作为文本读取,并将类名的任何实例替换为新实例。这基本上是方法#1,稍加调整使其变得不那么复杂。如果我有很多大文件,那仍然是不切实际的。

有没有更好的方法来处理序列文件中使用的完全限定类名的重构?理想情况下,我正在寻找某种方法来指定新的后备类名称(如果找不到指定的类名),以允许针对此 SequenceFile 的过时和更新类型运行。

0 投票
2 回答
934 浏览

hadoop - Is there a simple way to migrate from SequenceFiles to Avro?

I'm currently using hadoop mapreduce jobs with SequenceFiles of writables. The same Writable type are used for serialization also in the non-hadoop related parts of the system.

This method is hard to maintain - mainly because of the lack of schema and the need for manual handling of version changes.

It appears that apache avro handles these issues.

The problem is, that during the migration I will have data in both formats. is there a simple way to handle the migration?

0 投票
0 回答
77 浏览

hadoop - 使用 SequenceFile Hadoop 存储复杂数据

我的问题是如何从文本生成 sequenceFile 以输出如下格式:

左边是key,右边是value。