标签: amazon-emr

AWS EMR 自动缩放

我正在研究 AWS 上的 Hive(特别是 EMR)。他们提供了两种选择

  1. 生成 Ad-hoc 集群,其中在评估执行预先指定的 Hive 查询(在引导程序中)后,将拆除 EMR 集群。
  2. 以交互模式生成 Hive 集群,可以通过 SSH 连接到主服务器并使用hive命令行客户端提供 Hive 查询。

显然,在第二个选项中,集群将保持活动状态,直到明确要求终止为止。

我想修改保持活动配置单元集群中从属节点的数量。我在emr faq中读到它只支持添加和删除,task-nodes但仅支持添加(但不删除)core-nodes。核心节点有助于 HDFS 存储,但任务节点则不然。

我想向正在运行的集群添加更多核心节点,并在运行的查询数量较少时缩小它们的规模。有没有办法实现这一点(可能使用cloudwatch)?

hive amazon-web-services amazon-emr autoscaling

0
推荐指数
1
解决办法
4316
查看次数

EMR - 从S3运行Pig Script的问题

我尝试在EMR上运行Pig脚本,如:

pig -f s3://bucket-name/loadData.pig

但它失败了,错误:

错误2999:意外的内部错误.空值

org.apache.pmpl.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:778)中的org.apache.pig.impl.io.FileLocalizer.fetchFiles(FileLocalizer.java:746)中的java.lang.NullPointerException. apache.pig.PigServer.registerJar(PigServer.java:458)org.apache.pig.tools.grunt.GruntParser.processRegister(GruntParser.java:433)atg.apache.pig.tools.pigscript.parser.PigScriptParser.解析(PigScriptParser.java:445)org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170) org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)org.apache.pig.Main.run(Main.java:479)org.apache.pig.Main.main(Main .java:159)在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java. lang.reflect.Method.invoke(Method.java :606)在org.apache.hadoop.util.RunJar.main(RunJar.java:187)

loadData.pig看起来像:

A = load '/ajasing/input/input.txt' USING PigStorage('\t', '-noschema');
store A into '/ajasing/output1444/input1444.txt';
Run Code Online (Sandbox Code Playgroud)

我正在运行Pig版本0.11.1,hadoop版本1.0.3和AMI版本2.4.6.

如果我在本地执行这个猪,即通过在EMR集群上本地复制猪脚本,它工作正常.但是,如果猪脚本源是s3,它会因上述错误而失败.

请告诉我这里有什么问题.

hadoop amazon-s3 apache-pig amazon-emr

0
推荐指数
1
解决办法
1241
查看次数

通过AWS Emr CLI传递配置单元配置

我正在关注文档:http : //docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-dev-create-metastore-outside.html, 并尝试使用awscli == 1.10.38创建emr集群。

我使用文档中提到的以下命令:

aws emr create-cluster --release-label emr-5.0.0 --instance-type m3.xlarge --instance-count 2 \
--applications Name=Hive --configurations ./hiveConfiguration.json --use-default-roles
Run Code Online (Sandbox Code Playgroud)

我还使用与文档中提到的完全相同的hiveConfiguration.json。

但显示“ aws:错误:选项--configurations的json参数无效”

为什么会出现错误?

hive amazon-web-services amazon-emr emr aws-cli

0
推荐指数
1
解决办法
1008
查看次数

在EMR上将hadoop fs路径转换为hdfs://路径

我想知道如何将数据从EMR群集的HDFS文件系统移动到S3存储桶。我认识到我可以在Spark中直接写S3,但是原则上以后也应该很简单,到目前为止,我还没有发现这是真的。

AWS文档建议s3-dist-cp出于在HDFS和S3之间移动数据的目的。该文件s3-dist-cp国家的HDFS源应该在URL格式指定,即hdfs://path/to/file。到目前为止,我已经使用来在HDFS和本地文件系统之间移动数据hadoop fs -get,该语法采用path/to/file而不是hdfs://path/to/file。目前尚不清楚如何在两者之间进行映射。

我正在从SSH进入主节点。我尝试了以下方法,每个方法都有两个和三个斜杠:

  • hdfs:///[public IP]/path/to/file
  • hdfs:///[public IP]:8020/path/to/file
  • hdfs:///localhost/path/to/file
  • hdfs:///path/to/file
  • /path/to/file (以及许多变体)

在每种情况下,我的命令都按照文档的格式设置:

s3-dist-cp --src hdfs:// ... --dest s3:// my-bucket / destination

我已经尝试了单个文件和整个目录。在每种情况下,我都会得到一个错误,即源文件不存在。我究竟做错了什么?

hadoop amazon-s3 amazon-emr emr

0
推荐指数
1
解决办法
2436
查看次数

AWS DMS - 计划的数据库迁移

我在 RDS 中有 Postgresql 数据库。我需要每小时从 postgresql 数据库中的一堆表中获取数据并将数据推送到 S3 存储桶中。我只希望每小时发送增量更改(任何新的插入/更新)。是否可以使用 DMS 来完成此操作,或者 EMR 是执行此活动的更好工具吗?

postgresql amazon-s3 amazon-web-services amazon-emr aws-dms

0
推荐指数
1
解决办法
4942
查看次数

AWS EMR Spark --properties-file 类 com.amazon.ws.emr.hadoop.fs.EmrFileSystem 未找到

emr-5.20.0我尝试使用以下命令从 AWS EMR 主节点提交 Spark 应用程序:

spark-submit --executor-memory 4g --deploy-mode cluster --master yarn --class com.example.Application --properties-file config.conf s3://example-jobs/application.jar
Run Code Online (Sandbox Code Playgroud)

但它失败并出现以下错误:

Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found
Run Code Online (Sandbox Code Playgroud)

其原因在于以下参数:

--properties-file config.conf
Run Code Online (Sandbox Code Playgroud)

我做错了什么以及如何正确地将属性文件传递到 AWS EMR Apache Spark?

amazon-web-services amazon-emr apache-spark

0
推荐指数
1
解决办法
5412
查看次数

Spark 在读取 CSV 时跳过坏记录

我想将 .csv 文件中的加载数据读取到 Spark Dataframe 中,但我收到一条错误消息,很可能是由于输入错误。是否有可能以编程方式跳过坏行?

这是我的 Scala 代码。

val df = session.read
      .option("header", "true")
      .option("delimiter", delimiter)
      .option("inferSchema", "true")
      .option("timestampFormat", "yyyy/MM/dd HH:mm:ss ZZ")
      .csv(csvFilePath)
    onData(df)
Run Code Online (Sandbox Code Playgroud)

这是我从 Amazon EMR 获得的错误日志:

Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 61 in stage 1.0 failed 1 times, most recent failure: Lost task 61.0 in stage 1.0 (TID 62, localhost, executor driver): java.lang.NullPointerException
    at org.apache.spark.sql.execution.datasources.csv.CSVInferSchema$.org$apache$spark$sql$execution$datasources$csv$CSVInferSchema$$inferRowType(CSVInferSchema.scala:64)
    at org.apache.spark.sql.execution.datasources.csv.CSVInferSchema$$anonfun$2.apply(CSVInferSchema.scala:44)
    at org.apache.spark.sql.execution.datasources.csv.CSVInferSchema$$anonfun$2.apply(CSVInferSchema.scala:44)
    at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:142)
    at scala.collection.TraversableOnce$$anonfun$foldLeft$1.apply(TraversableOnce.scala:142)
    at scala.collection.Iterator$class.foreach(Iterator.scala:750)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1202)
    at scala.collection.TraversableOnce$class.foldLeft(TraversableOnce.scala:142)
    at …
Run Code Online (Sandbox Code Playgroud)

csv dataframe amazon-emr apache-spark

0
推荐指数
1
解决办法
3105
查看次数