标签: amazon-emr

AWS EMR上的Spark UI

我正在运行通过EMR控制台下拉列表安装Spark(1.3.1)的AWS EMR集群.Spark是当前和处理数据,但我试图找到已分配给WebUI的端口.我尝试过端口转发4040和8080没有连接.我这样转发

ssh -i ~/KEY.pem -L 8080:localhost:8080 hadoop@EMR_DNS
Run Code Online (Sandbox Code Playgroud)

1)如何找出Spark WebUI分配的端口是什么?2)如何验证Spark WebUI是否正在运行?

amazon-emr apache-spark

14
推荐指数
3
解决办法
2万
查看次数

AWS EMR - IntelliJ远程调试Spark应用程序

我想调试在AWS EMR集群上运行的Spark应用程序.如果我可以使用IntelliJ远程连接和调试它将是太棒了.我搜索过但发现很少.

有可能,如果是这样,有人可以指出我正确的方向吗?

谢谢.

remote-debugging intellij-idea amazon-web-services amazon-emr apache-spark

14
推荐指数
1
解决办法
2416
查看次数

Amazon Emr - 当我们有核心节点时,任务节点需要什么?

我最近在学习 Amazon EMR,据我所知,EMR 集群让我们可以选择 3 个节点。

  1. Master 运行主要的 Hadoop 守护进程,如 NameNode、Job Tracker 和资源管理器。
  2. 运行 Datanode 和 Tasktracker 守护进程的核心。
  3. 仅运行 TaskTracker 的任务。

我问你们为什么 EMR 提供任务节点?hadoop 建议我们应该在同一个节点上安装 Datanode 守护进程和 Tasktracker 守护进程。亚马逊这样做背后的逻辑是什么?您可以将 S3 中的数据通过流传输到核心节点上的 HDFS,在 HDFS 上进行处理,而不是将数据从 HDFS 共享到任务节点,在这种情况下这会增加 IO 开销。因为就我在 hadoop 中的知识而言,TaskTrackers 运行在 DataNodes 上,DataNodes 具有用于该特定任务的数据块,那么为什么在不同的节点上有 TaskTracker 呢?

hadoop amazon-emr hadoop2

14
推荐指数
2
解决办法
7759
查看次数

Python pip install pyarrow 错误,无法执行'cmake'

我正在尝试在我的 EMR 集群的主实例上安装 pyarrow,但是我总是收到此错误。

[hadoop@ip-XXX-XXX-XXX-XXX ~]$ sudo /usr/bin/pip-3.4 install pyarrow
Collecting pyarrow
Downloading https://files.pythonhosted.org/packages/c0/a0/f7e9dfd8988d94f4952f9b50eb04e14a80fbe39218520725aab53daab57c/pyarrow-0.10.0.tar.gz (2.1MB)
100% |????????????????????????????????| 2.2MB 643kB/s 
Requirement already satisfied: numpy>=1.10 in /usr/local/lib64/python3.4/site-packages (from pyarrow)
Requirement already satisfied: six>=1.0.0 in /usr/local/lib/python3.4/site-packages (from pyarrow)
Installing collected packages: pyarrow
Running setup.py install for pyarrow ... error
Complete output from command /usr/bin/python3.4 -u -c "import setuptools, tokenize;__file__='/mnt/tmp/pip-build-pr3y5_mu/pyarrow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-vmywdpeg-record/install-record.txt --single-version-externally-managed --compile:
/usr/lib64/python3.4/distutils/dist.py:260: UserWarning: Unknown distribution option: 'long_description_content_type'
warnings.warn(msg)
/mnt/tmp/pip-build-pr3y5_mu/pyarrow/.eggs/setuptools_scm-3.1.0-py3.4.egg/setuptools_scm/utils.py:118: UserWarning: 'git' was not found
running …
Run Code Online (Sandbox Code Playgroud)

pip cmake amazon-emr python-3.x pyarrow

14
推荐指数
2
解决办法
2万
查看次数

会话在 AWS EMR 集群中不活跃 Pyspark

我打开了一个 AWS EMR 集群,并在 pyspark3 jupyter notebook 中运行了以下代码:

"..
textRdd = sparkDF.select(textColName).rdd.flatMap(lambda x: x)
textRdd.collect().show()
.."
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

An error was encountered:
Invalid status code '400' from http://..../sessions/4/statements/7 with error payload: {"msg":"requirement failed: Session isn't active."}
Run Code Online (Sandbox Code Playgroud)

运行线路:

sparkDF.show()
Run Code Online (Sandbox Code Playgroud)

作品!

我还创建了该文件的一小部分,并且我的所有代码都运行良好。

问题是什么?

amazon-emr pyspark

14
推荐指数
3
解决办法
8667
查看次数

引导后,AWS EMR pandas 与 pyspark 中的 numpy 发生冲突

使用以下引导代码启动集群并获取以下标准输出后,当我尝试在 pyspark 中导入 pandas 时,由于与标准输出中不存在的不同 numpy 版本冲突,出现以下错误。因此,pyspark 似乎选择性地忽略了 numpy 安装并使用导致冲突的旧版本。我该如何解决这个问题?

我使用的emr版本是emr-5.33.0

import pandas as pd
  File "/usr/local/lib64/python3.7/site-packages/pandas/__init__.py", line 22, in <module>
    from pandas.compat import (
  File "/usr/local/lib64/python3.7/site-packages/pandas/compat/__init__.py", line 15, in <module>
    from pandas.compat.numpy import (
  File "/usr/local/lib64/python3.7/site-packages/pandas/compat/numpy/__init__.py", line 21, in <module>
    f"this version of pandas is incompatible with numpy < {_min_numpy_ver}\n"
ImportError: this version of pandas is incompatible with numpy < 1.17.3
your numpy version is 1.16.5.
Please upgrade numpy to >= 1.17.3 to use this pandas version
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的引导代码 …

numpy amazon-web-services amazon-emr pandas pyspark

14
推荐指数
1
解决办法
3972
查看次数

文件夹不会在Amazon S3上删除

我正在尝试删除由于MapReduce作业而创建的文件夹.存储桶中的其他文件删除就好了,但此文件夹不会删除.当我尝试从控制台中删除它时,其状态旁边的进度条保持为0.已进行多次尝试,包括其间的注销/登录.

amazon-s3 amazon-web-services amazon-emr

13
推荐指数
2
解决办法
2万
查看次数

尝试访问Amazon EMR Spark Cluster时出现"操作超时"错误

我正在尝试ssh到Amazon EMR Spark Cluster.这是我做的:

  1. 获取集群主机的IP:

    aws emr describe-cluster --cluster-id <cluster_id> | grep MasterPublicDnsName
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用IP ssh到框中:

    ssh -i CSxxx.pem hadoop@ec2-xx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com
    
    Run Code Online (Sandbox Code Playgroud)

我被困在这里,因为跑步(2)给了我以下错误:

ssh: connect to host ec2-xx-xxx-xxx-xxx.ap-southeast-1.compute.amazonaws.com port 22: Operation timed out
Run Code Online (Sandbox Code Playgroud)

有什么想法来解决这个问题?

ssh amazon-emr apache-spark

13
推荐指数
2
解决办法
3251
查看次数

mrjob:无效的引导操作路径,必须是Amazon S3中的位置

我在Windows 7上.我安装了mrjob,当我从网站运行示例word_count文件时,它在本地计算机上运行正常.但是,我在尝试在Amazon EMR上运行它时收到错误.我甚至测试了用boto连接亚马逊s3并且它有效.

mrjob.conf文件

runners:
  emr:
    aws_access_key_id: xxxxxxxxxxxxx
    aws_region: us-east-1
    aws_secret_access_key: xxxxxxxx
    ec2_key_pair: bzy
    ec2_key_pair_file: C:\aa.pem
    ec2_instance_type: m1.small
    num_ec2_instances: 3
    s3_log_uri: s3://myunique/
    s3_scratch_uri: s3://myunique/
Run Code Online (Sandbox Code Playgroud)

在我的cmd中运行以下内容

python word_count.py -c mrjob.conf -r emr mytext.txt
Run Code Online (Sandbox Code Playgroud)

它产生

在此输入图像描述

根据建议这是一个与Windows路径相关的问题,我在源代码中仔细检查了parse.py,它似乎有处理窗口文件类型的相关检查

# Used to check if the candidate candidate uri is actually a local windows path.
WINPATH_RE = re.compile(r"^[aA-zZ]:\\")


def is_windows_path(uri):
    """Return True if *uri* is a windows path."""
    if WINPATH_RE.match(uri):
        return True
    else:
        return False


def is_uri(uri):
    """Return True if *uri* is any sort …
Run Code Online (Sandbox Code Playgroud)

python amazon-emr mrjob

12
推荐指数
1
解决办法
582
查看次数

将数据帧保存到本地文件系统会导致结果为空

我们正在运行spark 2.3.0 AWW EMR.以下DataFrame" df"非空且大小适中:

scala> df.count
res0: Long = 4067
Run Code Online (Sandbox Code Playgroud)

下面的代码工作正常写dfhdfs:

   scala> val hdf = spark.read.parquet("/tmp/topVendors")
hdf: org.apache.spark.sql.DataFrame = [displayName: string, cnt: bigint]

scala> hdf.count
res4: Long = 4067
Run Code Online (Sandbox Code Playgroud)

但是,使用相同的代码写入本地parquetcsv文件最终结果为空:

df.repartition(1).write.mode("overwrite").parquet("file:///tmp/topVendors")

scala> val locdf = spark.read.parquet("file:///tmp/topVendors")
org.apache.spark.sql.AnalysisException: Unable to infer schema for Parquet. It must be specified manually.;
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$9.apply(DataSource.scala:207)
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$9.apply(DataSource.scala:207)
  at scala.Option.getOrElse(Option.scala:121)
Run Code Online (Sandbox Code Playgroud)

我们可以看到它失败的原因:

 ls -l /tmp/topVendors
total 0
-rw-r--r-- 1 hadoop hadoop 0 Jul 30 …
Run Code Online (Sandbox Code Playgroud)

amazon-emr apache-spark

12
推荐指数
1
解决办法
7938
查看次数