问题标签 [hadoop]
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.
sql - 在 Hadoop MapReduce 中缓存地图应用程序?
从数据流的角度来看 MapReduce 和 HBase 的组合,我的问题似乎很合适。我有大量文档要映射、合并和缩减。我之前的 SQL 实现是将任务拆分为批处理操作,将 Map 的结果累积存储到表中,然后执行相当于 reduce 的操作。这样做的好处是,在执行期间(或执行之间)的任何时候,我都可以在那个时间点获得 Map 的结果。
据我了解,将此作业作为 MapReduce 运行需要每次运行所有 Map 函数。
我的 Map 函数(实际上是任何函数)总是为给定的输入提供相同的输出。如果我不需要,重新计算输出根本没有意义。我的输入(一组文档)将不断增长,我将定期对数据运行 MapReduce 操作。在执行之间,我应该只需要为新添加的文档计算 Map 函数。
我的数据可能是 HBase -> MapReduce -> HBase。鉴于 Hadoop 是一个完整的生态系统,它可能能够知道给定函数已应用于具有给定标识的行。我假设 HBase 表中的条目是不可变的。Hadoop 是否/可以考虑到这一点?
我从文档(尤其是 Cloudera 视频)中了解到,重新计算(潜在冗余数据)可能比针对 Hadoop 正在用于处理的问题类别进行持久化和检索更快。
有什么意见/答案吗?
python - MapReduce、Python 和 NetworkX
我已经为我使用 NetworkX 在 Python 中构建的图实现了一个未加权的随机游走函数。下面是我处理随机游走的程序片段。在我的程序的其他地方,我有一个创建图形的方法,并且我有一个模拟我编写的各种自定义图形测试方法的方法。其中一种图测试方法从图中随机选择两个节点,并在它们之间运行随机游走。从这个 Random Walk 计算的两件事是命中时间(从起点到终点遍历的链接数)和通勤时间(从起点到终点再回到起点的遍历链接数)。
我的随机游走代码非常简单,因为我只是选择随机节点直到到达终点。然而,当我尝试运行几个随机游走时,这个当前的实现非常慢(我想我需要在某个时候运行一百万)。
我的问题是:有什么方法可以使用 Hadoop MapReduce 来并行化此随机游走中正在进行的一些操作?有没有更好的方法让我随机游走?
java - 构建 Apache Hive - 无法解决依赖关系
我正在按照http://wiki.apache.org/hadoop/Hive/GettingStarted试用 Apache Hive,并从 Ivy 收到此错误:
对于 4 个不同版本的 Hadoop,此错误重复 4 次,并且构建停止。
我有两个问题:
- 如何手动下载这些文件并将它们提供给构建?
- 为什么 Hive 需要下载 4 个不同版本的 Hadoop 来构建二进制文件?
hadoop - 来自 HBase 的 Hadoop mapreduce 流式传输
我正在构建一个使用 HBase (0.20.1) 作为数据源和数据接收器的 Hadoop (0.20.1) mapreduce 作业。我想用 Python 编写这份工作,这需要我使用 hadoop-0.20.1-streaming.jar 将数据流进出我的 Python 脚本。如果数据源/接收器是 HDFS 文件,这可以正常工作。
Hadoop 是否支持从/到 HBase 的流式传输以进行 mapreduce?
java - 如何在远程系统上并行执行
将工作分配给一组远程机器的好方法是什么?考虑一个示例,其中任务非常占用 CPU 和 RAM,但实际上并不处理大型数据集。选择的语言是Java。我在想 Hadoop 会是一个不错的选择,但是在远程机器之间传递的数据集相当小,而且 Hadoop 似乎主要关注数据的分布而不是工作的分布。
有哪些好的技术可以提供帮助?
编辑:我主要对负载平衡感兴趣。将有一系列作业的数据集很小(< 3MB),但需要大量的处理和内存。
hadoop - hadoop-确定是否正在写入文件
有没有办法确定是否正在写入 hadoop 中的文件?例如-我有一个将日志放入 hdfs 的过程。我有另一个进程可以监视 hdfs 中是否存在新日志,但我希望它确保文件在处理之前已完全上传到 hdfs。这样的事情可能吗?
java - Hadoop:间隔和加入
我对Hadoop很陌生,我目前正在尝试加入两个数据源,其中键是一个间隔(比如 [date-begin/date-end])。例如:
输入1:
输入2:
我想找到key1与key2重叠的所有记录。hadoop 可以吗?我在哪里可以找到实施示例?
谢谢。
python - 包含 HTML 标签的文件上的 Hadoop MapReduce 作业
我有一堆大的 HTML 文件,我想在它们上运行 Hadoop MapReduce 作业以查找最常用的单词。我用 Python 编写了 mapper 和 reducer,并使用 Hadoop 流来运行它们。
这是我的映射器:
这是我的减速器:
每当我只是通过管道传输一个小样本小字符串时,例如“hello world hello hello world ...”,我就会得到一个排名列表的正确输出。但是,当我尝试使用一个小的 HTML 文件并尝试使用 cat 将 HTML 传输到我的映射器时,我收到以下错误(input2 包含一些 HTML 代码):
谁能解释我为什么会得到这个?另外,调试 MapReduce 作业程序的好方法是什么?
amazon-s3 - 将单个 Hadoop 映射减少输出写入多个 S3 对象
我正在实现需要在多个 S3 对象中创建输出的 Hadoop Map reduce 作业。Hadoop 本身只创建一个输出文件(一个 S3 对象),但我需要将输出划分为多个文件。
我如何实现这一目标?
hadoop - map() 和 reduce() 是否应该返回相同类型的键/值对?
在编写 MapReduce 作业(特别是 Hadoop,如果相关)时,必须定义一个map()
和一个reduce()
函数,两者都产生一系列键/值对。键和值的数据类型由应用程序自由定义。
在单词计数的规范示例中,这两个函数都会产生类型对(string, int)
,键是单词,值是出现次数。在这里 - 以及在我看到的所有其他示例中 - 输出的键和值类型在两个函数之间是一致的。
必须/应该在MapReduce 的任何应用程序中产生的键/值对的类型相同map()
吗?reduce()
如果是:为什么?