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.

Foi útil?

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:

  1. 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

  2. hive-site.xml não contém hive.metastore.uris.Aqui está um exemplo hive-site.xml com hive.metastore.uris conjunto:

    <configuration>
    ...
      <property>
        <name>hive.metastore.uris</name>
        <value>thrift://sqoop2.example.com:9083</value>
      </property>
    ...
    </configuration>
    
  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top