我是hadoop和地图还原的新手,我正在尝试编写一个地图还原器,计算单词计数txt文件的前10个计数单词。
我的 txt 文件“q2_result.txt”看起来像:
yourself 268
yourselves 73
yoursnot 1
youst 1
youth 270
youthat 1
youthful 31
youths 9
youtli 1
youwell 1
youwondrous 1
youyou 1
zanies 1
zany 1
zeal 32
zealous 6
zeals 1
映射:
#!/usr/bin/env python
import sys
for line in sys.stdin:
line = line.strip()
word, count = line.split()
print "%s\t%s" % (word, count)
减速机:
#!usr/bin/env/ python
import sys
top_n = 0
for line in sys.stdin:
line = line.strip()
word, count = line.split()
top_n += 1
if top_n == 11:
break
print '%s\t%s' % (word, count)
我知道你可以在Hadoop jar命令中将一个标志传递给-D选项,这样它就会按照你想要的键进行排序(在我的情况下,计数是k2,2),这里我只是先使用一个简单的命令:
hadoop jar /usr/hdp/2.5.0.0-1245/hadoop-mapreduce/hadoop-streaming-2.7.3.2.5.0.0-1245.jar -file /root/LAB3/mapper.py -mapper mapper.py -file /root/LAB3/reducer.py -reducer reducer.py -input /user/root/lab3/q2_result.txt -output /user/root/lab3/test_out
所以我认为这样简单的映射器和缩减器不应该给我错误,但是它给了我错误,我不知道为什么,错误在这里:http://pastebin.com/PvY4d89c
(我在Ubuntu16.04上的虚拟盒子上使用Horton works HDP沙盒)
我知道,“文件未找到错误”的意思与“文件无法执行”完全不同,在这种情况下,问题是文件无法执行。
在Reducer.py中:
错误的:
#!usr/bin/env/ python
对的:
#!/usr/bin/env python
我们的一些数据流作业在读取源数据文件时随机崩溃。 作业日志中写入了以下错误(workers日志中没有任何内容): 我们有时也会遇到这种错误(登录在工人日志中): 源数据文件存储在谷歌云存储中。 数据路径正确,作业通常在重新启动后工作。我们直到一月底才遇到这个问题。 使用以下参数启动作业:--tempLocation='gstoragelocation'--stagingLocation='Othe
我有两个简单的Flink流式作业,从Kafka读取,做一些转换,并将结果放入Cassandra sink。他们从不同的Kafka主题阅读,并存入不同的卡桑德拉表。 当我单独运行这两个工作中的任何一个时,一切都很好。检查点被触发并完成,数据被保存到Cassandra。 我找不到关于这个错误的很多信息,它可能是由下列任何一个引起的: Flink(V1.10.0-Scala2.12), Flink Ca
我想在阿兹卡班经营蜂巢工作
我目前正在尝试为一个项目设置Elasticsearch。我已经安装了,还安装了Java,即。 但是当我尝试使用以下命令启动Elasticsearch时 我得到以下错误 loaded:loaded(/usr/lib/systemd/system/elasticsearch.service;disabled;vend 活动:自世界协调时2019-11-01 06:09:54开始失败(结果:退出-代码)
问题内容: 我正在将当前项目的大型应用程序移至Android Studio和Gradle中。我目前陷入以下问题: 我尝试将以下属性添加到主文件: 这些属性定义都不起作用。我究竟做错了什么? 问题答案: 试试看: 将此添加到 将此添加到 基于此,它应该覆盖所有元素。“将低优先级声明替换为带注释的声明。”
我在移动我目前的项目巨大的应用程序到Android Studio和Gradle的过程中。我目前被困在以下问题上: 我尝试将以下属性添加到主文件中: 这些属性定义都不起作用。我做错了什么?