2016-05-05 19 views
3

テーブルに対してクエリを実行するためにEMR Spark SQLに接続するために必要なDynamoDBテーブルがあります。 Emr-4.6.0とSpark 1.6.1をリリースラベルとするEMR Spark Clusterを入手しました。EMRとDynamoDBを接続するためのemr-ddb-hadoop.jarの取得spark

私は、ドキュメントを参照しています:マスターノードに接続した後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入力フォーマットをインポートします。

それはエラーを与える:

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 

私はそれがこのエラーの原因となっている瓶だと思います。このemr-ddb-hadoop.jarはどこで入手できますか?

答えて

2

は火花default.cnfの構成で、火花シェル--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の入力形式はOK

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

誰かが不思議に思われる場合は、通常、上記の設定ファイルの場所は/etc/spark/conf/spark-defaults.confです。 –

2

の根本的な原因でありますこの問題は、emr-ddb-hadoop.jarが環境(または指定された場所)で使用できないということです。 dynamo DBライブラリをインストールするには、spark EMRクラスタを作成するときに、興味のあるアプリケーションとともにHadoop 2.7.2を選択する必要があります。それを選択しましたか?

新しいクラスタを起動しない場合は、詳細オプションにアクセスして、他のアプリケーションとともにHadoop 2.7.2が選択されていることを確認してください。

0

実際に/usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jarはEMRの発売には存在しません。

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/ディレクトリの内容を確認してください:あなたは、まず必要BIGTOPパッケージをインストールする必要があります。

関連する問題