我正在尝试在 Amazon EMR 上使用 Impala。我可以用 hive 读取 S3 数据。但我不能用 impala-shell。我试过'无效元数据'。远程元存储在 RDS 中。但 Impala 可能会在 EMR 主节点上使用元存储。如何将远程 Metastore 与 impala 一起使用?
我像这样使用 Amazon EMR 命令行界面启动了 EMR。
./elastic-mapreduce \
--create \
--name "Impala" \
--alive \
--enable-debugging \
--log-uri "s3n://hoge/hoge.log" \
--key-pair "hoge" \
--instance-group master --instance-type m1.large --instance-count 1\
--instance-group core --instance-type m1.large --instance-count 1\
--ami-version 3.0.2 \
--impala-interactive \
--hive-interactive \
--hive-site "s3n://hoge/hive-site.xml"
hive-site.xml 是这样的。这与http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-dev-create-metastore-outside.html相同
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hostname:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>username</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
<description>Password to use against metastore database</description>
</property>
</configuration>