mac上のhiveのデータストアにS3を使う
の続き。
EXTERNAL TABLEのLOCATIONにS3を使う場合の設定。
やることは2つ。
- S3AFileSystemを使うために2つファイルを編集してパスを通す
$HADOOP_CONF_DIR/hadoop-env.sh
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/libexec/share/hadoop/tools/lib/*
- S3AFileSystemの指定とアクセスキーの設定
$HADOOP_CONF_DIR/yarn-site.xml
<?xml version="1.0"?> <configuration> <property> <name>fs.s3a.impl</name> <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value> </property> <property> <name>fs.s3a.access.key</name> <value>AWSのアクセスキー</value> </property> <property> <name>fs.s3a.secret.key</name> <value>AWSのシークレットキー</value> </property> </configuration>
hadoop fs -ls s3a://bucket名/
で疎通が確認とれればOK。
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found
が発生した場合、正しくパスが通ってない。