获取emr-ddb-hadoop.jar以连接dynamodb和emr spark

kognpnkq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(3)|浏览(412)

我有一个dynamodb表,需要连接到emr spark sql来对该表运行查询。我得到了电子病历Spark集群与释放标签emr-4.6.0和Spark1.6.1它。
我指的是文件:用spark分析dynamodb数据
连接到主节点后,我运行以下命令:

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输入格式时 import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat import 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?

wvyml7n5

wvyml7n51#

的确 /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar 在emr启动时不存在。您应该首先安装必要的bigtop包: sudo yum install -y /var/aws/emr/packages/bigtop/emr-ddb/noarch/emr-ddb-hadoop-3.0.0-1.amzn1.noarch.rpm 注意,可能存在另一个包版本-检查 /var/aws/emr/packages/bigtop/emr-ddb/noarch/ 目录。

piok6c0g

piok6c0g2#

此问题的根本原因是emr-ddb-hadoop.jar在环境(或指定的位置)中不可用。为了安装dynamo db库,在创建spark emr集群时,必须选择hadoop2.7.2以及感兴趣的应用程序。你选了吗?
如果没有启动一个新的集群,请转到高级选项,并确保hadoop2.7.2与其他应用程序一起被选中。

fwzugrvs

fwzugrvs3#

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

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输入格式就可以了

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

相关问题