oozie Sqoop ação falha ao importar dados para o ramo de
Pergunta
Eu estou enfrentando problema ao executar oozie sqoop ação.Em logs, eu posso ver que sqoop é capaz de importar os dados para o diretório temp, em seguida, sqoop cria ramo de scripts para importar dados.
Falha ao importar temp de dados para a seção.
Em logs não estou recebendo nenhuma exceção.
Abaixo está uma sqoop ação que eu estou usando.
<workflow-app name="testSqoopLoadWorkflow" xmlns="uri:oozie:workflow:0.4">
<credentials>
<credential name='hive_credentials' type='hcat'>
<property>
<name>hcat.metastore.uri</name>
<value>${HIVE_THRIFT_URL}</value>
</property>
<property>
<name>hcat.metastore.principal</name>
<value>${KERBEROS_PRINCIPAL}</value>
</property>
</credential>
</credentials>
<start to="loadSqoopDataAction"/>
<action name="loadSqoopDataAction" cred="hive_credentials">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>/tmp/hive-oozie-site.xml</job-xml>
<configuration>
<property>
<name>oozie.hive.defaults</name>
<value>/tmp/hive-oozie-site.xml</value>
</property>
</configuration>
<command>job --meta-connect ${SQOOP_METASTORE_URL} --exec TEST_SQOOP_LOAD_JOB</command>
</sqoop>
<ok to="end"/>
<error to="kill"/>
</action>
Abaixo está uma sqoop Trabalho que eu estou usando para importação de dados.
sqoop job --meta-connect ${SQOOP_METASTORE_URL} --create TEST_SQOOP_LOAD_JOB -- import --connect '${JDBC_URL}' --table testTable -m 1 --append --check-column pkId --incremental append --hive-import --hive-table testHiveTable;
Em mapred logs estou recebendo a seguinte exceção.
72285 [main] INFO org.apache.sqoop.hive.HiveImport - Loading uploaded data into Hive
Intercepting System.exit(1)
<<< Invocation of Main class completed <<<
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]
Oozie Launcher failed, finishing Hadoop job gracefully
Oozie Launcher ends
Por favor, sugira.
Solução
Este parece um típico Sqoop de importação para a Seção trabalho.Então parece que Sqoop foi importado com êxito dados no HDFS e não está conseguindo carregar os dados no Ramo.
Aqui está algumas informações sobre o que está acontecendo...Oozie lança um trabalho separados (o que será executado em qualquer nó no cluster hadoop) para executar o Sqoop de comando.O Sqoop comando inicia um trabalho separados para carregar os dados no HDFS.Então, no final do Sqoop trabalho, sqoop é executado um ramo de script para carregar os dados no Ramo.
Uma vez que este é, teoricamente, a executar a partir de qualquer nó no cluster Hadoop hive, CLI terá de estar disponível em cada nó e falar ao mesmo metastore.O Ramo de Metastore vai precisar para executar em modo remoto.
O mais normal do problema é porque Sqoop não pode falar para o correto metastore.As principais razões para isso são normalmente:
Ramo de serviço metastore não está em execução.Ela deve ser executada em modo remoto e um serviço separada deve ser iniciado.Aqui está uma maneira rápida de verificar se sua execução:
serviço de colméia-metastore estado
hive-site.xml
não contémhive.metastore.uris
.Aqui está um exemplohive-site.xml
comhive.metastore.uris
conjunto:<configuration> ... <property> <name>hive.metastore.uris</name> <value>thrift://sqoop2.example.com:9083</value> </property> ... </configuration>
hive-site.xml
não está incluído no seu Sqoop ação (ou propriedades).Tente adicionar o seu hive-site.xml para um<file>
elemento em sua Sqoop ação.Aqui está um exemplo workflow.xml com<file>
em que:<workflow-app name="sqoop-to-hive" xmlns="uri:oozie:workflow:0.4"> ... <action name="sqoop2hive"> ... <sqoop xmlns="uri:oozie:sqoop-action:0.2"> ... <file>/tmp/hive-site.xml#hive-site.xml</file> </sqoop> ... </action> ... </workflow-app>
Outras dicas
Este parece ser um bug no Sqoop.Não estou certo sobre o JIRA#.Hortonworks mencionado que o problema ainda não resolvido mesmo no HDP versão 2.2.
@abeaamase - eu quero tentar usar a sua solução.
Só quero verificar se abaixo solução funciona bem para sqoop + Ramo de importação em um único oozie trabalho?
........./tmp/hive-site.xml#hive-site.xml ......
Se você estiver usando o cdh então o problema pode ser devido a seção metastore jar dependência de conflitos.