hadoop - 获取 emr-ddb-hadoop.jar 以连接 DynamoDB 和 EMR Spark

标签 hadoop amazon-web-services apache-spark amazon-dynamodb

我有一个 DynamoDB 表,我需要连接到 EMR Spark SQL 以在该表上运行查询。我得到了带有发布标签 emr-4.6.0 和 Spark 1.6.1 的 EMR Spark Cluster。

我指的是文档:Analyse DynamoDB Data with Spark

连接到主节点后,我运行命令:

spark-shell --jars /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar

它给出警告:

Warning: Local jar /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar does not exist, skipping.

稍后,当我使用导入 DynamoDB 输入格式时

导入 org.apache.hadoop.dynamodb.read.DynamoDBInputFormat 导入 org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat

它给出了错误:

 error: object dynamodb is not a member of package org.apache.hadoop
     import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
 error: object dynamodb is not a member of package org.apache.hadoop
     import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat

我认为是导致此错误的 jar。我从哪里获得这个 emr-ddb-hadoop.jar?

最佳答案

不要使用spark-shell --jars,在spark-default.cnf中配置:

spark.driver.extraClassPath  /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar
spark.executor.extraClassPath /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar

稍后导入DynamoDB Input Format即可

import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat

关于hadoop - 获取 emr-ddb-hadoop.jar 以连接 DynamoDB 和 EMR Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060243/

相关文章:

javascript - AWS 将 Lambda 函数与 SNS 链接起来

amazon-web-services - 将 DynamoDB 的 updateItem 与数值一起使用

scala - 为什么 RDD.map 里面的代码没有在 YARN 中执行?

hadoop - 使用 Hive Sed 命令加载数据

hadoop - 单节点群集上的HDFS复制因子

amazon-web-services - AWS SAM Rest api 网关无法正确处理自定义域中的 '-'

python-2.7 - 如何在 Spark 执行器崩溃后重新启动它(在 YARN 客户端模式下)?

apache-spark - 将 spark 数据帧的每一行写为一个单独的文件

hadoop - Hadoop中的分布式缓存

scala - Spark SBT 程序尝试从本地文件系统而不是 IntelliJ 项目中的 hdfs 读取