場所の数は、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