全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
E-MapReduce

准备工作

更新时间:2017-07-03 11:35:43

安装 E-MapReduce SDK

你可以通过以下两种方法安装 E-MapReduce SDK。

方法一:直接在 Eclipse 中使用 JAR 包,步骤如下:

  1. 从Maven库源下载E-MapReduce开发的依赖包。

  2. 将所需的jar包拷贝到您的工程文件夹中。(SDK版本是否选择2.10还是2.11主要根据您运行作业的集群Spark版本,Spark1.x版本建议使用2.10,Spark2.x建议使用2.11)

  3. 在 Eclipse 中右击工程的名字,然后单击Properties -> Java Build Path -> Add JARs

  4. 选择您下载的 SDK。

  5. 经过上面几步之后,您就可以在工程中读写 OSS、LogService、MNS、ONS、OTS、MaxCompute 等数据了。

方法二:Maven 工程的方式,请添加如下依赖:

  1. <!--支持OSS数据源 -->
  2. <dependency>
  3. <groupId>com.aliyun.emr</groupId>
  4. <artifactId>emr-core</artifactId>
  5. <version>1.4.1</version>
  6. </dependency>
  7. <!--支持OTS数据源-->
  8. <dependency>
  9. <groupId>com.aliyun.emr</groupId>
  10. <artifactId>emr-tablestore</artifactId>
  11. <version>1.4.1</version>
  12. </dependency>
  13. <!-- 支持 MNS、ONS、LogService、MaxCompute数据源 (Spark 1.x环境)-->
  14. <dependency>
  15. <groupId>com.aliyun.emr</groupId>
  16. <artifactId>emr-mns_2.10</artifactId>
  17. <version>1.4.1</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>com.aliyun.emr</groupId>
  21. <artifactId>emr-logservice_2.10</artifactId>
  22. <version>1.4.1</version>
  23. </dependency>
  24. <dependency>
  25. <groupId>com.aliyun.emr</groupId>
  26. <artifactId>emr-maxcompute_2.10</artifactId>
  27. <version>1.4.1</version>
  28. </dependency>
  29. <dependency>
  30. <groupId>com.aliyun.emr</groupId>
  31. <artifactId>emr-ons_2.10</artifactId>
  32. <version>1.4.1</version>
  33. </dependency>
  34. <!-- 支持 MNS、ONS、LogService、MaxCompute数据源 (Spark 2.x环境)-->
  35. <dependency>
  36. <groupId>com.aliyun.emr</groupId>
  37. <artifactId>emr-mns_2.11</artifactId>
  38. <version>1.4.1</version>
  39. </dependency>
  40. <dependency>
  41. <groupId>com.aliyun.emr</groupId>
  42. <artifactId>emr-logservice_2.11</artifactId>
  43. <version>1.4.1</version>
  44. </dependency>
  45. <dependency>
  46. <groupId>com.aliyun.emr</groupId>
  47. <artifactId>emr-maxcompute_2.11</artifactId>
  48. <version>1.4.1</version>
  49. </dependency>
  50. <dependency>
  51. <groupId>com.aliyun.emr</groupId>
  52. <artifactId>emr-ons_2.11</artifactId>
  53. <version>1.4.1</version>
  54. </dependency>

Spark 代码本地调试

注意:“spark.hadoop.mapreduce.job.run-local”这个配置项只是针对需要在本地调试 Spark 代码读写 OSS 数据的场景,除此之外只需要保持默认即可。

如果需要本地调试运行 Spark 代码读写 OSS 数据,则需要对 SparkConf 进行配置,将“spark.hadoop.mapreduce.job.run-local”设为“true”,例如如下代码:

  1. val conf = new SparkConf().setAppName(getAppName).setMaster("local[4]")
  2. conf.set("spark.hadoop.fs.oss.impl", "com.aliyun.fs.oss.nat.NativeOssFileSystem")
  3. conf.set("spark.hadoop.mapreduce.job.run-local", "true")
  4. val sc = new SparkContext(conf)
  5. val data = sc.textFile("oss://...")
  6. println(s"count: ${data.count()}")

三方依赖说明

为了支持在E-MapReduce上操作阿里云的数据源(包括 OSS、MaxCompute等),需要您的作业依赖一些三方包。

您可以参照这个pom文件来增删需要依赖的三方包。

垃圾清理

Spark作业失败后,已产生的数据是不会主动清理掉的。当您运行Spark作业失败后,请检查一下OSS输出目录是否有文件存在,您还需要检查OSS碎片管理中是否还有没有提交的碎片存在,如果存在请及时清理掉。

pyspark 使用说明

如果您使用的是python来编写Spark作业,那么请参考这里配置您的环境。

本文导读目录