谷歌的Dremel 在这里描述.Dremel和Mapreduce有什么区别?
当我从命令提示符运行Hadoop .jar文件时,它会抛出一个异常,说没有这样的方法StockKey方法.
StockKey是我为自己的键类型定义的自定义类.
这是一个例外:
12/07/12 00:18:47 INFO mapred.JobClient: Task Id :
attempt_201207082224_0007_m_000000_1, Status : FAILED
java.lang.RuntimeException: java.lang.NoSuchMethodException: SecondarySort$StockKey.
<init>()
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115)
at org.apache.hadoop.io.WritableComparator.newKey(WritableComparator.java:109)
at org.apache.hadoop.io.WritableComparator.<init>(WritableComparator.java:95)
at org.apache.hadoop.io.WritableComparator.get(WritableComparator.java:51)
at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:795)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:817)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:383)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:325)
at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
at org.apache.hadoop.mapred.Child.main(Child.java:264)
Run Code Online (Sandbox Code Playgroud) 嗨,我是一个大数据新手.我搜索了整个互联网,找到了什么是超级模式.我搜索的越多,我就越困惑.有人可以回答我的问题来帮助我吗?
我想找出一个好的和强大的MapReduce框架,可以从Scala中使用.
什么是使用的优点,NullWritable对null使用过的键/值null文本(即new Text(null)).我从"Hadoop:The Definitive Guide"一书中看到以下内容.
NullWritable是一种特殊类型Writable,因为它具有零长度序列化.没有字节写入或读取流.它用作占位符; 例如,在MapReduce中,NullWritable当您不需要使用该位置时,可以将键或值声明为- 它有效地存储常量空值.SequenceFile当您想要存储值列表而不是键值对时,NullWritable也可以用作键.它是一个不可变的单例:可以通过调用来检索实例NullWritable.get()
我不清楚如何使用输出写出输出NullWritable?在开始输出文件中是否有一个常量值表示该文件的键或值是null,因此MapReduce框架可以忽略读取null键/值(以哪个为准null)?另外,null文本是如何序列化的?
谢谢,
Venkat
我需要在一个大数据集(10-100亿条记录)上运行各种机器学习技术.问题主要是文本挖掘/信息提取,包括各种内核技术但不限于它们(我们使用一些贝叶斯方法,自举,渐变提升,回归树 - 许多不同的问题和解决方法)
什么是最好的实施?我在ML方面经验丰富,但是对于大型数据集没有多少经验.是否有任何可扩展和可定制的机器学习库利用MapReduce基础设施强烈偏好c ++,但Java和python是可以的亚马逊Azure或自己的数据中心(我们可以买得起)?
我用cloudera测试了hadoop和mapreduce,我发现它非常酷,我认为我是最新的相关BigData解决方案.但是几天前,我发现了这个:https: //spark.incubator.apache.org/
一个"闪电快速集群计算系统",能够在Hadoop集群的顶部工作,并且显然能够破坏mapreduce.我看到它在RAM中比mapreduce更有效.我认为当你必须进行集群计算来克服单个机器上的I/O问题时,mapreduce仍然是相关的.但是,由于Spark可以完成mapreduce所做的工作,并且可能在几个操作上更有效率,它不是MapReduce的结束吗?或者MapReduce可以做些什么,或者MapReduce在特定环境中比Spark更有效?
我有一组文件:
date: Date
users: [
{ user: 1, group: 1 }
{ user: 5, group: 2 }
]
date: Date
users: [
{ user: 1, group: 1 }
{ user: 3, group: 2 }
]
Run Code Online (Sandbox Code Playgroud)
我想查询这个集合,找到我的用户数组中每个用户id在另一个数组中的所有文档,[1,5,7].在此示例中,只有第一个文档匹配.
我能找到的最佳解决方案是:
$where: function() {
var ids = [1, 5, 7];
return this.users.every(function(u) {
return ids.indexOf(u.user) !== -1;
});
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎伤害了性能在$ where docs中说明:
$ where评估JavaScript并且无法利用索引.
如何改进此查询?
在过去,我曾经使用在MySQL上运行的OLAP多维数据集构建WebAnalytics.现在我使用OLAP多维数据集的方式只是一个大表(好吧,它比那更智能地存储),其中每一行基本上是一个测量或聚合的测量集.每个度量都有一堆维度(即哪个页面名称,用户名,ip等)和一堆值(即多少个综合浏览量,多少访问者等).
您在这样的表上运行的查询通常采用以下形式(meta-SQL):
SELECT SUM(hits), SUM(bytes),
FROM MyCube
WHERE date='20090914' and pagename='Homepage' and browser!='googlebot'
GROUP BY hour
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用上述过滤器获取所选日期中每小时的总计.一个障碍是这些立方体通常意味着全表扫描(各种原因),这意味着你可以制作这些东西的尺寸(在MiB中)的实际限制.
我正在学习Hadoop等的来龙去脉.
在BigTable上运行上述查询作为mapreduce看起来很容易:只需将'小时'作为键,在地图中过滤并通过对值进行求和来减少.
您是否可以在"实时"(即通过用户界面和用户得到他们的答案,而不是批处理模式)上运行BigTable类型的系统上面(或至少具有相同输出)的查询?
如果不; 在BigTable/Hadoop/HBase/Hive等领域做这样的事情的适当技术是什么?
更新:MongoDB的后续操作获取集合中所有键的名称.
正如Kristina所指出的,可以使用Mongodb的map/reduce来列出集合中的键:
db.things.insert( { type : ['dog', 'cat'] } );
db.things.insert( { egg : ['cat'] } );
db.things.insert( { type : [] });
db.things.insert( { hello : [] } );
mr = db.runCommand({"mapreduce" : "things",
"map" : function() {
for (var key in this) { emit(key, null); }
},
"reduce" : function(key, stuff) {
return null;
}})
db[mr.result].distinct("_id")
//output: [ "_id", "egg", "hello", "type" ]
Run Code Online (Sandbox Code Playgroud)
只要我们想要只获得位于第一级深度的键,这就可以了.但是,它将无法检索位于更深层次的密钥.如果我们添加一条新记录:
db.things.insert({foo: {bar: {baaar: true}}})
Run Code Online (Sandbox Code Playgroud)
我们再次运行上面的map-reduce + distinct片段,我们将得到:
[ …Run Code Online (Sandbox Code Playgroud) mapreduce ×10
hadoop ×6
java ×3
mongodb ×2
abstraction ×1
apache-spark ×1
bigdata ×1
c++ ×1
frameworks ×1
hbase ×1
hive ×1
olap ×1
scala ×1
text-mining ×1