我有一个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?
3条答案
按热度按时间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/
目录。piok6c0g2#
此问题的根本原因是emr-ddb-hadoop.jar在环境(或指定的位置)中不可用。为了安装dynamo db库,在创建spark emr集群时,必须选择hadoop2.7.2以及感兴趣的应用程序。你选了吗?
如果没有启动一个新的集群,请转到高级选项,并确保hadoop2.7.2与其他应用程序一起被选中。
fwzugrvs3#
不要在spark-default.cnf中使用spark shell--jars,配置:
稍后,导入dynamodb输入格式就可以了