问题标签 [hdfs]
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.
hadoop - 在 Hive 中,“加载数据本地路径”是否覆盖现有数据或追加?
我希望在 cron 上运行导入 Hive,并希望只使用
“将数据本地路径'/tmp/data/x'加载到表X中”到表中就足够了。
后续命令会覆盖表中已有的内容吗?还是会追加?
compression - Hadoop,如何压缩映射器输出而不是减速器输出
我有一个 map-reduce java 程序,在该程序中我尝试只压缩映射器输出而不压缩减速器输出。我认为这可以通过在配置实例中设置以下属性来实现,如下所示。但是,当我运行我的工作时,reducer 生成的输出仍然被压缩,因为生成的文件是:part-r-00000.gz。有没有人成功地压缩了映射器数据而不是减速器?这甚至可能吗?
//压缩映射器输出
hadoop - HDFS:使用 HDFS API 附加到 SequenceFile
我一直在尝试使用 Java API 在 HDFS 上创建和维护一个序列文件,而不运行 MapReduce 作业作为未来 MapReduce 作业的设置。我想将 MapReduce 作业的所有输入数据存储在一个序列文件中,但数据会随着时间的推移在一天中被附加。问题是,如果 SequenceFile 存在,下面的调用只会覆盖 SequenceFile 而不是追加到它上面。
另一个问题是我无法维护自己格式的文件并在一天结束时将数据转换为 SequenceFile,因为可以在任何时候使用该数据启动 MapReduce 作业。
我找不到任何其他 API 调用来附加到 SequenceFile 并保持其格式。由于格式需要,我也不能简单地连接两个 SequenceFile。
我还想避免为此运行 MapReduce 作业,因为它对于我添加到 SequenceFile 的少量数据有很高的开销。
有什么想法或解决方法吗?谢谢。
hadoop - Hadoop集群部分节点磁盘空间不足~
我现在拥有一个有 12 个节点的集群。其中一些,特别是 8 个节点,有足够的磁盘空间。但其他 4 个只有很少的空间可以使用。
但是,其他 4 个节点的 RAM 和 CPU 配置仍然很高。所以我的目的是利用这些资源。但是现在,当我运行一个算法 SlopeOne 时,地图会输出这么多中间数据并将它们存储在磁盘上。因此存在一些错误,我将其粘贴在此描述下。
我想知道:
- 如果某个节点发现本地无法存储数据,是否会尝试将数据存储到其他有足够磁盘空间的节点?
- 如果单个节点无法在本地存储数据,它会重新开始工作吗?
- 如果一些有足够磁盘空间的节点先完成一个映射作业,它会继续运行分配给低磁盘空间的作业吗?
- 我知道我可以设置一个参数,它可以限制本地空间的使用,如果一个节点超过这个限制,jobtracker 不会给那个节点更多的作业。但是这种方法会不会让节点停留在那里而不工作?
- 有什么建议可以让我利用这些资源并避免错误吗?
欣赏任何想法。
hadoop - 以编程方式读取 Hadoop Mapreduce 程序的输出
这可能是一个基本问题,但我在 Google 上找不到答案。
我有一个 map-reduce 作业,它在其输出目录中创建多个输出文件。我的 Java 应用程序在远程 hadoop 集群上执行此作业,作业完成后,它需要使用org.apache.hadoop.fs.FileSystem
API 以编程方式读取输出。可能吗?
应用程序知道输出目录,但不知道 map-reduce 作业生成的输出文件的名称。似乎没有办法以编程方式列出 hadoop 文件系统 API 中目录的内容。如何读取输出文件?
这似乎是一个司空见惯的场景,我相信它有一个解决方案。但我错过了一些非常明显的东西。
hadoop - Hadoop/Pig 正则表达式匹配
这是一种奇怪的情况,但我正在寻找一种方法来过滤使用 MATCHES 之类的东西,但在未知模式列表(未知长度)上。
也就是说,如果给定的输入是两个文件,一个带有数字 A:
xxxx
年年
zzzz
呸呸呸
...ETC...
另一个模式 B:
xx.*
年年。*
...ETC...
如何通过第二个中的所有模式过滤第一个输入?
如果我事先知道所有模式,我可以 A = FILTER A BY (num MATCHES 'somepattern.*' OR num MATCHES 'someotherpattern'....);
问题是我事先并不知道它们,并且由于它们是模式而不是简单的字符串,所以我不能只使用连接/组(至少据我所知)。也许是一个奇怪的嵌套 FOREACH ......东西?有什么想法吗?
hadoop - 将数据从 HDFS 导入 Hive 表
我在 HDFS 的 data/2011/01/13/0100/file 中有我的数据,每个文件都包含制表符分隔的数据,比如名称、ip、url。
我想在 Hive 中创建一个表并从 hdfs 导入数据,表应该包含时间、名称、ip 和 url。
如何使用 Hive 导入这些?r 数据应该是其他格式,以便我也可以导入时间?
hadoop - MapReduce 洗牌/排序方法
有点奇怪的问题,但是有谁知道 MapReduce 在 shuffle/sort 的排序部分使用了什么样的排序?我会认为合并或插入(与整个 MapReduce 范例保持一致),但我不确定。
hadoop - 远程执行hadoop作业时出现异常
我正在尝试在远程 hadoop 集群上执行 Hadoop 作业。下面是我的代码。
当作业立即开始执行时,甚至在映射阶段之前都会引发异常。
输入文件确实存在,并且是一个逗号分隔的文本文件。我可以使用hadoop jar
具有相同输入和输出的命令在 hadoop 集群上执行作业。但我无法远程运行它。我还可以远程运行其他工作。
谁能告诉我这个问题的解决方案是什么?