【问题标题】:Trying to access s3 bucket using scala application尝试使用 scala 应用程序访问 s3 存储桶
【发布时间】:2017-02-07 06:52:53
【问题描述】:

我想使用 scala 应用程序访问 amazon s3 存储桶。我已经在我的 Eclipse 中设置了 scala IDE。但是,当我尝试在本地 (Run As --> Scala Application) 上运行 >application 时,它会在控制台上显示以下 >error。错误:无法找到或加载主类 org.test.spark1.test 我试图运行一个简单的 wordcount 应用程序,在该应用程序中我正在访问存储在我的 S3 存储桶中的 >file 并将结果存储在另一个文件中。请让我明白可能是什么问题。

注意:我正在使用 eclipse maven 项目。我的 scala 应用程序代码是:

package org.test.spark1
import com.amazonaws._
import com.amazonaws.auth._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import com.amazonaws.services.s3._
import com.amazonaws.services.s3.model.GetObjectRequest
import java.io.File;
object test extends App {
def main(args: Array[String])  {
val myAccessKey = "here is my key"
val mySecretKey = "here is my secret key"
val bucket = "nlp.spark.apps"
val conf = new SparkConf().setAppName("sample")
val sc = new SparkContext(conf)
val yourAWSCredentials = new BasicAWSCredentials(myAccessKey, mySecretKey)
val amazonS3Client = new AmazonS3Client(yourAWSCredentials)
// This will create a bucket for storage
amazonS3Client.createBucket("nlp-spark-apps2")
val s3data = sc.textFile("here is my url of text file")
s3data.flatMap(line =>
  line.split(" "))
  .map(word =>
    (word, 1))
  .reduceByKey(_ * _)
  .saveAsTextFile("/home/hadoop/cluster-code2.txt")
}}      

【问题讨论】:

  • 不需要test extends App 和main 方法。任选其一。
  • 我从代码中删除了 extends App.. 但错误仍然存​​在

标签: java scala maven apache-spark amazon-s3


【解决方案1】:

我遇到的一个可能的解决方案是 Scala IDE 不会自动检测您的主类:

  1. 转到菜单-->“运行”-->“运行配置”
  2. 单击“Scala 应用程序”和“新启动配置”图标
  3. 对于项目选择您的项目,对于主类(由于某种原因未自动检测到)手动输入(在您的情况下)org.test.spark1.test
  4. 应用并运行

或

您可以尝试使用 spark-submit 在不使用 Eclipse 的情况下在本地运行 Spark 作业。

spark-submit --class org.test.spark1.test --master local[8] {path to assembly jar}

另外,您永远不应该对您的 AWS 凭证进行硬编码。我建议你使用InstanceProfileCredentialsProvider。此凭证存在于与 EC2 实例的 IAM 角色关联的实例元数据中。

【讨论】:

    猜你喜欢
    • 2017-05-29
    • 2016-11-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 2023-02-19
    • 1970-01-01
    相关资源
    最近更新 更多