Google Compute Engine允许您获得一组语义上是本地的实例,即只有它们才能相互通信,所有外部访问都必须通过防火墙等。如果我想运行Map Reduce或其他类型的群集作业,这些作业将导致高网络流量,然后我还需要物理上本地的机器(比如,在同一机架上)。查看API和初始文档,我看不出有任何方法可以要求这样做;有人知道其他情况吗?GCE目前不支持指定机架位置。但是,我们构建的系统能够在大量实例以完全连接的方式相互交谈时正常工作,只要它们位于同一区域
这是允许MapR接近hadoop te
我正在尝试实现以下功能。我有一个存储物品的桶。其中一个对象字段是timestamp。现在我想检索时间戳介于(20130605 08:00:00到20130605 08:05:00)之间的对象
我的意思是我需要得到8.00到8.05之间的所有对象
我可以使用Map Reduce或二级索引实现此功能吗
我正在考虑的另一种方法是,将创建类似20130605:0800:0805的bucket本身,然后将对象存储在此bucket下。所以现在,我不想实现基于条件时间间隔的查询。请给出建议。根据您存储的数据类
我们可以使用snappy文件作为输入文件来映射reduce应用程序而不使用自定义输入类吗
我找不到这方面的任何信息
问候,,
Nish是的,您可以这样做,但您可能必须先解压缩文件才能使用它
CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(SnappyCodec.class, new Configuration());
创建编解码器实例后,调用createInputStream并传递hadoop路径
我们正在使用Map reduce将数据写入HBase。因为我们有一些格式化要做,我们通过扩展TableReducer实现了我们自己的reducer。这个定制的reducer在生产和开发环境中的行为不同。获取以下错误
错误:org.apache.hadoop.hbase.client.retriesexhaustedwithdetails异常:失败659次操作:regiontobusyexception:659次,
从中,我了解到冲洗没有正确进行。然而,在dev环境中同样可以正常工作
除了上面的选
我正在用Spark制作一个应用程序,它将运行一些主题提取算法。为此,首先我需要进行一些预处理,最后提取文档术语矩阵。我可以做到这一点,但对于一个(没有那么多)庞大的文档集合(只有两千五百万字节),这个过程需要花费很多时间
所以,在调试中,我发现程序有点死机,它处于reduce操作中。我在代码的这一部分中所做的是计算每个术语在集合中出现的次数,因此首先我做了一个“映射”,为每个rdd计算它,然后我“减少”它,将结果保存在hashmap中。map操作非常快,但是在reduce中,它将操作分为40个块
我想知道当我同时提交两个相同的工作流作业(仅仅是oozie示例)时,oozie如何处理冲突(如果真的存在)。
我可以提交相同的两个作业成功,oozie服务器返回两个不同的作业ID。在oozie Web控制台中,我看到两个作业的状态都在运行,然后在一段时间后全部成功。
My workflow.xml作为追随者:
<workflow-app xmlns="uri:oozie:workflow:0.2" name="map-reduce-wf">
<start to="mr-
我有一个apache beam工作,大约需要6个多小时才能完成。我们接收大约2.7Tb的地面军事系统数据以及其他数据源,如Bigtable/Bq/etc,然后执行CoGroupbyKey.create()
GCS数据以原始字符串的形式出现,如userId、hashedPhoneNumber,例如:
525135a7-cb59-46ec-8d1d-0f12df02f486, 3070816492067005070
当从地面军事系统获取数据并使用GroupbyKey创建数据时,我有多个DOFN
u
我正在用Java、Erlang和Ruby开发一个分布式处理API。我可以包括哪些基本命令,从中我可以构建mapreduce、管道,以及所有最常用的并行算法。你可以从这篇博客文章中得到一些提示,我发现这些非常有用
@bjornhol。谢谢你的链接,我会查出来的
此链接“”介绍如何使用map reduce框架实现储层采样。我觉得他们的解决方案很复杂,下面的简单方法会奏效
问题:
给定非常多的样本,生成一组大小为k的样本,使每个样本在该集合中存在的概率相等
建议的解决方案:
映射操作:对于每个输入数字n,输出(i,n),其中i在0到k-1范围内随机选择
减少操作:在所有具有相同键的数字中,随机选择一个
声明:
k大小集合中任何数字的概率为k/n(其中n为样本总数)
证明直觉:
由于映射操作将每个输入样本随机分配给bucket number i(0您的参数中
在我的ravendb中,我有两个文档:国家和城市
城市文件如下所示
身份证件
名称
乡下人
国家/地区文档如下所示
身份证件
名字
目前,我有一个索引,我检索所有城市作为一个列表,这是可行的。
但我更愿意检索按国家分组的所有城市
这就是我所拥有的
public class City_ByCountry
{
public string CityId { get; set; }
public string CityName { get; set; }
我无法确定导入/导出hbase org.apache.hadoop.hbase.mapreduce.Import/hbase org.apache.hadoop.hbase.mapreduce.Export与hbase打包的工具是否进行批量上载?导出用于将hbase文件的内容转储到序列文件中。Import使用上述文件将数据加载回HBase。两者都是完全的地图减少工作。我认为这些过程涉及要生成的WAL文件(中间生成的文件),作为整个读/写步骤的一部分。你可以得到更多的信息
BulkLoad是一个单
使用RavenDB教程中的Northwind数据库,我试图按员工对订单进行分组,并为每个员工获取最新的订单
地图:
使用不存在的MaxBy进行Reduce:
from result in results
group result by result.Employee into grp
select new {
Employee = grp.Key,
Count = grp.Sum(result => result.Count),
MostRecent = grp.M
我正在从事一个分析大量数据的项目,因此我最近发现了MapReduce,在深入研究它之前,我希望确保我的预期是正确的
与数据的交互将发生在web界面上,因此响应时间在这里是至关重要的,我认为是10-15秒的限制。假设在我对数据执行任何分析之前,我的数据将加载到一个分布式文件系统中,那么我能从中获得什么样的性能
假设我需要过滤一个简单的5GB XML文件,该文件格式良好,具有相当平坦的数据结构,其中包含10000000条记录。假设输出将产生100000条记录。10秒钟可能吗
如果是,我在看什么样的硬
在RavenDB中,我理解当您需要计算符合特定标准的属性时,这是可以实现的
通过针对要分组的属性名称创建面
然后在上述属性和where子句中所需的属性上创建索引
最后使用上述索引发出查询。以及使用ToFacets扩展实现查询
但是,当where子句恰好包含一个针对文档上值集合的属性的谓词时,会发生什么情况呢?因为如果我将集合中的嵌套属性添加到父文档的索引中,父文档中属性的方面计数将不准确
例如
public class Camera {
string Make { get;set; }
如果我有一个状态更新列表:
{
username: "JP",
update: "Confused by CouchDB",
updated_at: 2013-05-10T08:30:00Z
}
{
username: "JP",
update: "Blissfully unaware",
updated_at: 2012-05-09T08:30:00Z
}
{
username: "Bob",
update: "Talking nonsense",
up
我是ApachePig的新手,希望通过编写pig脚本来实现自底向上的cubing。
然而,这需要我以分层的方式进行分组
例如,如果我的数据是(交换、符号、日期、股息)形式,其中股息是一个度量,其余是维度,我希望首先按交换对数据进行分组并打印总股息,然后再按交换和符号等进行分组
一种方法是在脚本中编写所有可能的分组,例如按交换分组、按符号分组、按(交换、符号)分组等。但是,这似乎不是最理想的。是否有一种方法(例如)先按exchange分组,然后对每个exchange组内部按符号分组,以生成(exc
标签: Mapreduce
oozieyarncloudera-cdhcloudera-manager
这是一个奇怪的问题,最近我们开始从运行MRv1的旧CDH 4.2.1集群迁移到运行Mrv2(纱线)的CM5管理CDH 5.2.0集群,并遇到了一些非常不寻常的问题。工作流处理大约1.2TB的数据,在CDH 4.2.1集群上,处理查询不使用缩减器,每个单独的映射输出存储为单个文件(大约需要35分钟)
在CDH 5.2.0集群上,工作流在大多数情况下都会失败(在正常时间长度的3倍以上之后),并且总是试图将所有映射器的输出合并到一个文件中,我们认为这就是它失败的地方
所有错误日志都指向无序排列和排序阶
环境:
ignite服务器:
具有内核2.6.32-431.el6.x86_64的centos6.5
点燃版本1.9
hadoop版本2.6.2
3个服务器节点,每个节点在启动时都设置了'-Xms16g-Xmx16g-server-XX:+AggressiveOpts-XX:MaxMetaspaceSize=256m'
我使用ignite map reduce运行map reduce测试作业。这项工作仅仅是得到每个人的平均人数。数据如下:
杰克0.35
汤姆0.78
莉莉0.92
杰克0.28
有一段代码,如:
public class Idea
{
(...)
public IList<IdeaSupporter> Supporters { get; set; }
}
public class IdeaSupporter
{
(...)
public int Tokens { get; set; }
}
公共类理念
{
(...)
公共IList支持者{get;set;}
}
公共类IDEA支持程序
{
(...)
公共int标
我已经运行了一个MapReduceJava程序并在Hadoop中运行。我没有设置一些正确的配置,我没有得到我的错误。我尝试了各种解决方法,但多次出现类似错误。您必须公开您的映射器和还原器:
Hadoop API无法访问包私有类。必须将映射器和还原器公开:
Hadoop API无法访问包私有类。@user2391084静态和公共。如果没有static关键字,这些类在没有外部类实例的情况下是不可实例化的。@user2391084否。原因是API找不到AnnualExcalculaterApper的构
我有评级文档,记录用户对某个项目的评级,如下所示:
accountID: a1, itemID: i1, rating: 1
accountID: a2, itemID: i1, rating: 1
accountID: a3, itemID: i1, rating: 1
accountID: a1, itemID: i2, rating: 1
accountID: a2, itemID: i3, rating: 1
我想创建一个视图,显示哪些用户对同一项目进行了评分,以及评分次数。根据上述数
我的沙发数据库中有以下数据结构。
我需要获得每天不同的会话的计数。记录还必须按app\u版本进行过滤
我当前的MapReduce如下所示
"dau": {
"map": "function(doc) {
date = doc.session.timestamp.split("T")[0];
emit([date, doc.app_version, doc.session.session_id], 1);
我对如何开发新的MapReduce2应用程序来使用Thread以及如何使用旧的MapReduce2应用程序感到有点困惑
我目前有MapReduce1应用程序,主要包括:
配置要提交到集群的作业的驱动程序(以前的JobTracker,现在的ResourceManager)
映射器+还原器
从一个方面看,我看到用MapReduce1编码的应用程序与MapReduce2/Thread兼容,但需要注意的是,只需重新编译新的CDH5库(我使用Cloudera发行版)
但从另一方面看,我看到了关于以不同
map reduce作业如何生成有关其已处理的密钥数量的度量,并提供如下数据
%属于此特定值的键的数目。在reduce方法中使用自定义计数器,并在每次调用reduce方法时递增它。请注意,对于给定的键,reduce方法只调用一次。一旦作业成功完成,该自定义计数器将出现在日志中。已经有了reduce\u input\u groups计数器,它可以准确地执行此操作,但我认为这不是OP所要求的,即使问题不是很清楚
我试图用couchDb视图解决一个看起来相当简单的问题,但我的结果集甚至没有接近目标
我不是更新文档,而是每次都创建一个新文档作为版本控制策略,并使用名为ver的版本控制字段将这些文档绑定在一起。版本链中的第一个文档将看到ver字段和\u id字段具有相同的值。链中所有后续文档的ver字段与链中以前的文档相同,但具有唯一的\u id字段。这些文档还有一个createdTime字段,这是我了解哪个文档是最新文档的方法
这是我的文件:
{
"_id": "abcd-1234-efgh-9876"
我尝试自己实现单词计数示例,下面是我对映射器的实现:
public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> {
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
Text word = new Te
我想用java实现叠前Kirchhoff时间迁移,然后将代码转换为Map Reduce机制。有人能给我一些相关研究的链接,或者帮助我如何实现这一点吗
如何在RIAK中执行类似聚合分组函数
功能,例如:
闵
马克斯
计数
平均值
Stddev
在SQL中,这似乎很简单,但我在Riak online中找不到任何示例。Mapreduce-请参阅此处的文档-
假设我们希望通过MapReduce实现本地敏感哈希LSH。具体地说,假设签名矩阵的块由列组成,元素是键值对,其中键是列号,值是签名本身,即值的向量
演示如何将所有频带的桶作为单个频带的输出
MapReduce进程。提示:记住Map函数可以生成
来自单个元素的多个键值对
b显示另一个MapReduce进程如何将a的输出转换为
需要比较的对的列表。具体来说,对于每一列i,
应该有一个列j>i的列表,我需要使用这些列
比较。a
Map:将元素及其签名作为输入,生成bucket_id、元素的键值对
减少
我有一个键值数据,我们称之为x。它由一把钥匙、一对体积和重量组成。看起来像这样
[('t1', (2, 0.8)),
('t1', (3, 0.1)),
('t1', (4, 0.3)),
('t2', (3, 0.8)),
('t2', (10, 0.3))]
我想计算t1和t2的加权体积值。那是我计算的
t1为2*0.8+3*0.1+4*0.3
t2为3*0.8+10*0.3
我能行
x.map(lambda (x, (y, z)): (x, y*z)).reduceByKey(l
我正在尝试在我的机器上设置hadoop 2.7.3单节点集群。有一次,我成功地运行了所有的服务,并运行了我的自定义jar文件,效果很好。
在停止并再次启动服务之后,我发现资源管理器没有运行。我使用以下方式启动服务:
start-dfs.sh
start-yarn.sh
执行jps会给出:
14755 ResourceManager
13396 DataNode
14884 NodeManager
13606 SecondaryNameNode
15099 Jps
13262 NameNode
我有以下文件。关键词的时间戳位置
{
_id: willem-aap-1234,
keyword:aap,
position: 10,
profile: { name: willem },
created_at: 1234
},
{
_id: willem-aap-2345,
keyword:aap,
profile: { name: willem },
created_at: 2345
},
{
_id: oliver-aap-1235,
keywo
我正在编写一个MapReduce作业,它从Accumulo获取输入。我正在使用AccumuloInputFormat和RegExFilter。当我运行作业时,它连接到Accumulo没有问题,但在建立连接后,我会无限期地看到以下警告:
WARN mapreduce.InputFormatBase: Unable to locate bins for specified ranges. Retrying.
我不认为Accumulo有什么问题,因为我可以从shell扫描我的兴趣表。我遗漏了什么?您
每个输入拆分在hadoop集群中复制3次。对于每个复制拆分,hadoop是否分配每个映射。如果是,则指定将哪个映射结果发送到reduce函数。hadoop是否也复制了reduce函数?否,即使拆分有三个副本,MapReduce引擎也只会分配一个映射器。它使用名为数据本地化的概念来决定使用哪个剥离副本
Hadoop尽最大努力在输入
数据驻留在HDFS中。这称为数据局部性
优化,因为它不使用宝贵的群集带宽。
但是,有时,承载HDFS的所有三个节点都会阻止复制副本
对于映射任务的输入拆分,正在运行其他
我创建了一个mapreduce代码来分析一些文件。但有些文件是从蜂巢创建的,它们是ORC类型的
可以像分析Texfile一样分析这个ORC文件吗?mapreduce的输出是否为文本类型
您需要的是InputFormat或NewInputFormat或InputFormat
job.setInputFormatClass(OrcNewInputFormat.class);
然后需要一个Typestruct,它描述表的模式(很可能在映射器中)
现在您可以像这样访问文件的字段
List<Typ
我有一个6DN集群,每秒钟所有的节点管理器都会停止工作。发布登录
现在减速机的工作也失败了
2018-07-09 06:25:26,262 WARN logaggregation.AppLogAggregatorImpl (AppLogAggregatorImpl.java:<init>(182)) - rollingMonitorInterval is set as -1. The log rolling mornitoring interval is disabled. The
CouchDB中的reduce函数用于返回数组,但当我运行coach查询时,得到的是类似于6.9533536257605e-310的内容,而不是数组
我已经在在线javascript编辑器中测试了我的代码,当我使用console.log()时,返回的值是一个数组,但在CouchDb中我没有得到该数组
映射函数
function (doc) {
if(doc.docType="Asset" && doc.owner){
emit(doc.owner,doc.name);
假设我有一个239800个文档的列表,如下所示:
{
name: somename,
data:{age:someage, income:somevalue, height:someheight, dumplings_consumed:somenumber}
}
我知道我可以通过doc.data.age,doc.data.income,身高,饺子对文档进行索引,并在给出每个参数的范围后得到文档列表,但我如何才能得到如下查询结果:
{
name: somename,
我希望collectionname位于“value”字段中,而不是null。更改函数以存储它。我不明白你的问题。我也不明白您试图实现什么,或者为什么要以这种方式使用mapreduce。我试图从每个集合中获取数据库中的所有字段。我能够获取字段名,但无法获取该字段的集合名。因此,我希望输出中包含集合名的文件名。存储每个集合的结果数据库位于不同的输出中。
var allCollections = db.getCollectionNames();
for (var i = 0; i < allC
我刚开始学习Spark,当时正在努力学习任务的概念
任何人都可以帮助我理解什么时候驱动程序中没有运行某个操作(比如reduce)
从spark教程中
“使用函数func聚合数据集的元素(其中
接受两个参数并返回一个)。函数应为
交换的和结合的,以便在
平行。”
我目前正在试验一个应用程序,它读取“n”个文件上的目录并计算字数
在web UI中,任务数等于文件数。所有的reduce功能都发生在driver节点上
您能否告诉我们一个场景,其中reduce函数不会在驱动程序上执行。一项任务总是包含“转
当我使用spark运行作业时,会得到以下日志
[阶段0:>(0+32)/32]
这里32对应于我要求的rdd分区数
然而,我不明白为什么有多个阶段,以及每个阶段到底发生了什么
每个阶段显然都需要很多时间。是否可以在较少的阶段内完成?Spark中的阶段表示在本地完成的DAG计算的一部分。一个阶段在需要对数据进行洗牌的操作上中断,这就是为什么您将在Spark UI中看到该操作命名的原因。如果您使用的是Spark 1.4+,那么您甚至可以在DAG可视化部分的UI中对其进行可视化:
请注意,拆分发生在
我想写一个map-side连接,还想包含一个reducer代码。我有一个较小的数据集,我将作为分布式缓存发送
我可以用reducer代码编写map-side-join吗?是!!为什么不呢?看,reducer用于聚合从映射发出的键值。因此,无论何时,只要您想根据代码中设置的特定标准或根据问题陈述来聚合结果(例如,您想计算或查找平均值或任何数字摘要),您的代码中都可以有一个减缩器。Map只是用于过滤数据并从大量数据中发出一些有用的键值对。当其中一个数据集足够小,足以容纳商品机器的内存时,只需要映射端
我想在MapReduce作业中处理列族中的所有数据。订购并不重要
一种方法是迭代列族的所有行键以用作输入。这可能是一个潜在的瓶颈,可以用并行方法代替
我愿意接受其他建议,或者有人告诉我,我在浪费时间。我目前正在调查以下事项:
一种可能更有效的方法是将范围分配给输入,而不是迭代所有行键(在映射程序启动之前)。由于我使用的是RandomPartitioner,有没有一种方法可以基于MD5指定要查询的范围
例如,我想将任务分成16个作业。由于RandomPartitioner是基于MD5的(根据我所读
我最近设置了4节点Cassandra集群,用于使用一个列族进行学习,该列族将时间序列数据保存为
Key->{column name:timeUUID,column value:csv log line,ttl:1year},我使用Netflix Astyanax java客户端加载大约100万个日志行
我还将Hadoop配置为使用1个namenode和4个datanode运行map reduce作业,以便对Cassandra数据运行一些分析
internet上所有可用的示例都使用列名作为Hado
HBASE-3996
支持多个表和扫描仪作为map/reduce作业中映射器的输入。
map函数始终如下所示:
public void map(ImmutableBytesWritable row, Result value, Context context)
在map函数中,如何区分(结果)值来自哪个表?您可以从上下文中提取TableSplit,这应该对您有用(未测试):
public void map(ImmutableBytesWritable row, Result value, Co
我已经创建了一些蜂巢UDF。现在,我们正在考虑在hiveql中使用这些UDF来创建表
创建xyz{
字段1
菲尔登
}
像
{
选择
udf1(),
udf2(),
udfn()
来自美国广播公司,def)
现在,我们不确定它是否正确。因为根据我的理解,它将为每一行调用UDF,并且我的数据是否以百万为单位。我们可能会使用集群的所有资源
我的理解正确吗?或者不会有任何性能问题,我们可以使用它,正如我上面描述的那样
谢谢。我们在生产中使用多个UDF,它们可以每秒在集群上处理100个K行。从某种意义
在Map Reduce阶段中,它在Map和Reduce之间强制设置一个屏障。在所有映射者完成其分配的作业之前,还原器无法继续。减速机是否可以提前开始新的工作以提高效率?如果答案是“是”或“否”,那么为什么?否在所有映射者完成分配的工作负载之前,缩减阶段无法完成。因为它无法提前预测,因为在所有映射器完成之前,完成作业和减少作业的预测是完全不可预测的
我正在使用Spyglass的烫伤功能来读取/写入HBase
我正在做一个表1和表2的左外连接,并在转换一列后写回表1。
表1和表2均声明为Spyglass HBasSource
这个很好用。但是,我需要使用rowkey访问表1中的另一行来计算转换后的值
我为HBase get尝试了以下操作:
val hTable=新hTable(配置,表格名称)
val result=hTable.get(新的get(rowKey.getBytes())
我正在访问此链接中提到的“烫伤作业”中的配置:
当
我正在尝试使用map reduce解析csv中的特定列。我的csv中有一些空单元格。当我试图运行它时,它会显示一些异常。但是当我运行一个没有空单元格的csv时,我会得到我的输出
sss xx asdas sddf
saq asdsds sdsds
ewe zz asdsd
aaa qq adsd ssdds
我的csv看起来是这样的,我的映射器输出必须是这样的
sss xx sddf 1
s
在Map Reduce中,我们有许多术语(我按照它们执行的顺序给出):
映射器、合并器、分区器、洗牌器、合并器、排序器、还原器。
整个执行由外部级别的MR流程控制
我知道mapper只是另一个过程。或者是函数调用。这是由父MR进程针对文件的每个输入分割进行分叉的。其o/p作为键、值对写入磁盘。写入o/p后,操作系统终止映射进程。当此进程终止时,MR调用组合器函数(如果可用)。然后通过传递有关映射器的o/p的必要信息来调用组合器进程(或方法)。组合器将输出写入磁盘,然后关闭。映射器和组合器在同一节
1 2 3 4 5 6 ...
下一页 最后一页 共 14 页