Я пытаюсь установить sqoop 2 (версия 1.99.3) в кластере Amazon EMR (AMI версии 3.2.0 / Hadoop версии 2.4.0). Когда я запускаю сервер 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.
- Я загрузил sqoop-1.99.3-bin-hadoop200.tar.gz с Apache и распаковал его в $ HADOOP_HOME / sqoop.
- в свойство common.loader в catalina.properties добавлено следующее: /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
- In sqoop.properties:
- I replaced @LOGDIR@ with /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 сервер.
fyi. Я прочитал этот пост на блог Кайла Малки, но он ссылается на разные версии Hadoop и sqoop и, похоже, не дает понимания моей конфигурации. И я прочитал несколько других страниц на этом сайте, но еще не нашел ни одной, которая ссылается на версии Hadoop и sqoop, которые я использую. И я видел, как эта конфигурация работает с Cloudera (sqoop2 и Hadoop 2 с yarn), хотя не мог понять, как это отразится на установке EMR.