鉴于我在Windows系统中开发MapReduce任务,在将它们移动到HDFS集群之前,我想在本地运行MapReduce.我只想检查我的mapper逻辑,inputSplits,输入/输出格式等是如何工作的.有可能吗?
我有一个perl程序,它将获取一个输入文件并处理它并生成一个输出文件.现在我需要在hadoop上使用这个perl程序.所以perl程序将运行在边缘节点上存储的数据块上,我不应该修改perl代码.我不知道如何开始这个.有人可以给我任何建议吗?
我可以编写一个java程序,在mapper类中使用process builder调用perl程序并将结果合并到reducer类中吗?
有没有其他方法来实现这一目标?
如何编写PIG查询以获取字段中值的存在?
例如:
场A | 领域B.
20 | ABC;
21 | XYZ;
25 | NULL;
99 | WER;
45 | NULL;
89 | FOY;
要求的O/P:字段A的计数= 6,字段B的计数= 4
我如何使用mapReduce将以下SQL查询转换为mongoDB
SELECT mobile, SUM( amount ),count(mobile) as noOfTimesRecharges
FROM recharge
WHERE recharge_date between '2015-02-26' AND '2015-03-27'
GROUP BY mobile
having noOfTimesRecharges > 0 and noOfTimesRecharges < 5
Run Code Online (Sandbox Code Playgroud)
我试过了
db.users.mapReduce(
function(){
emit(this.mobile,this.amount);
},
function(k,v){
return Array.sum(v)
},
{
query:{
recharge_date:{$gte:ISODate("2014-06-17"),$lte:ISODate("2014-06-20")}
},
out:"one_month_data"
}).find();
Run Code Online (Sandbox Code Playgroud)
这给了我结果而不是计数。
javascript mapreduce mongodb mongodb-query aggregation-framework
每个Hadoop开发人员都知道Combiner是优化mapreduce的关键,但是它是可选的。它可以最小化带宽并提高mapreduce作业的性能。在这里,我的问题是,hadoop会将许多功能默认设置为数据局部性问题,而不是将Combiner设置为默认值。为什么?这意味着在所有情况下都不推荐使用合并器吗?什么时候不使用组合器?如果我将其设置为默认值,会有什么问题?
我是Hadoop的新手,我的map-reduce代码可以工作,但它不会产生任何输出.这是map-reduce的信息:
16/09/20 13:11:40 INFO mapred.JobClient: Job complete: job_201609081210_0078
16/09/20 13:11:40 INFO mapred.JobClient: Counters: 28
16/09/20 13:11:40 INFO mapred.JobClient: Map-Reduce Framework
16/09/20 13:11:40 INFO mapred.JobClient: Spilled Records=0
16/09/20 13:11:40 INFO mapred.JobClient: Map output materialized bytes=1362
16/09/20 13:11:40 INFO mapred.JobClient: Reduce input records=0
16/09/20 13:11:40 INFO mapred.JobClient: Virtual memory (bytes) snapshot=466248720384
16/09/20 13:11:40 INFO mapred.JobClient: Map input records=852032443
16/09/20 13:11:40 INFO mapred.JobClient: SPLIT_RAW_BYTES=29964
16/09/20 13:11:40 INFO mapred.JobClient: Map output bytes=0
16/09/20 13:11:40 INFO mapred.JobClient: Reduce shuffle bytes=1362
16/09/20 13:11:40 INFO mapred.JobClient: Physical …Run Code Online (Sandbox Code Playgroud) 我正在尝试在macOS 10.12上运行基本的MapReduce程序,该程序从天气数据的日志文件中检索最高温度。运行作业时,我收到以下堆栈跟踪:
Stack trace: ExitCodeException exitCode=126:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:582)
at org.apache.hadoop.util.Shell.run(Shell.java:479)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:773)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:212)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
资源管理器中作业的stderr日志文件包含以下消息:“ / bin / bash:/ bin / java:是目录”。
我本来收到类似的错误消息,“/斌/庆典:/斌/ java的:没有这样的文件或目录”,但修改了hadoop-config.sh脚本首先在回答所建议的这个帖子。我将其修改如下:
if [[ -z $JAVA_HOME ]]; then
# On OSX use java_home (or /Library for older versions)
if [ "Darwin" == "$(uname -s)" ]; then
if [ -x /usr/libexec/java_home ]; then
export JAVA_HOME=${JAVA_HOME}
else
export JAVA_HOME=${JAVA_HOME}
fi
fi
Run Code Online (Sandbox Code Playgroud)
我的$ JAVA_HOME变量设置为: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
这是我的JAVA_HOME变量的配置问题导致的吗?
我在想,当你做MapReduce时,你正在改变你的数据主义者,然后使用reduce函数对你想要的转换数据做任何事情.我想我也可以这样做foldr.做什么的时候foldr (filterfun . mapfun) [].我可以说Haskell的foldr与mapreduce相同吗?或者我错过了什么?
Oracle RDBMS中是否有可用的功能/功能,它等同于MapReduce使用并行处理来处理大型数据集?
我有一个对象,我想返回两个值并将它们映射到一个对象.
宾语
Itemlist:[
{name: 'Chicken', searchParam: 'chicken', search: true},
{name: 'table', searchParam: 'table', search: false},
{name: 'books', searchParam: 'books', search: true}]
Run Code Online (Sandbox Code Playgroud)
想从Itemlist searchParam返回并搜索并映射到一个结果将是的对象:
{chicken: true},{table: false},{books: true},
Run Code Online (Sandbox Code Playgroud)
所以回归会是这样的
{ Itemlist[0].searchParam :Itemlist[0].search }
Run Code Online (Sandbox Code Playgroud)