2

Clouderaのクイックスタートドッカーコンテナを使用して、単純なHadoop/Hiveジョブをテストしようとしています。私はS3でデータ上でジョブを実行できるようにしたいが、今のところ問題がある。AWS資格情報の設定 - Clouderaクイックスタートドッカーコンテナ

以下のプロパティをcore-site.xml、hive-site.xml、hdfs-site.xmlに追加しました。

FAILED: SemanticException java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified as the username or password (respectively) of a s3 URL, or by setting the fs.s3.awsAccessKeyId or fs.s3.awsSecretAccessKey properties (respectively). 

答えて

0

場所の数は、Clouderaの中に潜在的に設定されAWSの資格情報にありますに関係なく、ハイブ内S3の場所を指す外部表を作成しようとしたとき、私はエラーを取得する

<property> 
    <name>fs.s3.awsAccessKeyId</name> 
    <value>XXXXXX</value> 
    </property> 

    <property> 
    <name>fs.s3.awsSecretAccessKey</name> 
    <value>XXXXXX</value> 
    </property> 

クイックスタートコンテナ。ただし、Clouderaサービスを開始する前に、Hadoop設定ファイルの資格情報のプロパティを設定する必要があります。 AWSキーを環境変数としてエクスポートすると便利です。

Clouderaのクイックスタート容器can be found hereにAWS認証情報を設定ドッカー画像、この画像上のブログの記事の例ができbe seen here.

本質的にこのイメージのDockerfileは、シェルスクリプトを使用して(内容は以下に示す)に環境変数としてAWSキーを設定し、sedを使用して/etc/hadoop/conf/core-site.xmlをAWS s3nおよびs3a資格情報プロパティで更新します。このスクリプトは、クイックスタートコンテナ内のClouderaサービスが起動する前に実行されます。

私はあなたが今では、問題を修正しただろうが、いずれかが、私たちが作るために必要なすべてのXMLファイルにアクセスキー& secretAccesskeyを追加した後、このリンク

を参照するために起こっている場合、それは役に立つかもしれない願ってい

#!/bin/bash 

# ADD ACTUAL AWS KEYS HERE BEFORE RUNNING SCRIPT/BUILDING DOCKER IMAGE 
####################################################################### 
AWS_ACCESS_KEY_ID=REPLACE-ME 
AWS_SECRET_ACCESS_KEY=REPLACE-ME 
###################################################################3 

# add aws creds to .bashrc 
echo "export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID" >> /root/.bashrc 
echo "export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" >> /root/.bashrc 

# make backup of core-site.xml 
mv /etc/hadoop/conf/core-site.xml /etc/hadoop/conf/core-site.xml.bak 

# add aws credentials for s3a and s3n to core-site.xml 
cat /etc/hadoop/conf/core-site.xml.bak \ 
    | sed "s#<\/configuration>#<property>\n<name>fs.s3a.awsAccessKeyId<\/name>\n<value>${AWS_ACCESS_KEY_ID}<\/value>\n<\/property>\n<property>\n<name>fs.s3a.awsSecretAccessKey<\/name>\n<value>${AWS_SECRET_ACCESS_KEY}<\/value>\n<\/property>\n<property>\n<name>fs.s3n.awsAccessKeyId<\/name>\n<value>${AWS_ACCESS_KEY_ID}<\/value>\n<\/property>\n<property>\n<name>fs.s3n.awsSecretAccessKey<\/name>\n<value>${AWS_SECRET_ACCESS_KEY}<\/value>\n<\/property>\n<\/configuration>#g" \ 
    > /etc/hadoop/conf/core-site.xml 
0

クエリで指定されたs3の位置は、「s3:a://」である必要があります。ほとんどの場合、「s3://」として位置を指定します

関連する問題