Amazon ec2 从本地计算机使用EC2(主服务器)上的apache spark时出现问题

Amazon ec2 从本地计算机使用EC2(主服务器)上的apache spark时出现问题,amazon-ec2,localhost,apache-spark,yarn,master-slave,Amazon Ec2,Localhost,Apache Spark,Yarn,Master Slave,我使用的是ApacheSpark1.3.0和Hadoop1.0.4 我已经成功地在EC2上安装了所有东西,并且我正在运行EC2上的所有东西,没有任何问题。主设备和从设备按预期运行 我现在要做的是从本地机器上运行它,并通过发出以下命令来访问主机(位于ec2上): /火花壳-主spark://ec2-blahblah.compute.amazonaws.com:7077 --conf key=/blah/blah.pem——驱动核心4——执行器内存512m 我得到的(无论是否更改内核和执行器内存)是

我使用的是ApacheSpark1.3.0和Hadoop1.0.4 我已经成功地在EC2上安装了所有东西,并且我正在运行EC2上的所有东西,没有任何问题。主设备和从设备按预期运行

我现在要做的是从本地机器上运行它,并通过发出以下命令来访问主机(位于ec2上):

/火花壳-主spark://ec2-blahblah.compute.amazonaws.com:7077 --conf key=/blah/blah.pem——驱动核心4——执行器内存512m

我得到的(无论是否更改内核和执行器内存)是无法连接到spark://ec2-blahblah.compute.amazonaws.com

另外,我得到了著名的警告:WARN TaskSchedulerImpl:初始作业未接受任何资源;检查集群UI以确保工作人员已注册并拥有足够的资源

我做错了什么

我需要设置哪些配置

如何确保与“./spark shell--master”的连接spark://ec2-blahblah.compute.amazon....“不使用纱线

编辑,我得到的错误是:

    ...
After setting the fs.s3n.awsAccessKeyId and fs.s3n.awsSecretAccessKey
...
scala> val csv = sc.textFile("s3n://LOCATION OF A FILE”)
 15/03/27 15:25:05 INFO MemoryStore: ensureFreeSpace(35538) called with curMem=0, maxMem=278019440
15/03/27 15:25:05 INFO MemoryStore: Block broadcast_0 stored as values in memory (estimated size 34.7 KB, free 265.1 MB)
15/03/27 15:25:05 INFO MemoryStore: ensureFreeSpace(5406) called with curMem=35538, maxMem=278019440
15/03/27 15:25:05 INFO MemoryStore: Block broadcast_0_piece0 stored as bytes in memory (estimated size 5.3 KB, free 265.1 MB)
15/03/27 15:25:05 INFO BlockManagerInfo: Added broadcast_0_piece0 in memory on 192.168.0.188:54529 (size: 5.3 KB, free: 265.1 MB)
15/03/27 15:25:05 INFO BlockManagerMaster: Updated info of block broadcast_0_piece0
15/03/27 15:25:05 INFO SparkContext: Created broadcast 0 from textFile at <console>:21
csv: org.apache.spark.rdd.RDD[String] = s3n://rtlm-dev/Iris_rtlm.csv MapPartitionsRDD[1] at textFile at <console>:21

scala> val cnt = csv.count
15/03/27 15:25:17 INFO Client: Retrying connect to server: ec2-52-11-115-141.us-west-2.compute.amazonaws.com/52.11.115.141:9000. Already tried 0 time(s).
15/03/27 15:25:26 INFO Client: Retrying connect to server: ec2-52-11-115-141.us-west-2.compute.amazonaws.com/52.11.115.141:9000. Already tried 1 time(s).
—————————————
Second error is (when trying to do the PI example)

15/03/27 15:29:04 INFO SparkContext: Starting job: reduce at <console>:33
15/03/27 15:29:04 INFO DAGScheduler: Got job 0 (reduce at <console>:33) with 2 output partitions (allowLocal=false)
15/03/27 15:29:04 INFO DAGScheduler: Final stage: Stage 0(reduce at <console>:33)
15/03/27 15:29:04 INFO DAGScheduler: Parents of final stage: List()
15/03/27 15:29:04 INFO DAGScheduler: Missing parents: List()
15/03/27 15:29:04 INFO DAGScheduler: Submitting Stage 0 (MapPartitionsRDD[1] at map at <console>:29), which has no missing parents
15/03/27 15:29:04 INFO MemoryStore: ensureFreeSpace(1912) called with curMem=0, maxMem=278019440
15/03/27 15:29:04 INFO MemoryStore: Block broadcast_0 stored as values in memory (estimated size 1912.0 B, free 265.1 MB)
15/03/27 15:29:04 INFO MemoryStore: ensureFreeSpace(1307) called with curMem=1912, maxMem=278019440
15/03/27 15:29:04 INFO MemoryStore: Block broadcast_0_piece0 stored as bytes in memory (estimated size 1307.0 B, free 265.1 MB)
15/03/27 15:29:04 INFO BlockManagerInfo: Added broadcast_0_piece0 in memory on 192.168.0.188:54583 (size: 1307.0 B, free: 265.1 MB)
15/03/27 15:29:04 INFO BlockManagerMaster: Updated info of block broadcast_0_piece0
15/03/27 15:29:04 INFO SparkContext: Created broadcast 0 from broadcast at DAGScheduler.scala:839
15/03/27 15:29:04 INFO DAGScheduler: Submitting 2 missing tasks from Stage 0 (MapPartitionsRDD[1] at map at <console>:29)
15/03/27 15:29:04 INFO TaskSchedulerImpl: Adding task set 0.0 with 2 tasks
15/03/27 15:29:19 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
。。。
设置fs.s3n.awsAccessKeyId和fs.s3n.awsSecretAccessKey后
...
scala>val csv=sc.textFile(“s3n://文件位置”)
15/03/27 15:25:05信息内存存储:使用curMem=0、maxMem=278019440调用EnsureRefreeSpace(35538)
15/03/27 15:25:05信息内存存储:块广播0存储为内存中的值(估计大小34.7KB,可用容量265.1MB)
15/03/27 15:25:05信息内存存储:使用curMem=35538、maxMem=278019440调用EnsureRefreeSpace(5406)
15/03/27 15:25:05信息存储器存储:块广播0存储为内存中的字节(估计大小为5.3 KB,可用容量为265.1 MB)
15/03/27 15:25:05信息块管理信息:在192.168.0.188:54529上的内存中添加了广播片段0(大小:5.3KB,可用空间:265.1MB)
15/03/27 15:25:05信息区块管理器管理员:区块广播的更新信息
15/03/27 15:25:05信息SparkContext:在21处从文本文件创建广播0
csv:org.apache.spark.rdd.rdd[String]=s3n://rtlm dev/Iris_rtlm.csv MapPartitionsRDD[1]位于文本文件的21
scala>val cnt=csv.count
15/03/27 15:25:17信息客户端:正在重试连接到服务器:ec2-52-11-115-141.us-west-2.compute.amazonaws.com/52.11.115.141:9000。已尝试0次。
15/03/27 15:25:26信息客户端:重试连接到服务器:ec2-52-11-115-141.us-west-2.compute.amazonaws.com/52.11.115.141:9000。已尝试1次。
—————————————
第二个错误是(尝试执行PI示例时)
15/03/27 15:29:04信息SparkContext:开始作业:减少时间:33
15/03/27 15:29:04信息调度程序:已获取具有2个输出分区(allowLocal=false)的作业0(减少时间:33)
15/03/27 15:29:04信息调度程序:最终阶段:阶段0(减少时间:33)
15/03/27 15:29:04信息调度程序:最终阶段的父级:列表()
15/03/27 15:29:04信息调度程序:缺少家长:列表()
15/03/27 15:29:04信息调度程序:正在提交阶段0(map at:29处的MapPartitionsRDD[1]),该阶段没有丢失的父级
15/03/27 15:29:04信息内存存储:EnsureRefreeSpace(1912)调用时curMem=0,maxMem=278019440
15/03/27 15:29:04信息内存存储:块广播0存储为内存中的值(估计大小1912.0 B,可用容量265.1 MB)
15/03/27 15:29:04信息内存存储:使用curMem=1912、maxMem=278019440调用EnsureRefreeSpace(1307)
15/03/27 15:29:04信息存储器存储:块广播0以字节形式存储在内存中(估计大小1307.0 B,可用容量265.1 MB)
15/03/27 15:29:04信息块管理信息:在192.168.0.188:54583上的内存中添加了广播块0(大小:1307.0 B,可用空间:265.1 MB)
15/03/27 15:29:04信息区块管理器管理员:区块广播的更新信息
15/03/27 15:29:04信息SparkContext:从DAGScheduler上的广播创建了广播0。scala:839
15/03/27 15:29:04信息计划程序:提交阶段0中缺少的2个任务(map at:29处的MapPartitionsRDD[1])
15/03/27 15:29:04信息TaskSchedulerImpl:添加包含2个任务的任务集0.0
15/03/27 15:29:19警告TaskSchedulerImpl:初始作业未接受任何资源;请检查群集UI以确保工作人员已注册并且具有足够的资源

是否添加了允许从计算机访问端口7077的安全规则?

是否尝试显式绑定到公共EC2名称

在火花环境sh中:

export SPARK_PUBLIC_DNS=ec2-blahblah.compute.amazonaws.com
export STANDALONE_SPARK_MASTER_HOST=ec2-blahblah.compute.amazonaws.com

此外,还可以尝试设置
SPARK\u MASTER\u IP

我也遇到了这个错误,除了上面的帖子,我自己发现,ec2实例的安全规则应该理想地打开所有端口,因为我检查了文档,主/辅通信似乎会随机选择端口号并绑定到该po上rt

我的解决方案是使用子网和专用IP,然后打开子网内的所有端口。也许你可以试试


另外,如果您有一个具有多个ec2实例的集群,即一个ec2实例专用为主实例,另一个ec2实例耦合为工作实例,那么集群模式“独立”可能无法工作,请将其更改为尝试。

有趣的是,我应该在何处添加此规则?(Hvala puno!)编辑:如果您谈论的是EC2规则,所有TCP都是允许的启动spark shell时会出现什么错误?(Nema na cemu:))请查看更新的问题,我已添加了我看到的消息(我跳过了加载显示信息部分,如果您对其中的任何特定行感兴趣,请告诉我)我目瞪口呆,因为我试图解决这两天…任何想法?(ps编辑的标题,谢谢!)第一个错误看起来你连接到S3有问题。但是第二个错误看起来你的群集设置不正确。那么主Web UI显示什么?当你运行启动脚本时,日志显示什么?你的所有机器都可以使用正确的主机名相互查看吗?谢谢,我会在有空闲时间尝试时通知你。B默认情况下,spark ec2脚本以独立模式部署。我不确定是什么