AWS EMR - 使用Java SDK安装HUE

时间:2015-05-28 13:57:23

标签: java amazon-web-services emr elastic-map-reduce hue

我正在尝试设置StepConfig以在我的群集上安装和运行HUE。我正在以下列方式创建步骤:

private StepConfig newInstallHueStep() {
    return new StepConfig()
            .withName("Install Hue")
            .withActionOnFailure(getDefaultActionOnFailure())
            .withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://us-west-1.elasticmapreduce/libs/hue/install-hue"));
}

private StepConfig newRunHueStep() {
    return new StepConfig()
            .withName("Run Hue")
            .withActionOnFailure(getDefaultActionOnFailure())
            .withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://us-west-1.elasticmapreduce/libs/hue/run-hue"));
}

结果是步骤安装Hue 成功并且运行Hue 失败。

enter image description here

stderr日志:

=== Uninstalling hbase
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling security
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling search
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling sqoop
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling zookeeper
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling rdbms
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling spark
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Uninstalling impala
=== Saved registry at /var/lib/hue/app.reg
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
=== Saved /usr/lib/hue/build/env/lib/python2.6/site-packages/hue.pth
Running '/usr/lib/hue/build/env/bin/hue syncdb --noinput' with None
Running '/usr/lib/hue/build/env/bin/hue migrate --merge' with None
Traceback (most recent call last):
  File "/usr/lib/hue/build/env/bin/hue", line 9, in <module>
    load_entry_point('desktop==3.7.1-amzn-2', 'console_scripts', 'hue')()
  File "/usr/lib/hue/desktop/core/src/desktop/manage_entry.py", line 60, in entry
    execute_manager(settings)
  File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/management/__init__.py", line 459, in execute_manager
    utility.execute()
  File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.4.5-py2.6.egg/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/usr/lib/hue/desktop/core/src/desktop/management/commands/install_all_examples.py", line 89, in handle_noargs
    raise exception
hadoop.fs.exceptions.WebHdfsException: SecurityException: Failed to obtain user group information: org.apache.hadoop.security.authorize.AuthorizationException: User: hue is not allowed to impersonate hue (error 403)
Command exiting with ret '255'

我还试过单步 Run Hue 然后stderr:

Command exiting with ret '255'

1 个答案:

答案 0 :(得分:1)

使用Java sdk安装Hue的正确方法是将安装Hue 步骤作为引导操作发布,并将 Run Hue 作为作业流程步骤发布。

RunJobFlowRequest runJobFlowRequest = new RunJobFlowRequest("Main", jobFlowInstancesConfig)
            .withName("SDK_filtering" + System.currentTimeMillis())
            .withAmiVersion("3.7.0")
            .withVisibleToAllUsers(true)
            .withServiceRole("EMR_DefaultRole")
            .withJobFlowRole("EMR_EC2_DefaultRole")
            .withBootstrapActions(
                    new BootstrapActionConfig("Install Hue",
                            new ScriptBootstrapActionConfig("s3://us-west-1.elasticmapreduce/libs/hue/install-hue", null)))
            .withSteps(
                    newEnableDebugStep(),
                    newInstallHiveStep(),
                    newInstallPig(),
                    newRunHueStep()
            );