0

Amazon EMR クラスター (AMI バージョン 3.2.0 / Hadoop バージョン 2.4.0) に sqoop 2 (バージョン 1.99.3) をインストールしようとしています。sqoop サーバーを起動すると、localhost.log に次のエラーが表示されます。

Sep 10, 2014 4:55:56 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.apache.sqoop.server.ServerInitializer
java.lang.RuntimeException: Failure in server initialization
    at org.apache.sqoop.core.SqoopServer.initialize(SqoopServer.java:57)
    at org.apache.sqoop.server.ServerInitializer.contextInitialized(ServerInitializer.java:36)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943)
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.apache.sqoop.common.SqoopException: MAPREDUCE_0002:Failure on submission engine initialization
    at org.apache.sqoop.submission.mapreduce.MapreduceSubmissionEngine.initialize(MapreduceSubmissionEngine.java:115)
    at org.apache.sqoop.framework.JobManager.initialize(JobManager.java:215)
    at org.apache.sqoop.core.SqoopServer.initialize(SqoopServer.java:53)
    ... 25 more
Caused by: java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.
    at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:120)
    at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82)
    at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75)
    at org.apache.hadoop.mapred.JobClient.init(JobClient.java:470)
    at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:449)
    at org.apache.sqoop.submission.mapreduce.MapreduceSubmissionEngine.initialize(MapreduceSubmissionEngine.java:113)
    ... 27 more

インストール手順に従って、これが私が行ったことです。EMR では、$HADOOP_HOME は /home/hadoop であることに注意してください。

  • Apacheから sqoop-1.99.3-bin-hadoop200.tar.gz をダウンロードし、$HADOOP_HOME/sqoop に解凍しました。
  • catalina.properties の common.loader プロパティに以下を追加しました: /home/hadoop/share/hadoop/common/*.jar,/home/hadoop/share/hadoop/common/lib/*.jar,/home/hadoop /share/hadoop/mapreduce/*.jar、/home/hadoop/share/hadoop/yarn/*.jar
  • sqoop.properties:
    • @LOGDIR@ を /home/hadoop/sqoop/log に置き換えました
    • @BASEDIR@ を /home/hadoop/sqoop に置き換えました
    • プロパティ org.apache.sqoop.submission.engine.mapreduce.configuration.directory については、/etc/hadoop/conf/ を /home/hadoop/conf/ に置き換えました。
  • そして、サーバーを起動しました: bin/sqoop.sh server start

エラーからわかる限り、問題の原因は次の行です。

Caused by: java.io.IOException: Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the correspond server addresses.

このプロパティは mapred-site.xml で設定されます。

<property><name>mapreduce.framework.name</name><value>yarn</value></property>

そして、これが私がしたいことです。

sqoop のインストール/構成でいくつかのパラメーター設定が不足しているように感じ、他のいくつかのことを試しました (AMI 3.0.4 / Hadoop 2.2.0 を試すなど) が、sqoop を開始できませんでしたサーバ。

ご参考までに。Kyle Mulka のブログ のこの投稿を読みましたが、Hadoop と sqoop の異なるバージョンを参照しており、構成に関する洞察を提供していないようです。また、このサイトの他のページもいくつか読みましたが、私が使用している Hadoop と sqoop のバージョンを参照しているページはまだ見つかりません。そして、この構成が Cloudera (sqoop2 および Hadoop 2 と yarn) で実行されているのを見てきましたが、それが EMR インストールにどのように変換されるかを理解することはできませんでした。

4

1 に答える 1