克隆EMR集群时,进行配置失败的问题

首先

由于Amazon EMR(弹性MapReduce)遇到问题,因此在此共享。
问题可能是由2018年3月左右的更新引起的。
(在https://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/emr-release-components.html 上找不到相关信息)

根据以下条件应该发生

    • RDSをhive metastoreとして利用している

 

    • 起動に成功したクラスターをクローンして使う

 

    こんな設定jsonを書いている
[
  {"classification":"hive-site",
   "properties":{
     "javax.jdo.option.ConnectionUserName":"hive",
     "javax.jdo.option.ConnectionPassword":"password",
     "javax.jdo.option.ConnectionURL":"jdbc:mysql://hoge.rds.amazonaws.com:3306/fuga_db"
    }
  }
]

在某些情况下会出现问题。

在我们公司,使用Hive进行大规模数据处理是EMR的常见用法之一。
在批处理失败时,我们通常会克隆失败的EMR集群以重新运行或者通过SSH进行调查。
然而,从大约2018年3月开始,克隆的EMR出现了无法成功配置的问题。

終了(エラー発生)On the master instance (i-xxxxxxxxxxxx), application provisioning failed

导致这种情况的原因

查看错误日志后,发现了以下的文本。

Underlying cause: java.sql.SQLInvalidAuthorizationSpecException : Could not connect: Access denied for user 'hive'@'10.1.34.46' (using password: YES)↲
SQL Error code: 1045↲
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.↲
  at org.apache.hive.beeline.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:77)↲
  at org.apache.hive.beeline.HiveSchemaTool.getConnectionToMetastore(HiveSchemaTool.java:144)↲
  at org.apache.hive.beeline.HiveSchemaTool.testConnectionToMetastore(HiveSchemaTool.java:473)↲
  at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:577)↲
  at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:563)↲
  at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1145)↲
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)↲
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)↲
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)↲
  at java.lang.reflect.Method.invoke(Method.java:498)↲
  at org.apache.hadoop.util.RunJar.run(RunJar.java:221)↲
  at org.apache.hadoop.util.RunJar.main(RunJar.java:136)↲
Caused by: java.sql.SQLInvalidAuthorizationSpecException: Could not connect: Access denied for user 'hive'@'10.1.34.46' (using password: YES)↲
  at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:121)↲
  at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69)↲
  at org.mariadb.jdbc.Driver.connect(Driver.java:110)↲
  at java.sql.DriverManager.getConnection(DriverManager.java:664)↲
  at java.sql.DriverManager.getConnection(DriverManager.java:247)↲
  at org.apache.hive.beeline.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:73)↲
  ... 11 more↲
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect: Access denied for user 'hive'@'10.1.34.46' (using password: YES)↲
  at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.authentication(AbstractConnectProtocol.java:464)↲
  at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.handleConnectionPhases(AbstractConnectProtocol.java:428)↲
  at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:351)↲
  at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:664)↲
  at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:587)↲
  at org.mariadb.jdbc.Driver.connect(Driver.java:105)↲
  ... 14 more↲

似乎无法连接到RDS。密码方面似乎有问题。

当确认克隆和复制的JSON时,大致会呈现如下的样子。

[
  {"classification":"hive-site",
   "properties":{
     "javax.jdo.option.ConnectionUserName":"hive",
     "javax.jdo.option.ConnectionPassword":"********",
     "javax.jdo.option.ConnectionURL":"jdbc:mysql://hoge.rds.amazonaws.com:3306/fuga_db"
    }
  }
]

看起来密码已被隐藏成了星号。
因此,密码被怒斥为非“********”的样子。
当我正确指定了JSON密码时,它可以正常运行。

广告
将在 10 秒后关闭
bannerAds