我有一个项目要求我处理大量(1000-10000)的大(100MB到500MB)图像.我正在进行的处理可以通过Imagemagick完成,但我希望在Amazon的Elastic MapReduce平台(我相信使用Hadoop运行)上实际进行此处理.
在我发现的所有示例中,它们都处理基于文本的输入(我发现Word Count样本数十亿次).我找不到任何与Hadoop有关的工作:从一组文件开始,对每个文件执行相同的操作,然后将新文件的输出写出来作为它自己的文件.
我很确定这可以通过这个平台完成,并且应该能够使用Bash完成; 我不认为我需要去创建一个完整的Java应用程序或其他东西,但我可能是错的.
我不是要求有人给我代码,但如果有人有示例代码或链接到处理类似问题的教程,我将不胜感激......
bash hadoop imagemagick amazon-web-services elastic-map-reduce
当我使用Amazon Elastic MapReduce(Amazon EMR)创建流媒体作业时,使用Ruby命令行界面,如何指定仅使用EC2点实例(master除外)?下面的命令正在运行,但它"迫使"我使用至少1个核心实例...
./elastic-mapreduce --create --stream \
--name n2_3 \
--input s3://mr/neuron/2 \
--output s3://mr-out/neuron/2 \
--mapper s3://mr/map.rb \
--reducer s3://mr/noop_reduce.rb \
--instance-group master --instance-type m1.small --instance-count 1 \
--instance-group core --instance-type m1.small --instance-count 1 \
--instance-group task --instance-type m1.small --instance-count 18 --bid-price 0.028
Run Code Online (Sandbox Code Playgroud)
谢谢
amazon-ec2 amazon-web-services amazon-emr elastic-map-reduce
我想在存储在S3上的Elastic Map Reduce作业输出上使用LZO压缩,但不清楚文件是否自动编入索引,以便将来对该数据运行的作业会将文件拆分为多个任务.
例如,如果我的输出是一堆TSV数据行,在1GB LZO文件中,未来的地图作业将只创建1个任务,或类似(1GB/blockSize)任务(即文件未压缩时的行为) ,或者如果目录中有LZO索引文件)?
编辑:如果没有自动完成,建议将输出设为LZO索引?在将文件上传到S3 之前进行索引编制?
我想了解hadoop中的文件系统计数器.
下面是我跑的工作的计数器.
在我运行的每个作业中,我发现读取的Map文件字节几乎等于读取的HDFS字节.我观察到地图写入的文件字节是映射器读取的文件字节和hdfs字节的总和.请帮忙!本地文件和hdfs是否读取了相同的数据,并且两者都是由Map Phase写入本地文件系统的?
Map
Run Code Online (Sandbox Code Playgroud)
FILE_BYTES_READ 5,062,341,139
HDFS_BYTES_READ 4,405,881,342
FILE_BYTES_WRITTEN 9,309,466,964
HDFS_BYTES_WRITTEN 0
谢谢!
我在S3中有这样的文件:
1-2013-08-22-22-something
2-2013-08-22-22-something
etc
Run Code Online (Sandbox Code Playgroud)
没有srcPattern我可以轻松地从桶中获取所有文件,但我想获得一个特定的前缀,例如所有的1.我已经尝试过使用srcPattern,但出于某种原因它没有拿起任何文件.
我目前的命令是:
elastic-mapreduce --jobflow $JOBFLOW --jar /home/hadoop/lib/emr-s3distcp-1.0.jar \
--args '--src,s3n://some-bucket/,--dest,hdfs:///hdfs-input,--srcPattern,[0-9]-.*' \
--step-name "copying over s3 files"
Run Code Online (Sandbox Code Playgroud) 我使用Amazon Elastic MapReduce(Amazon EMR)创建了一个工作流程,由于某些未知原因,它失败了.然后我尝试通过AWS管理控制台终止作业流程,但禁用了"终止"按钮.然后我尝试使用CLI终止作业流程,它显示作业流程已终止,但在通过CLI以及管理控制台的Elastic MapReduce选项卡中看到作业流列表时仍显示为失败.
请让我知道如何从列表中删除作业流程.
当我尝试调试作业流程时,它显示两个错误:
command-line-interface amazon-s3 amazon-web-services amazon-emr elastic-map-reduce
我有我的mapper和reducer如下.但我得到了一些奇怪的例外.我无法弄清楚为什么会抛出这种异常.
public static class MyMapper implements Mapper<LongWritable, Text, Text, Info> {
@Override
public void map(LongWritable key, Text value,
OutputCollector<Text, Info> output, Reporter reporter)
throws IOException {
Text text = new Text("someText")
//process
output.collect(text, infoObjeject);
}
}
public static class MyReducer implements Reducer<Text, Info, Text, Text> {
@Override
public void reduce(Text key, Iterator<Info> values,
OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
String value = "xyz" //derived in some way
//process
output.collect(key, new Text(value)); //exception occurs at this line
}
} …Run Code Online (Sandbox Code Playgroud) 这是我在弹性搜索中存储在索引中的数据类型。我必须找到主要成分牛肉(重量小于 1000)的食谱和成分 -(辣椒粉和重量小于 250),(橄榄油和重量小于 300)以及所有其他成分类似。
"Name": "Real beef burritos",
"Ingredients": [
{"name": "olive oil",
"id": 27,
"weight": 200},
{"name": "bonion","id": 3,"weight": 300},
{"name": "garlic",
"id": 2,
"weight": 100
},
{"name": "chilli powder",
"id": 35,
"weight": 150},
{"name": "coriander",
"id": 40,
"weight": 600},
{"name": "tortillas",
"id": 41,
"weight": 700}
],"Main_ingredient": {
"type": "Beef",
"id": 101,
"weight": 1000
}}}
Run Code Online (Sandbox Code Playgroud)
索引的映射是
{"final":{"mappings":{"superb":{"properties":{"Cook Time":{"type":"long"},"Ingredients":{"type":"nested","properties":{"id":{"type":"short"},"name":{"type":"string"},"type":{"type":"string"},"weight":{"type":"short"}}},"Main_ingredient":{"properties":{"id":{"type":"long"},"type":{"type":"string"},"weight":{"type":"long"}}},"Name":{"type":"string"},"Prep Time":{"type":"long"},"Servings":{"type":"long"},"Tags":{"type":"string"},"Urls":{"type":"string"},"Views":{"type":"long"}}}}}}
Run Code Online (Sandbox Code Playgroud)
我的查询是
{
"query": {
"bool": {
"must": [
{ "match": { "Main_ingredient.type": "Beef" }},
{"range":{"Main_ingredient.weight":{"lte":1000}}},
{
"nested": {
"path": …Run Code Online (Sandbox Code Playgroud) querydsl elasticsearch elastic-map-reduce elasticsearch-plugin
我可以在AWS EMR上运行Spark,而不会出现文档,但从我看到它总是使用YARN而不是独立管理器.有没有办法轻松使用独立模式而不是YARN?我真的不想破解引导脚本来关闭纱线并自己部署火花主人/工人.
我遇到了一个奇怪的YARN相关错误,我希望它不会发生在独立经理身上.
amazon-web-services elastic-map-reduce hadoop-yarn apache-spark
我正在尝试使用 aws cli emr 命令创建集群。但是,我似乎无法在调用之前创建所需的默认角色aws emr create-cluster
$ aws emr create-default-roles
A client error (NoSuchEntity) occurred when calling the GetRole operation: Unknown
Run Code Online (Sandbox Code Playgroud)
我已确保我的用户具有以下权限:
IAMFullAccess - AWS Managed policy
AmazonElasticMapReduceforEC2Role - AWS Managed policy
AmazonElasticMapReduceFullAccess - AWS Managed policy
Run Code Online (Sandbox Code Playgroud)
有小费吗?有没有我可以复制角色 json 并手动创建它们的地方?
我开始这样做的原因是因为当我运行aws emr create-cluster它时会返回一个cluster-id. 但是当这cluster-id是查询时,它的状态设置为因错误而终止:EMR service role arn:aws:iam::141703095098:role/EMR_DefaultRole is invalid
hadoop ×4
amazon-s3 ×3
amazon-emr ×2
java ×2
amazon-ec2 ×1
apache-spark ×1
aws-cli ×1
bash ×1
hadoop-yarn ×1
hdfs ×1
imagemagick ×1
lzo ×1
mapreduce ×1
querydsl ×1